UNPKG

@glimmer/application-test-helpers

Version:

Test helpers for developing @glimmer/component and @glimmer/application

52 lines (51 loc) 2.04 kB
import Resolver, { ResolverConfiguration } from '@glimmer/resolver'; import { Dict } from '@glimmer/interfaces'; import Application, { ApplicationConstructor, BytecodeLoader, Loader, INTERNAL_DYNAMIC_SCOPE } from '@glimmer/application'; import { Renderer } from '@glimmer/application'; import { SimpleDocument } from '@simple-dom/interface'; import HTMLSerializer from '@simple-dom/serializer'; export interface AppBuilderOptions<T> { appName?: string; loader?: string; ApplicationClass?: ApplicationConstructor<T>; ComponentManager?: any; resolverConfiguration?: ResolverConfiguration; document?: SimpleDocument; } export interface ComponentFactory { } export declare class TestApplication extends Application { rootElement: Element; } export interface AppBuilderTemplateMeta { specifier: string; } interface HelperFunction extends Function { isFactory?: boolean; } interface TestSSRApplicationOptions { rootName?: string; resolver?: Resolver; loader?: Loader; renderer?: Renderer; serializer?: HTMLSerializer; [INTERNAL_DYNAMIC_SCOPE]?: Dict<unknown>; } export declare class AppBuilder<T extends TestApplication> { rootName: string; modules: Dict<unknown>; templates: Dict<string>; options: AppBuilderOptions<T>; constructor(name: string, options: AppBuilderOptions<T>); template(name: string, template: string): this; component(name: string, componentFactory: ComponentFactory): this; helper(name: string, helperFunc: HelperFunction, isFactory?: boolean): this; protected buildResolver(): Resolver; protected buildRuntimeCompilerLoader(): Loader; protected buildBytecodeLoader(resolver: Resolver): BytecodeLoader; protected buildLoader(resolver: any): Loader; renderToString(componentName: string, data: Dict<unknown>, options?: TestSSRApplicationOptions): Promise<string>; boot(): Promise<T>; } declare function buildApp<T extends TestApplication>(options?: AppBuilderOptions<T>): AppBuilder<T>; export { buildApp };