UNPKG

@martinmilo/verve

Version:

TypeScript domain modeling library with field-level authorization, business rule validation, and context-aware access control

26 lines 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.option = option; const compose_1 = require("../builder/compose"); const FieldBuilder_1 = require("../builder/FieldBuilder"); const OptionField_1 = require("../fields/OptionField"); const WithNullable_1 = require("../builder/mixins/WithNullable"); const WithReadable_1 = require("../builder/mixins/WithReadable"); const WithWritable_1 = require("../builder/mixins/WithWritable"); const WithDefault_1 = require("../builder/mixins/WithDefault"); const WithValidate_1 = require("../builder/mixins/WithValidate"); const EnhancedBuilder = (0, compose_1.composeFieldBuilder)((FieldBuilder_1.FieldBuilder), [ WithNullable_1.WithNullable, WithReadable_1.WithReadable, WithWritable_1.WithWritable, WithDefault_1.WithDefault, WithValidate_1.WithValidate, ]); function option(valuesOrEnum) { const values = Array.isArray(valuesOrEnum) ? valuesOrEnum : Object.values(valuesOrEnum); const builder = new EnhancedBuilder(OptionField_1.OptionField); const isOneOfValues = (value) => values.includes(value); builder.validate.add(isOneOfValues); return builder; } //# sourceMappingURL=option.factory.js.map