index.d.ts 1.4 KB

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