UNPKG

animiassumenda

Version:

Blox live, desktop app for managing staking accounts

27 lines (24 loc) 1.02 kB
export function Step(metadata: any) { return (target, key, descriptor) => { // save a reference to the original method this way we keep the values currently in the // descriptor and don't overwrite what another decorator might have done to the descriptor. if (descriptor === undefined) { // eslint-disable-next-line no-param-reassign descriptor = Object.getOwnPropertyDescriptor(target, key); } const originalMethod = descriptor.value; // editing the descriptor/value parameter // eslint-disable-next-line func-names descriptor.value = async function () { const args = []; for (let i = 0; i < arguments.length; i += 1) { // eslint-disable-next-line prefer-rest-params args[i] = arguments[i]; } const result = await originalMethod.apply(this, args); return { ...result, step: { name: metadata ? metadata.name : key } }; }; // return edited descriptor as opposed to overwriting the descriptor return descriptor; }; }