1 | import Vue, { VNode, VNodeDirective } from 'vue';
|
2 | import { Readable } from 'stream';
|
3 |
|
4 | export declare function createRenderer(options?: RendererOptions): Renderer;
|
5 |
|
6 | export declare function createBundleRenderer(bundle: string | object, options?: BundleRendererOptions): BundleRenderer;
|
7 |
|
8 | type RenderCallback = (err: Error | null, html: string) => void;
|
9 |
|
10 | interface 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 |
|
19 | interface 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 |
|
28 | interface 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 |
|
39 | interface BundleRendererOptions extends RendererOptions {
|
40 | clientManifest?: object;
|
41 | serializer?: (state: object) => string;
|
42 | runInNewContext?: boolean | 'once';
|
43 | basedir?: string;
|
44 | }
|
45 |
|
46 | interface RenderCache {
|
47 | get: (key: string, cb?: (res: string) => void) => string | void;
|
48 | set: (key: string, val: string) => void;
|
49 | has?: (key: string, cb?: (hit: boolean) => void) => boolean | void;
|
50 | }
|