decorator-transforms
Version:
Better babel transforms for decorators
30 lines (29 loc) • 1.59 kB
TypeScript
export interface Descriptor {
configurable?: boolean;
enumerable?: boolean;
writable?: boolean;
get?(): any;
set?(v: any): void;
initializer?: null | (() => any);
value?: any;
}
export type LegacyDecorator = (target: object, prop: unknown, desc: Descriptor) => Descriptor | null | undefined | void;
export type LegacyClassDecorator = (target: new (...args: any) => any) => {
new (...args: any): any;
} | null | undefined | void;
declare function decorateFieldV1(target: {
prototype: object;
}, prop: string | number | symbol, decorators: LegacyDecorator[], initializer?: () => any): void;
declare function decorateFieldV2(prototype: object, prop: string | number | symbol, decorators: LegacyDecorator[], initializer?: () => any): void;
declare function decorateMethodV1({ prototype }: {
prototype: object;
}, prop: string | number | symbol, decorators: LegacyDecorator[]): void;
declare function decorateMethodV2(prototype: object, prop: string | number | symbol, decorators: LegacyDecorator[]): void;
declare function initializeDeferredDecorator(target: object, prop: string | number | symbol): void;
declare function decorateClass(target: new (...args: any) => any, decorators: LegacyClassDecorator[]): new (...args: any) => any;
declare function decoratePOJO(pojo: object, decorated: [
'field' | 'method',
string | number | symbol,
LegacyDecorator[]
][]): object;
export { decorateFieldV1 as f, decorateFieldV2 as g, decorateMethodV1 as m, decorateMethodV2 as n, initializeDeferredDecorator as i, decorateClass as c, decoratePOJO as p, };