UNPKG

rx-form-mapper

Version:

Proper decorator-based transformation / serialization / deserialization of plain javascript classes to angular reactive forms

16 lines 2.94 kB
import { isNil } from 'lodash'; import 'reflect-metadata'; import { isType } from '..'; import { ModelBinder } from '../bind/model-binder'; export function FormArray(optsOrType) { return (target, propertyName) => { if (isNil(optsOrType)) { throw new Error(`unexpected FormArray configuration: ${optsOrType}`); } if (isType(optsOrType)) { optsOrType = { type: optsOrType }; } ModelBinder.instance.bindFormArray(target, propertyName, optsOrType); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hcnJheS5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yeC1mb3JtLW1hcHBlci9zcmMvbGliL2RlY29yYXRvcnMvZm9ybS1hcnJheS5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBMkMsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVduRCxNQUFNLFVBQVUsU0FBUyxDQUFDLFVBQXFDO0lBQzlELE9BQU8sQ0FBQyxNQUFXLEVBQUUsWUFBb0IsRUFBRSxFQUFFO1FBRTVDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDckU7UUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN2QixVQUFVLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7U0FDbEM7UUFFRCxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RFLENBQUMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc05pbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHsgUnhWYWxpZGF0b3IsIFJ4QXN5bmNWYWxpZGF0b3IsIFVwZGF0ZU9uLCBpc1R5cGUgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBNb2RlbEJpbmRlciB9IGZyb20gJy4uL2JpbmQvbW9kZWwtYmluZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtQXJyYXlPcHRzIHtcblx0dmFsaWRhdG9ycz86IFJ4VmFsaWRhdG9yIHwgUnhWYWxpZGF0b3JbXTtcblx0YXN5bmNWYWxpZGF0b3JzPzogUnhBc3luY1ZhbGlkYXRvciB8IFJ4QXN5bmNWYWxpZGF0b3JbXTtcblx0dXBkYXRlT24/OiBVcGRhdGVPbjtcblx0dHlwZTogVHlwZTxhbnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRm9ybUFycmF5KHR5cGU6IFR5cGU8YW55Pik6ICh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlOYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gRm9ybUFycmF5KG9wdHM6IEZvcm1BcnJheU9wdHMpOiAodGFyZ2V0OiBPYmplY3QsIHByb3BlcnR5TmFtZTogc3RyaW5nKSA9PiB2b2lkO1xuZXhwb3J0IGZ1bmN0aW9uIEZvcm1BcnJheShvcHRzT3JUeXBlOiBGb3JtQXJyYXlPcHRzIHwgVHlwZTxhbnk+KTogKHRhcmdldDogT2JqZWN0LCBwcm9wZXJ0eU5hbWU6IHN0cmluZykgPT4gdm9pZCB7XG5cdHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5TmFtZTogc3RyaW5nKSA9PiB7XG5cblx0XHRpZiAoaXNOaWwob3B0c09yVHlwZSkpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBGb3JtQXJyYXkgY29uZmlndXJhdGlvbjogJHtvcHRzT3JUeXBlfWApO1xuXHRcdH1cblxuXHRcdGlmIChpc1R5cGUob3B0c09yVHlwZSkpIHtcblx0XHRcdG9wdHNPclR5cGUgPSB7IHR5cGU6IG9wdHNPclR5cGUgfTtcblx0XHR9XG5cblx0XHRNb2RlbEJpbmRlci5pbnN0YW5jZS5iaW5kRm9ybUFycmF5KHRhcmdldCwgcHJvcGVydHlOYW1lLCBvcHRzT3JUeXBlKTtcblx0fTtcbn1cbiJdfQ==