ember-source
Version:
A JavaScript framework for creating ambitious web applications
52 lines (51 loc) • 1.41 kB
TypeScript
declare module '@ember/template-compiler/lib/types' {
import type {
ASTPluginEnvironment,
builders,
PrecompileOptions,
PrecompileOptionsWithLexicalScope,
} from '@glimmer/syntax';
export type Builders = typeof builders;
export type PluginFunc = NonNullable<
NonNullable<PrecompileOptionsWithLexicalScope['plugins']>['ast']
>[number];
export type LexicalScope = NonNullable<PrecompileOptionsWithLexicalScope['lexicalScope']>;
interface Plugins {
ast: PluginFunc[];
}
export interface EmberPrecompileOptions extends PrecompileOptions {
isProduction?: boolean;
moduleName?: string;
plugins?: Plugins;
lexicalScope?: LexicalScope;
/**
* This supports template blocks defined in class bodies.
*
* Manual form:
*
* ```ts
* class MyComponent {
* static {
* template(templateContent, {
* component: this,
* eval: () => eval(arguments[0])
* })
* }
* }
* ```
*
* GJS form (compiled to the manual form via `content-tag`):
*
* ```ts
* class MyComponent {
* <template>Template Content</template>
* }
* ```
*/
component?: object;
eval?: (value: string) => unknown;
scope?: () => Record<string, unknown>;
}
export type EmberASTPluginEnvironment = ASTPluginEnvironment & EmberPrecompileOptions;
export {};
}