UNPKG

@decaf-ts/db-decorators

Version:

Agnostic database decorators and repository

38 lines 4.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UpdateValidator = void 0; const decorator_validation_1 = require("@decaf-ts/decorator-validation"); /** * @description Abstract base class for validators that compare new values with old values during updates. * @summary Base class for an Update validator that provides a framework for implementing validation logic that compares a new value with its previous state. * @param {string} [message] - Error message. Defaults to {@link DecoratorMessages#DEFAULT} * @param {string[]} [acceptedTypes] - The accepted value types by the decorator * @class UpdateValidator * @example * // Extending UpdateValidator to create a custom validator * class MyCustomValidator extends UpdateValidator { * constructor() { * super("Custom validation failed"); * } * * public updateHasErrors(value: any, oldValue: any): string | undefined { * // Custom validation logic * if (value === oldValue) { * return this.message; * } * return undefined; * } * * hasErrors(value: any): string | undefined { * return undefined; // Not used for update validators * } * } * @category Validators */ class UpdateValidator extends decorator_validation_1.Validator { constructor(message = decorator_validation_1.DEFAULT_ERROR_MESSAGES.DEFAULT, ...acceptedTypes) { super(message, ...acceptedTypes); } } exports.UpdateValidator = UpdateValidator; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdG9ycy9VcGRhdGVWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBR3dDO0FBRXhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILE1BQXNCLGVBQWdCLFNBQVEsZ0NBQVM7SUFDckQsWUFDRSxVQUFrQiw2Q0FBaUIsQ0FBQyxPQUFPLEVBQzNDLEdBQUcsYUFBdUI7UUFFMUIsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FlRjtBQXJCRCwwQ0FxQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTIGFzIERlY29yYXRvck1lc3NhZ2VzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgdmFsaWRhdG9ycyB0aGF0IGNvbXBhcmUgbmV3IHZhbHVlcyB3aXRoIG9sZCB2YWx1ZXMgZHVyaW5nIHVwZGF0ZXMuXG4gKiBAc3VtbWFyeSBCYXNlIGNsYXNzIGZvciBhbiBVcGRhdGUgdmFsaWRhdG9yIHRoYXQgcHJvdmlkZXMgYSBmcmFtZXdvcmsgZm9yIGltcGxlbWVudGluZyB2YWxpZGF0aW9uIGxvZ2ljIHRoYXQgY29tcGFyZXMgYSBuZXcgdmFsdWUgd2l0aCBpdHMgcHJldmlvdXMgc3RhdGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIC0gRXJyb3IgbWVzc2FnZS4gRGVmYXVsdHMgdG8ge0BsaW5rIERlY29yYXRvck1lc3NhZ2VzI0RFRkFVTFR9XG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBbYWNjZXB0ZWRUeXBlc10gLSBUaGUgYWNjZXB0ZWQgdmFsdWUgdHlwZXMgYnkgdGhlIGRlY29yYXRvclxuICogQGNsYXNzIFVwZGF0ZVZhbGlkYXRvclxuICogQGV4YW1wbGVcbiAqIC8vIEV4dGVuZGluZyBVcGRhdGVWYWxpZGF0b3IgdG8gY3JlYXRlIGEgY3VzdG9tIHZhbGlkYXRvclxuICogY2xhc3MgTXlDdXN0b21WYWxpZGF0b3IgZXh0ZW5kcyBVcGRhdGVWYWxpZGF0b3Ige1xuICogICBjb25zdHJ1Y3RvcigpIHtcbiAqICAgICBzdXBlcihcIkN1c3RvbSB2YWxpZGF0aW9uIGZhaWxlZFwiKTtcbiAqICAgfVxuICogICBcbiAqICAgcHVibGljIHVwZGF0ZUhhc0Vycm9ycyh2YWx1ZTogYW55LCBvbGRWYWx1ZTogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAqICAgICAvLyBDdXN0b20gdmFsaWRhdGlvbiBsb2dpY1xuICogICAgIGlmICh2YWx1ZSA9PT0gb2xkVmFsdWUpIHtcbiAqICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2U7XG4gKiAgICAgfVxuICogICAgIHJldHVybiB1bmRlZmluZWQ7XG4gKiAgIH1cbiAqICAgXG4gKiAgIGhhc0Vycm9ycyh2YWx1ZTogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAqICAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBOb3QgdXNlZCBmb3IgdXBkYXRlIHZhbGlkYXRvcnNcbiAqICAgfVxuICogfVxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFVwZGF0ZVZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvciB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSBEZWNvcmF0b3JNZXNzYWdlcy5ERUZBVUxULFxuICAgIC4uLmFjY2VwdGVkVHlwZXM6IHN0cmluZ1tdXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UsIC4uLmFjY2VwdGVkVHlwZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBYnN0cmFjdCBtZXRob2QgdGhhdCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdG8gcGVyZm9ybSB1cGRhdGUgdmFsaWRhdGlvbi5cbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgdmFsdWUgYnkgY29tcGFyaW5nIGl0IHRvIGl0cyBvbGQgdmVyc2lvbiB0byBkZXRlcm1pbmUgaWYgdGhlIHVwZGF0ZSBpcyB2YWxpZC5cbiAgICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVGhlIG5ldyB2YWx1ZSB0byB2YWxpZGF0ZVxuICAgKiBAcGFyYW0ge2FueX0gb2xkVmFsdWUgLSBUaGUgcHJldmlvdXMgdmFsdWUgdG8gY29tcGFyZSBhZ2FpbnN0XG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0aGF0IG1heSBiZSBuZWVkZWQgZm9yIHZhbGlkYXRpb25cbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfSBBbiBlcnJvciBtZXNzYWdlIGlmIHZhbGlkYXRpb24gZmFpbHMsIHVuZGVmaW5lZCBpZiB2YWxpZGF0aW9uIHBhc3Nlc1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHVwZGF0ZUhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9sZFZhbHVlOiBhbnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuIl19