UNPKG

gremlin-helper

Version:

A wrapper around the gremlin client to introduce model validation and other useful functionality to use within a web api.

59 lines 2.2 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const bcrypt = require("bcrypt"); const google_libphonenumber_1 = require("google-libphonenumber"); const phoneUtil = google_libphonenumber_1.PhoneNumberUtil.getInstance(); class Ops { } Ops.merge = (...ops) => { return (prop, value) => __awaiter(this, void 0, void 0, function* () { let result = { error: null, value }; for (const op of ops) { result = yield op(prop, result.value); if (result.error) break; } return result; }); }; Ops.trim = (_, value) => Promise.resolve({ error: null, value: value ? value.trim() : value }); Ops.formatPhone = (_, value) => Promise.resolve({ error: null, value: value ? phoneUtil.format(phoneUtil.parseAndKeepRawInput(value, 'US'), google_libphonenumber_1.PhoneNumberFormat.INTERNATIONAL) : value }); Ops.validatePhone = (_, value) => { const result = { error: null, value: value }; if (value) { result.error = !phoneUtil.isValidNumber(phoneUtil.parseAndKeepRawInput(value, 'US')) ? 'Invalid phone number' : null; result.value = result.error ? null : value; } return Promise.resolve(result); }; Ops.hashPassword = (saltOrRounds) => { return (_, value) => __awaiter(this, void 0, void 0, function* () { const hashed = yield bcrypt.hash(value, saltOrRounds); return { error: null, value: hashed }; }); }; exports.Ops = Ops; //# sourceMappingURL=Ops.js.map