2020-04-28 22:14:49 +08:00
|
|
|
import isDescriptor from "discourse-common/utils/is-descriptor";
|
2022-06-10 02:07:58 +08:00
|
|
|
import deprecated from "discourse-common/lib/deprecated";
|
2020-04-28 22:14:49 +08:00
|
|
|
|
|
|
|
function handleDescriptor(target, property, desc, fn, params = []) {
|
|
|
|
return {
|
|
|
|
enumerable: desc.enumerable,
|
|
|
|
configurable: desc.configurable,
|
|
|
|
writable: desc.writable,
|
2021-11-13 21:01:55 +08:00
|
|
|
initializer() {
|
2020-04-28 22:14:49 +08:00
|
|
|
return fn(...params);
|
|
|
|
},
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
export default function macroAlias(fn) {
|
|
|
|
return function (...params) {
|
|
|
|
if (isDescriptor(params[params.length - 1])) {
|
|
|
|
return handleDescriptor(...params, fn);
|
|
|
|
} else {
|
2022-06-10 02:07:58 +08:00
|
|
|
deprecated(
|
|
|
|
`Importing ${fn.name} from 'discourse-common/utils/decorators' is deprecated. You should instead import it from '@ember/object/computed' directly.`
|
|
|
|
);
|
2020-04-28 22:14:49 +08:00
|
|
|
return function (target, property, desc) {
|
|
|
|
return handleDescriptor(target, property, desc, fn, params);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|