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
JavaScript
;
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