mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-12-23 14:02:33 -05:00
25 lines
623 B
Text
25 lines
623 B
Text
|
import isDescriptor from './utils/is-descriptor';
|
||
|
|
||
|
function handleDescriptor(target, property, desc, fn, params = []) {
|
||
|
return {
|
||
|
enumerable: desc.enumerable,
|
||
|
configurable: desc.configurable,
|
||
|
writable: desc.writable,
|
||
|
initializer: function() {
|
||
|
return fn(...params);
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
export default function macroAlias(fn) {
|
||
|
return function(...params) {
|
||
|
if (isDescriptor(params[params.length - 1])) {
|
||
|
return handleDescriptor(...params, fn);
|
||
|
} else {
|
||
|
return function(target, property, desc) {
|
||
|
return handleDescriptor(target, property, desc, fn, params);
|
||
|
};
|
||
|
}
|
||
|
};
|
||
|
}
|