@tunnel-cast/tunnel-cast
Version:
<br>
23 lines • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Length = exports.lengthMessageBuilder = exports.length = exports.LENGTH = void 0;
const decorator_adapter_1 = require("../../../core/factory/decorator-adapter");
const field_constraint_procedure_1 = require("../../../core/field-decorator-procedure/field-constraint.procedure");
exports.LENGTH = "length";
exports.length = ({ fieldValue, args }) => {
return typeof (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.length) == "number"
? args.len != undefined
? args.len == fieldValue.length
: (args.min == undefined || args.min <= fieldValue.length) &&
(args.max == undefined || args.max >= fieldValue.length)
: false;
};
exports.lengthMessageBuilder = ({ fieldName }) => `The length of the field ${fieldName} dose not match the length constraint.`;
function Length(min, maxOrOptions, options) {
const constraintArgs = (maxOrOptions == undefined ? { len: min } : { min, max: maxOrOptions });
const constraintOptions = maxOrOptions != undefined && typeof maxOrOptions == "object" ? maxOrOptions : options;
const adaptee = new field_constraint_procedure_1.FieldConstraintProcedure(exports.LENGTH, constraintOptions, constraintArgs, exports.length, exports.lengthMessageBuilder);
return decorator_adapter_1.decoratorAdapter(adaptee);
}
exports.Length = Length;
//# sourceMappingURL=length.decorator.js.map