fix(core): fix decorator defalut values

This commit is contained in:
Victor Berchet
2016-10-11 20:16:39 -07:00
committed by Igor Minar
parent 3993279527
commit bd1dcb5f11
2 changed files with 17 additions and 6 deletions

View File

@ -297,21 +297,20 @@ export function makeDecorator(
}
function makeMetadataCtor(props: ([string, any] | {[key: string]: any})[]): any {
function ctor(...args: any[]) {
return function ctor(...args: any[]) {
props.forEach((prop, i) => {
const argVal = args[i];
if (Array.isArray(prop)) {
// plain parameter
this[prop[0]] = !argVal || argVal === undefined ? prop[1] : argVal;
this[prop[0]] = argVal === undefined ? prop[1] : argVal;
} else {
for (let propName in prop) {
for (const propName in prop) {
this[propName] =
!argVal || argVal[propName] === undefined ? prop[propName] : argVal[propName];
argVal && argVal.hasOwnProperty(propName) ? argVal[propName] : prop[propName];
}
}
});
}
return ctor;
};
}
export function makeParamDecorator(