mirror of
https://github.com/discourse/discourse.git
synced 2025-02-10 23:26:32 +08:00
![Robin Ward](/assets/img/avatar_default.png)
We weren't using this very much and introduces a dependency between discourse-common and discourse which makes moving to yarn workspaces more difficult. In the future we might user ember-addons properly but for now it's easier to move the code into discourse-common. Note the old folder is still there because at least one plugin was still requiring the old files. It will be removed in the future.
25 lines
638 B
JavaScript
25 lines
638 B
JavaScript
import isDescriptor from "discourse-common/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);
|
|
};
|
|
}
|
|
};
|
|
}
|