UNPKG

1.6 kBTypeScriptView Raw
1import Vue, { VNode, VNodeDirective } from 'vue';
2import { Readable } from 'stream';
3
4export declare function createRenderer(options?: RendererOptions): Renderer;
5
6export declare function createBundleRenderer(bundle: string | object, options?: BundleRendererOptions): BundleRenderer;
7
8type RenderCallback = (err: Error | null, html: string) => void;
9
10interface Renderer {
11 renderToString(vm: Vue, callback: RenderCallback): void;
12 renderToString(vm: Vue, context: object, callback: RenderCallback): void;
13 renderToString(vm: Vue): Promise<string>;
14 renderToString(vm: Vue, context: object): Promise<string>;
15
16 renderToStream(vm: Vue, context?: object): Readable;
17}
18
19interface BundleRenderer {
20 renderToString(callback: RenderCallback): void;
21 renderToString(context: object, callback: RenderCallback): void;
22 renderToString(): Promise<string>;
23 renderToString(context: object): Promise<string>;
24
25 renderToStream(context?: object): Readable;
26}
27
28interface RendererOptions {
29 template?: string;
30 inject?: boolean;
31 shouldPreload?: (file: string, type: string) => boolean;
32 shouldPrefetch?: (file: string, type: string) => boolean;
33 cache?: RenderCache;
34 directives?: {
35 [key: string]: (vnode: VNode, dir: VNodeDirective) => void
36 };
37}
38
39interface BundleRendererOptions extends RendererOptions {
40 clientManifest?: object;
41 runInNewContext?: boolean | 'once';
42 basedir?: string;
43}
44
45interface RenderCache {
46 get: (key: string, cb?: (res: string) => void) => string | void;
47 set: (key: string, val: string) => void;
48 has?: (key: string, cb?: (hit: boolean) => void) => boolean | void;
49}