UNPKG

rx-form-mapper

Version:

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

15 lines 3.17 kB
import { isNil } from 'lodash'; import 'reflect-metadata'; import { ModelBinder } from './../bind/model-binder'; export function CustomControl(optsOrMapper) { return (target, propertyName) => { if (isNil(optsOrMapper)) { throw new Error(`unexpected CustomControl configuration: ${optsOrMapper}`); } if (typeof (optsOrMapper) !== 'object') { optsOrMapper = { mapper: optsOrMapper }; } ModelBinder.instance.bindCustomControl(target, propertyName, optsOrMapper); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNvbnRyb2wuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcngtZm9ybS1tYXBwZXIvc3JjL2xpYi9kZWNvcmF0b3JzL2N1c3RvbS1jb250cm9sLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQy9CLE9BQU8sa0JBQWtCLENBQUM7QUFJMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBV3JELE1BQU0sVUFBVSxhQUFhLENBQUMsWUFBMkQ7SUFDeEYsT0FBTyxDQUFDLE1BQVcsRUFBRSxZQUFvQixFQUFFLEVBQUU7UUFFNUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsWUFBWSxFQUFFLENBQUMsQ0FBQztTQUMzRTtRQUVELElBQUksT0FBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxZQUFZLEdBQUcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7U0FDeEM7UUFFRCxXQUFXLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5pbXBvcnQgeyBSeFZhbGlkYXRvciwgUnhBc3luY1ZhbGlkYXRvciB9IGZyb20gJy4uJztcbmltcG9ydCB7IEN1c3RvbUNvbnRyb2xNYXBwZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2N1c3RvbS1jb250cm9sLW1hcHBlcic7XG5pbXBvcnQgeyBVcGRhdGVPbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE1vZGVsQmluZGVyIH0gZnJvbSAnLi8uLi9iaW5kL21vZGVsLWJpbmRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQ29udHJvbE9wdHMge1xuXHRtYXBwZXI6IFR5cGU8Q3VzdG9tQ29udHJvbE1hcHBlcj4sXG5cdHZhbGlkYXRvcnM/OiBSeFZhbGlkYXRvciB8IFJ4VmFsaWRhdG9yW107XG5cdGFzeW5jVmFsaWRhdG9ycz86IFJ4QXN5bmNWYWxpZGF0b3IgfCBSeEFzeW5jVmFsaWRhdG9yW107XG5cdHVwZGF0ZU9uPzogVXBkYXRlT247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDdXN0b21Db250cm9sKG1hcHBlcjogVHlwZTxDdXN0b21Db250cm9sTWFwcGVyPik6ICh0YXJnZXQ6IGFueSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gQ3VzdG9tQ29udHJvbChvcHRzOiBDdXN0b21Db250cm9sT3B0cyk6ICh0YXJnZXQ6IGFueSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gQ3VzdG9tQ29udHJvbChvcHRzT3JNYXBwZXI6IFR5cGU8Q3VzdG9tQ29udHJvbE1hcHBlcj4gfCBDdXN0b21Db250cm9sT3B0cyk6ICh0YXJnZXQ6IGFueSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpID0+IHZvaWQge1xuXHRyZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eU5hbWU6IHN0cmluZykgPT4ge1xuXG5cdFx0aWYgKGlzTmlsKG9wdHNPck1hcHBlcikpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBDdXN0b21Db250cm9sIGNvbmZpZ3VyYXRpb246ICR7b3B0c09yTWFwcGVyfWApO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2Yob3B0c09yTWFwcGVyKSAhPT0gJ29iamVjdCcpIHtcblx0XHRcdG9wdHNPck1hcHBlciA9IHsgbWFwcGVyOiBvcHRzT3JNYXBwZXIgfTtcblx0XHR9XG5cblx0XHRNb2RlbEJpbmRlci5pbnN0YW5jZS5iaW5kQ3VzdG9tQ29udHJvbCh0YXJnZXQsIHByb3BlcnR5TmFtZSwgb3B0c09yTWFwcGVyKTtcblx0fTtcbn1cbiJdfQ==