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