@tunnel-cast/tunnel-cast
Version:
<br>
20 lines • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IsEnum = exports.isEnumMessageBuilder = exports.isEnum = exports.IS_ENUM = 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.IS_ENUM = "is-enum";
exports.isEnum = ({ fieldValue, args, context }) => {
return Array.isArray(args.enumOrList)
? args.enumOrList.includes(fieldValue)
: Object.values(args.enumOrList).includes(fieldValue);
};
exports.isEnumMessageBuilder = ({ fieldName, options }) => options.iterate
? `Some values in the field ${fieldName} are not a valid enum.`
: `The field ${fieldName} is not a valid enum.`;
function IsEnum(enumOrList, options) {
const adaptee = new field_constraint_procedure_1.FieldConstraintProcedure(exports.IS_ENUM, options || {}, { enumOrList }, exports.isEnum, exports.isEnumMessageBuilder);
return decorator_adapter_1.decoratorAdapter(adaptee);
}
exports.IsEnum = IsEnum;
//# sourceMappingURL=enum.decorator.js.map