UNPKG

@advidi-network/zod-to-reactive-form

Version:
12 lines 2.67 kB
import { z } from 'zod'; import { FormControl, Validators } from '@angular/forms'; export function createFormControl(schema, overrides) { const { value = null, disabled = false } = overrides ?? {}; const isRequired = overrides?.isRequired ?? ((schema) => !schema.isOptional()); return new FormControl({ value, disabled }, { nonNullable: !(schema instanceof z.ZodNullable), ...overrides, validators: (isRequired(schema) ? [Validators.required] : []).concat(overrides?.validators ?? []), }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZvcm0tY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvem9kLXRvLXJlYWN0aXZlLWZvcm0vc3JjL2xpYi9mdW5jdGlvbnMvY3JlYXRlLWZvcm0tY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsTUFBTSxVQUFVLGlCQUFpQixDQUE0QixNQUFlLEVBQUUsU0FBMEM7SUFDdEgsTUFBTSxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDM0QsTUFBTSxVQUFVLEdBQUcsU0FBUyxFQUFFLFVBQVUsSUFBSSxDQUFDLENBQUMsTUFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUU1RixPQUFPLElBQUksV0FBVyxDQUNwQixFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsRUFDakI7UUFDRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQy9DLEdBQUcsU0FBUztRQUNaLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztLQUNsRyxDQUMrQixDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpZWxkT3B0aW9uc30gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybUNvbnRyb2w8VFNjaGVtYSBleHRlbmRzIHouWm9kVHlwZT4oc2NoZW1hOiBUU2NoZW1hLCBvdmVycmlkZXM/OiBGaWVsZE9wdGlvbnM8ei5pbmZlcjxUU2NoZW1hPj4pOiBGb3JtQ29udHJvbDx6LmluZmVyPFRTY2hlbWE+PiB7XG4gIGNvbnN0IHsgdmFsdWUgPSBudWxsLCBkaXNhYmxlZCA9IGZhbHNlIH0gPSBvdmVycmlkZXMgPz8ge307XG4gIGNvbnN0IGlzUmVxdWlyZWQgPSBvdmVycmlkZXM/LmlzUmVxdWlyZWQgPz8gKChzY2hlbWE6IHouWm9kU2NoZW1hKSA9PiAhc2NoZW1hLmlzT3B0aW9uYWwoKSk7XG5cbiAgcmV0dXJuIG5ldyBGb3JtQ29udHJvbChcbiAgICB7dmFsdWUsIGRpc2FibGVkfSxcbiAgICB7XG4gICAgICBub25OdWxsYWJsZTogIShzY2hlbWEgaW5zdGFuY2VvZiB6LlpvZE51bGxhYmxlKSxcbiAgICAgIC4uLm92ZXJyaWRlcyxcbiAgICAgIHZhbGlkYXRvcnM6IChpc1JlcXVpcmVkKHNjaGVtYSkgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSkuY29uY2F0KG92ZXJyaWRlcz8udmFsaWRhdG9ycyA/PyBbXSksXG4gICAgfVxuICApIGFzIEZvcm1Db250cm9sPHouaW5mZXI8VFNjaGVtYT4+O1xufVxuIl19