Merge pull request #8879 from kalutkaz/updateCoerceBoolean
Update cource Decorators
This commit is contained in:
commit
103f41d16c
@ -22,87 +22,128 @@ import {
|
||||
coerceStringArray as coerceStringArrayAngular
|
||||
} from '@angular/cdk/coercion';
|
||||
|
||||
export const coerceBoolean = () => (target: any, key: string): void => {
|
||||
const getter = function() {
|
||||
return this['__' + key];
|
||||
};
|
||||
export const coerceBoolean = () => (target: any, key: string, propertyDescriptor?: PropertyDescriptor): void => {
|
||||
if (!!propertyDescriptor && !!propertyDescriptor.set) {
|
||||
const original = propertyDescriptor.set;
|
||||
|
||||
const setter = function(next: any) {
|
||||
this['__' + key] = coerceBooleanProperty(next);
|
||||
};
|
||||
propertyDescriptor.set = function(next) {
|
||||
original.apply(this, [coerceBooleanProperty(next)]);
|
||||
};
|
||||
} else {
|
||||
const getter = function() {
|
||||
return this['__' + key];
|
||||
};
|
||||
|
||||
Object.defineProperty(target, key, {
|
||||
get: getter,
|
||||
set: setter,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
});
|
||||
const setter = function(next: any) {
|
||||
this['__' + key] = coerceBooleanProperty(next);
|
||||
};
|
||||
|
||||
Object.defineProperty(target, key, {
|
||||
get: getter,
|
||||
set: setter,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export const coerceNumber = () => (target: any, key: string): void => {
|
||||
const getter = function(): number {
|
||||
return this['__' + key];
|
||||
};
|
||||
export const coerceNumber = () => (target: any, key: string, propertyDescriptor?: PropertyDescriptor): void => {
|
||||
if (!!propertyDescriptor && !!propertyDescriptor.set) {
|
||||
const original = propertyDescriptor.set;
|
||||
|
||||
const setter = function(next: any) {
|
||||
this['__' + key] = coerceNumberProperty(next);
|
||||
};
|
||||
propertyDescriptor.set = function(next) {
|
||||
original.apply(this, [coerceNumberProperty(next)]);
|
||||
};
|
||||
} else {
|
||||
const getter = function() {
|
||||
return this['__' + key];
|
||||
};
|
||||
|
||||
Object.defineProperty(target, key, {
|
||||
get: getter,
|
||||
set: setter,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
});
|
||||
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];
|
||||
};
|
||||
export const coerceCssPixelValue = () => (target: any, key: string, propertyDescriptor?: PropertyDescriptor): void => {
|
||||
if (!!propertyDescriptor && !!propertyDescriptor.set) {
|
||||
const original = propertyDescriptor.set;
|
||||
|
||||
const setter = function(next: any) {
|
||||
this['__' + key] = coerceCssPixelValueAngular(next);
|
||||
};
|
||||
propertyDescriptor.set = function(next) {
|
||||
original.apply(this, [coerceCssPixelValueAngular(next)]);
|
||||
};
|
||||
} else {
|
||||
const getter = function() {
|
||||
return this['__' + key];
|
||||
};
|
||||
|
||||
Object.defineProperty(target, key, {
|
||||
get: getter,
|
||||
set: setter,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
});
|
||||
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];
|
||||
};
|
||||
export const coerceArray = () => (target: any, key: string, propertyDescriptor?: PropertyDescriptor): void => {
|
||||
if (!!propertyDescriptor && !!propertyDescriptor.set) {
|
||||
const original = propertyDescriptor.set;
|
||||
|
||||
const setter = function(next: any) {
|
||||
this['__' + key] = coerceArrayAngular(next);
|
||||
};
|
||||
propertyDescriptor.set = function(next) {
|
||||
original.apply(this, [coerceArrayAngular(next)]);
|
||||
};
|
||||
} else {
|
||||
const getter = function() {
|
||||
return this['__' + key];
|
||||
};
|
||||
|
||||
Object.defineProperty(target, key, {
|
||||
get: getter,
|
||||
set: setter,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
});
|
||||
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];
|
||||
};
|
||||
export const coerceStringArray = (separator?: string | RegExp) =>
|
||||
(target: any, key: string, propertyDescriptor?: PropertyDescriptor): void => {
|
||||
if (!!propertyDescriptor && !!propertyDescriptor.set) {
|
||||
const original = propertyDescriptor.set;
|
||||
|
||||
const setter = function(next: any) {
|
||||
this['__' + key] = coerceStringArrayAngular(next, separator);
|
||||
};
|
||||
propertyDescriptor.set = function(next) {
|
||||
original.apply(this, [coerceStringArrayAngular(next, separator)]);
|
||||
};
|
||||
} else {
|
||||
const getter = function() {
|
||||
return this['__' + key];
|
||||
};
|
||||
|
||||
Object.defineProperty(target, key, {
|
||||
get: getter,
|
||||
set: setter,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
});
|
||||
const setter = function(next: any) {
|
||||
this['__' + key] = coerceStringArrayAngular(next, separator);
|
||||
};
|
||||
|
||||
Object.defineProperty(target, key, {
|
||||
get: getter,
|
||||
set: setter,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user