Browse Source

Update decorators

pull/8879/head
kalytka 3 years ago
parent
commit
afb4166322
  1. 153
      ui-ngx/src/app/shared/decorators/coercion.ts

153
ui-ngx/src/app/shared/decorators/coercion.ts

@ -47,70 +47,103 @@ export const coerceBoolean = () => (target: any, key: string, propertyDescriptor
}
};
export const coerceNumber = () => (target: any, key: string): void => {
const getter = function(): number {
return this['__' + key];
};
const setter = function(next: any) {
this['__' + key] = coerceNumberProperty(next);
};
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true,
});
export const coerceNumber = () => (target: any, key: string, propertyDescriptor?: PropertyDescriptor): void => {
if (!!propertyDescriptor && !!propertyDescriptor.set) {
const original = propertyDescriptor.set;
propertyDescriptor.set = function(next) {
original.apply(this, [coerceNumberProperty(next)]);
};
} else {
const getter = function() {
return this['__' + key];
};
const setter = function(next: any) {
this['__' + key] = coerceNumberProperty(next);
};
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true,
});
}
};
export const coerceCssPixelValue = () => (target: any, key: string): void => {
const getter = function(): string {
return this['__' + key];
};
const setter = function(next: any) {
this['__' + key] = coerceCssPixelValueAngular(next);
};
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true,
});
export const coerceCssPixelValue = () => (target: any, key: string, propertyDescriptor?: PropertyDescriptor): void => {
if (!!propertyDescriptor && !!propertyDescriptor.set) {
const original = propertyDescriptor.set;
propertyDescriptor.set = function(next) {
original.apply(this, [coerceCssPixelValueAngular(next)]);
};
} else {
const getter = function() {
return this['__' + key];
};
const setter = function(next: any) {
this['__' + key] = coerceCssPixelValueAngular(next);
};
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true,
});
}
};
export const coerceArray = () => (target: any, key: string): void => {
const getter = function(): any[] {
return this['__' + key];
};
const setter = function(next: any) {
this['__' + key] = coerceArrayAngular(next);
};
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true,
});
export const coerceArray = () => (target: any, key: string, propertyDescriptor?: PropertyDescriptor): void => {
if (!!propertyDescriptor && !!propertyDescriptor.set) {
const original = propertyDescriptor.set;
propertyDescriptor.set = function(next) {
original.apply(this, [coerceArrayAngular(next)]);
};
} else {
const getter = function() {
return this['__' + key];
};
const setter = function(next: any) {
this['__' + key] = coerceArrayAngular(next);
};
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true,
});
}
};
export const coerceStringArray = (separator?: string | RegExp) => (target: any, key: string): void => {
const getter = function(): string[] {
return this['__' + key];
};
const setter = function(next: any) {
this['__' + key] = coerceStringArrayAngular(next, separator);
};
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true,
});
export const coerceStringArray = (separator?: string | RegExp) =>
(target: any, key: string, propertyDescriptor?: PropertyDescriptor): void => {
if (!!propertyDescriptor && !!propertyDescriptor.set) {
const original = propertyDescriptor.set;
propertyDescriptor.set = function(next) {
original.apply(this, [coerceStringArrayAngular(next, separator)]);
};
} else {
const getter = function() {
return this['__' + key];
};
const setter = function(next: any) {
this['__' + key] = coerceStringArrayAngular(next, separator);
};
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true,
});
}
};

Loading…
Cancel
Save