UNPKG

chain-able

Version:

interfaces that describe their intentions.

43 lines (35 loc) 4.22 kB
var ENV_DEVELOPMENT = require('../deps/env/dev') var not = require('../deps/conditional/not') var isFalse = require('../deps/is/false') var withSpecification = require('../deps/encase/withSpecification') var validatorBuilder = require('../deps/validators/validatorBuilder') var encaseType = require('./encase') // we'll be opinionated and say either `false` or `throw` var spec = withSpecification(not(isFalse)) /** * @pattern factory plugin * @param {string} name * @param {Object} parent * @param {Object} built * @return {void} */ module.exports = function validatorPlugin(name, parent, built) { // core domain of this fn, used by validators and configured fns var type = built.type if (type) { // if (ENV_DEVELOPMENT) { // this.debugSteps('added built type') // } // create our validator in the factory, var validator = validatorBuilder(type) // then encase it, prepare a TypeError factory var encase = encaseType(name, parent, built) var validatorMethod = encase(validator, type, spec) /* istanbul ignore next: dev */ if (ENV_DEVELOPMENT) { validatorMethod.type = type } this.onCall(validatorMethod).onSet(validatorMethod) } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbInR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEVOVl9ERVZFTE9QTUVOVCA9IHJlcXVpcmUoJy4uL2RlcHMvZW52L2RldicpXG5jb25zdCBub3QgPSByZXF1aXJlKCcuLi9kZXBzL2NvbmRpdGlvbmFsL25vdCcpXG5jb25zdCBpc0ZhbHNlID0gcmVxdWlyZSgnLi4vZGVwcy9pcy9mYWxzZScpXG5jb25zdCB3aXRoU3BlY2lmaWNhdGlvbiA9IHJlcXVpcmUoJy4uL2RlcHMvZW5jYXNlL3dpdGhTcGVjaWZpY2F0aW9uJylcbmNvbnN0IHZhbGlkYXRvckJ1aWxkZXIgPSByZXF1aXJlKCcuLi9kZXBzL3ZhbGlkYXRvcnMvdmFsaWRhdG9yQnVpbGRlcicpXG5jb25zdCBlbmNhc2VUeXBlID0gcmVxdWlyZSgnLi9lbmNhc2UnKVxuXG4vLyB3ZSdsbCBiZSBvcGluaW9uYXRlZCBhbmQgc2F5IGVpdGhlciBgZmFsc2VgIG9yIGB0aHJvd2BcbmNvbnN0IHNwZWMgPSB3aXRoU3BlY2lmaWNhdGlvbihub3QoaXNGYWxzZSkpXG5cbi8qKlxuICogQHBhdHRlcm4gZmFjdG9yeSBwbHVnaW5cbiAqIEBwYXJhbSAge3N0cmluZ30gbmFtZVxuICogQHBhcmFtICB7T2JqZWN0fSBwYXJlbnRcbiAqIEBwYXJhbSAge09iamVjdH0gYnVpbHRcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gdmFsaWRhdG9yUGx1Z2luKG5hbWUsIHBhcmVudCwgYnVpbHQpIHtcbiAgLy8gY29yZSBkb21haW4gb2YgdGhpcyBmbiwgdXNlZCBieSB2YWxpZGF0b3JzIGFuZCBjb25maWd1cmVkIGZuc1xuICBjb25zdCB0eXBlID0gYnVpbHQudHlwZVxuXG4gIGlmICh0eXBlKSB7XG4gICAgLy8gaWYgKEVOVl9ERVZFTE9QTUVOVCkge1xuICAgIC8vICAgdGhpcy5kZWJ1Z1N0ZXBzKCdhZGRlZCBidWlsdCB0eXBlJylcbiAgICAvLyB9XG5cbiAgICAvLyBjcmVhdGUgb3VyIHZhbGlkYXRvciBpbiB0aGUgZmFjdG9yeSxcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB2YWxpZGF0b3JCdWlsZGVyKHR5cGUpXG5cbiAgICAvLyB0aGVuIGVuY2FzZSBpdCwgcHJlcGFyZSBhIFR5cGVFcnJvciBmYWN0b3J5XG4gICAgY29uc3QgZW5jYXNlID0gZW5jYXNlVHlwZShuYW1lLCBwYXJlbnQsIGJ1aWx0KVxuICAgIGNvbnN0IHZhbGlkYXRvck1ldGhvZCA9IGVuY2FzZSh2YWxpZGF0b3IsIHR5cGUsIHNwZWMpXG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogZGV2ICovXG4gICAgaWYgKEVOVl9ERVZFTE9QTUVOVCkge1xuICAgICAgdmFsaWRhdG9yTWV0aG9kLnR5cGUgPSB0eXBlXG4gICAgfVxuXG4gICAgdGhpcy5vbkNhbGwodmFsaWRhdG9yTWV0aG9kKS5vblNldCh2YWxpZGF0b3JNZXRob2QpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQ2xEQSxHQUFLLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztBQUM5Q0EsR0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUM7QUFDM0NBLEdBQUssQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsa0NBQWtDLENBQUM7QUFDckVBLEdBQUssQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMscUNBQXFDLENBQUM7QUFDdkVBLEdBQUssQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQzs7O0FBR3RDQSxHQUFLLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Ozs7Ozs7O0FBUzVDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O0VBRTdEQSxHQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJOztFQUV2QixJQUFJLElBQUksRUFBRTs7Ozs7O0lBTVJBLEdBQUssQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDOzs7SUFHeENBLEdBQUssQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQzlDQSxHQUFLLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQzs7O0lBR3JELElBQUksZUFBZSxFQUFFO01BQ25CLGVBQWUsQ0FBQyxJQUFJLEdBQUcsSUFBSTtLQUM1Qjs7SUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7R0FDcEQ7Q0FDRjsifQ==