@embroider/macros
Version:
Standardized build-time macros for ember apps.
133 lines (132 loc) • 3.42 kB
TypeScript
export interface BuildPluginParams {
name: string;
baseDir: string;
methodName: string;
firstTransformParams: FirstTransformParams;
}
export interface FirstTransformParams {
packageRoot: string | undefined;
appRoot: string;
configs: {
[packageRoot: string]: object;
};
}
export declare function buildPlugin(params: BuildPluginParams): {
name: string;
plugin: (env: {
syntax: {
builders: any;
};
meta: {
moduleName: string;
};
filename: string;
}) => {
name: string;
visitor: {
SubExpression(node: any, walker: {
parent: {
node: any;
};
}): any;
MustacheStatement(node: any): any;
Template: {
enter: (node: any) => void;
exit: (node: any) => void;
};
Block: {
enter: (node: any) => void;
exit: (node: any) => void;
};
Program?: undefined;
} | {
SubExpression(node: any, walker: {
parent: {
node: any;
};
}): any;
MustacheStatement(node: any): any;
Program: {
enter: (node: any) => void;
exit: (node: any) => void;
};
Template?: undefined;
Block?: undefined;
};
};
baseDir: () => string;
};
export declare function makeFirstTransform(opts: FirstTransformParams): (env: {
syntax: {
builders: any;
};
meta: {
moduleName: string;
};
filename: string;
}) => {
name: string;
visitor: {
SubExpression(node: any, walker: {
parent: {
node: any;
};
}): any;
MustacheStatement(node: any): any;
Template: {
enter: (node: any) => void;
exit: (node: any) => void;
};
Block: {
enter: (node: any) => void;
exit: (node: any) => void;
};
Program?: undefined;
} | {
SubExpression(node: any, walker: {
parent: {
node: any;
};
}): any;
MustacheStatement(node: any): any;
Program: {
enter: (node: any) => void;
exit: (node: any) => void;
};
Template?: undefined;
Block?: undefined;
};
};
export declare function makeSecondTransform(): (env: {
syntax: {
builders: any;
};
}) => {
name: string;
visitor: {
BlockStatement(node: any): any;
SubExpression(node: any): any;
ElementNode(node: any): void;
MustacheStatement(node: any): any;
Template: {
enter: (node: any) => void;
exit: (node: any) => void;
};
Block: {
enter: (node: any) => void;
exit: (node: any) => void;
};
Program?: undefined;
} | {
BlockStatement(node: any): any;
SubExpression(node: any): any;
ElementNode(node: any): void;
MustacheStatement(node: any): any;
Program: {
enter: (node: any) => void;
exit: (node: any) => void;
};
Template?: undefined;
Block?: undefined;
};
};