index.d.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. renderToString(vm: Vue, context: object): Promise<string>;
  11. renderToStream(vm: Vue, context?: object): Readable;
  12. }
  13. interface BundleRenderer {
  14. renderToString(callback: RenderCallback): void;
  15. renderToString(context: object, callback: RenderCallback): void;
  16. renderToString(): Promise<string>;
  17. renderToString(context: object): Promise<string>;
  18. renderToStream(context?: object): Readable;
  19. }
  20. interface RendererOptions {
  21. template?: string;
  22. inject?: boolean;
  23. shouldPreload?: (file: string, type: string) => boolean;
  24. shouldPrefetch?: (file: string, type: string) => boolean;
  25. cache?: RenderCache;
  26. directives?: {
  27. [key: string]: (vnode: VNode, dir: VNodeDirective) => void
  28. };
  29. }
  30. interface BundleRendererOptions extends RendererOptions {
  31. clientManifest?: object;
  32. serializer?: (state: object) => string;
  33. runInNewContext?: boolean | 'once';
  34. basedir?: string;
  35. }
  36. interface RenderCache {
  37. get: (key: string, cb?: (res: string) => void) => string | void;
  38. set: (key: string, val: string) => void;
  39. has?: (key: string, cb?: (hit: boolean) => void) => boolean | void;
  40. }