discourse/app/assets/javascripts/ember-addons/decorator-alias.js.es6

23 lines
673 B
Plaintext
Raw Normal View History

2018-06-15 11:03:24 -04:00
import extractValue from "./utils/extract-value";
2015-08-11 17:34:02 -04:00
export default function decoratorAlias(fn, errorMessage) {
return function(...params) {
// determine if user called as @discourseComputed('blah', 'blah') or @discourseComputed
2015-08-11 17:34:02 -04:00
if (params.length === 0) {
throw new Error(errorMessage);
} else {
return function(target, key, desc) {
return {
enumerable: desc.enumerable,
configurable: desc.configurable,
writable: desc.writable,
initializer: function() {
var value = extractValue(desc);
return fn.apply(null, params.concat(value));
}
};
};
}
};
}