UNPKG

typed-reactive-form

Version:

Allows creation of a ReactiveForm based on a class with its properties properly decorated.

25 lines 3.24 kB
import 'reflect-metadata'; import { formMemberKey } from './form-model/metadata-keys'; export function FormMember(options) { return function (target, key) { var formMembers = Reflect.getMetadata(formMemberKey, target); if (formMembers) { formMembers.push({ property: key, options: getOptions(options) }); } else { formMembers = [{ property: key, options: getOptions(options) }]; Reflect.defineMetadata(formMemberKey, formMembers, target); } }; } function getOptions(options) { var defaultOptions = { defaultValue: null, validators: [], }; if (options) { Object.assign(defaultOptions, options); } return defaultOptions; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZW1iZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90eXBlZC1yZWFjdGl2ZS1mb3JtLyIsInNvdXJjZXMiOlsibGliL2Zvcm0tbWVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLENBQUM7QUFHMUIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBb0M7SUFDN0QsT0FBTyxVQUFDLE1BQVcsRUFBRSxHQUFXO1FBQzlCLElBQUksV0FBVyxHQUF1QixPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVqRixJQUFJLFdBQVcsRUFBRTtZQUNmLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1NBQ2pFO2FBQU07WUFDTCxXQUFXLEdBQUcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUM7WUFDOUQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUdELFNBQVMsVUFBVSxDQUFDLE9BQW1DO0lBQ3JELElBQU0sY0FBYyxHQUFHO1FBQ3JCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFVBQVUsRUFBRSxFQUFFO0tBQ2YsQ0FBQztJQUNGLElBQUksT0FBTyxFQUFDO1FBQ1YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDeEM7SUFDRCxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7Rm9ybU1lbWJlck9wdGlvbnN9IGZyb20gJy4vZm9ybS1tb2RlbC9mb3JtLW1lbWJlci1vcHRpb25zJztcbmltcG9ydCB7Rm9ybU1lbWJlckRldGFpbH0gZnJvbSAnLi9mb3JtLW1vZGVsL2Zvcm0tbWVtYmVyLWRldGFpbCc7XG5pbXBvcnQge2Zvcm1NZW1iZXJLZXl9IGZyb20gJy4vZm9ybS1tb2RlbC9tZXRhZGF0YS1rZXlzJztcblxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1NZW1iZXIob3B0aW9ucz86IFBhcnRpYWw8Rm9ybU1lbWJlck9wdGlvbnM+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICByZXR1cm4gKHRhcmdldDogYW55LCBrZXk6IHN0cmluZykgPT4ge1xuICAgIGxldCBmb3JtTWVtYmVyczogRm9ybU1lbWJlckRldGFpbFtdID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtTWVtYmVyS2V5LCB0YXJnZXQpO1xuXG4gICAgaWYgKGZvcm1NZW1iZXJzKSB7XG4gICAgICBmb3JtTWVtYmVycy5wdXNoKHtwcm9wZXJ0eToga2V5LCBvcHRpb25zOiBnZXRPcHRpb25zKG9wdGlvbnMpfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1NZW1iZXJzID0gW3twcm9wZXJ0eToga2V5LCBvcHRpb25zOiBnZXRPcHRpb25zKG9wdGlvbnMpfV07XG4gICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1NZW1iZXJLZXksIGZvcm1NZW1iZXJzLCB0YXJnZXQpO1xuICAgIH1cbiAgfTtcbn1cblxuXG5mdW5jdGlvbiBnZXRPcHRpb25zKG9wdGlvbnM6IFBhcnRpYWw8Rm9ybU1lbWJlck9wdGlvbnM+KTogRm9ybU1lbWJlck9wdGlvbnMge1xuICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgdmFsaWRhdG9yczogW10sXG4gIH07XG4gIGlmIChvcHRpb25zKXtcbiAgICBPYmplY3QuYXNzaWduKGRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdE9wdGlvbnM7XG59XG4iXX0=