UNPKG

@decaf-ts/decorator-validation

Version:
66 lines 6.54 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EqualsValidator = void 0; const Validator_1 = require("./Validator.cjs"); const constants_1 = require("./constants.cjs"); const decorators_1 = require("./decorators.cjs"); const reflection_1 = require("@decaf-ts/reflection"); /** * @summary Equals Validator * * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#EQUALS} * * @class EqualsValidator * @extends Validator * * @category Validators */ let EqualsValidator = class EqualsValidator extends Validator_1.Validator { constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.EQUALS) { super(message); } /** * @summary Validates a model * * @param {string} value * @param {EqualsValidatorOptions} options * @param {PathProxy<any>} accessor - Proxy-like object used to resolve values from nested structures via path strings. * * @return {string | undefined} * * @override * @see Validator#hasErrors */ hasErrors(value, options, accessor) { let comparisonPropertyValue; try { comparisonPropertyValue = accessor.getValueFromPath(options[constants_1.ValidationKeys.EQUALS]); } catch (e) { return this.getMessage(e.message || this.message); } return (0, reflection_1.isEqual)(value, comparisonPropertyValue) ? undefined : this.getMessage(options.message || this.message, options[constants_1.ValidationKeys.EQUALS]); } }; exports.EqualsValidator = EqualsValidator; exports.EqualsValidator = EqualsValidator = __decorate([ (0, decorators_1.validator)(constants_1.ValidationKeys.EQUALS), __metadata("design:paramtypes", [String]) ], EqualsValidator); // Validation.register({ // validator: EqualsValidator, // validationKey: ValidationKeys.EQUALS, // save: false, // } as ValidatorDefinition); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXF1YWxzVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9FcXVhbHNWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXdDO0FBQ3hDLCtDQUFxRTtBQUNyRSxpREFBeUM7QUFFekMscURBQStDO0FBRy9DOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWdCLFNBQVEscUJBQWlDO0lBQ3BFLFlBQVksVUFBa0Isa0NBQXNCLENBQUMsTUFBTTtRQUN6RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixPQUErQixFQUMvQixRQUF3QjtRQUV4QixJQUFJLHVCQUE0QixDQUFDO1FBQ2pDLElBQUksQ0FBQztZQUNILHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDakQsT0FBTyxDQUFDLDBCQUFjLENBQUMsTUFBTSxDQUFDLENBQy9CLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELE9BQU8sSUFBQSxvQkFBTyxFQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQztZQUM1QyxDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUNiLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFDL0IsT0FBTyxDQUFDLDBCQUFjLENBQUMsTUFBTSxDQUFDLENBQy9CLENBQUM7SUFDUixDQUFDO0NBQ0YsQ0FBQTtBQXRDWSwwQ0FBZTswQkFBZixlQUFlO0lBRDNCLElBQUEsc0JBQVMsRUFBQywwQkFBYyxDQUFDLE1BQU0sQ0FBQzs7R0FDcEIsZUFBZSxDQXNDM0I7QUFFRCx3QkFBd0I7QUFDeEIsZ0NBQWdDO0FBQ2hDLDBDQUEwQztBQUMxQyxpQkFBaUI7QUFDakIsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRXF1YWxzVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBQYXRoUHJveHkgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBFcXVhbHMgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNFUVVBTFN9XG4gKlxuICogQGNsYXNzIEVxdWFsc1ZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5FUVVBTFMpXG5leHBvcnQgY2xhc3MgRXF1YWxzVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPEVxdWFsc1ZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5FUVVBTFMpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtFcXVhbHNWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqIEBwYXJhbSB7UGF0aFByb3h5PGFueT59IGFjY2Vzc29yIC0gUHJveHktbGlrZSBvYmplY3QgdXNlZCB0byByZXNvbHZlIHZhbHVlcyBmcm9tIG5lc3RlZCBzdHJ1Y3R1cmVzIHZpYSBwYXRoIHN0cmluZ3MuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM6IEVxdWFsc1ZhbGlkYXRvck9wdGlvbnMsXG4gICAgYWNjZXNzb3I6IFBhdGhQcm94eTxhbnk+XG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlOiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlID0gYWNjZXNzb3IuZ2V0VmFsdWVGcm9tUGF0aChcbiAgICAgICAgb3B0aW9uc1tWYWxpZGF0aW9uS2V5cy5FUVVBTFNdXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZShlLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNFcXVhbCh2YWx1ZSwgY29tcGFyaXNvblByb3BlcnR5VmFsdWUpXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiB0aGlzLmdldE1lc3NhZ2UoXG4gICAgICAgICAgb3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSxcbiAgICAgICAgICBvcHRpb25zW1ZhbGlkYXRpb25LZXlzLkVRVUFMU11cbiAgICAgICAgKTtcbiAgfVxufVxuXG4vLyBWYWxpZGF0aW9uLnJlZ2lzdGVyKHtcbi8vICAgdmFsaWRhdG9yOiBFcXVhbHNWYWxpZGF0b3IsXG4vLyAgIHZhbGlkYXRpb25LZXk6IFZhbGlkYXRpb25LZXlzLkVRVUFMUyxcbi8vICAgc2F2ZTogZmFsc2UsXG4vLyB9IGFzIFZhbGlkYXRvckRlZmluaXRpb24pO1xuIl19