UNPKG

2.89 kBTypeScriptView Raw
1export declare function createWindowFromHtml(templateHtml: string, uniqueId: string): any;
2export interface HydrateDocumentOptions {
3 canonicalUrl?: string;
4 constrainTimeouts?: boolean;
5 clientHydrateAnnotations?: boolean;
6 cookie?: string;
7 direction?: string;
8 excludeComponents?: string[];
9 language?: string;
10 maxHydrateCount?: number;
11 referrer?: string;
12 removeScripts?: boolean;
13 removeUnusedStyles?: boolean;
14 resourcesUrl?: string;
15 /**
16 * Prints out runtime console logs to the NodeJS process. Defaults to `false`.
17 */
18 runtimeLogging?: boolean;
19 timeout?: number;
20 title?: string;
21 url?: string;
22 userAgent?: string;
23}
24export interface SerializeDocumentOptions extends HydrateDocumentOptions {
25 afterHydrate?(document: any): any | Promise<any>;
26 approximateLineWidth?: number;
27 beforeHydrate?(document: any): any | Promise<any>;
28 prettyHtml?: boolean;
29 removeAttributeQuotes?: boolean;
30 removeBooleanAttributeQuotes?: boolean;
31 removeEmptyAttributes?: boolean;
32 removeHtmlComments?: boolean;
33}
34export interface HydrateFactoryOptions extends SerializeDocumentOptions {
35 serializeToHtml: boolean;
36 destroyWindow: boolean;
37 destroyDocument: boolean;
38}
39export interface Diagnostic {
40 level: 'error' | 'warn' | 'info' | 'log' | 'debug';
41 type: string;
42 header?: string;
43 language?: string;
44 messageText: string;
45 debugText?: string;
46 code?: string;
47 absFilePath?: string;
48 relFilePath?: string;
49 lineNumber?: number;
50 columnNumber?: number;
51 lines?: {
52 lineIndex: number;
53 lineNumber: number;
54 text?: string;
55 errorCharStart: number;
56 errorLength?: number;
57 }[];
58}
59export interface HydrateResults {
60 diagnostics: Diagnostic[];
61 url: string;
62 host: string;
63 hostname: string;
64 href: string;
65 port: string;
66 pathname: string;
67 search: string;
68 hash: string;
69 html: string;
70 components: HydrateComponent[];
71 anchors: HydrateAnchorElement[];
72 styles: HydrateStyleElement[];
73 scripts: HydrateScriptElement[];
74 imgs: HydrateImgElement[];
75 title: string;
76 hydratedCount: number;
77 httpStatus: number;
78}
79export interface HydrateComponent {
80 tag: string;
81 mode: string;
82 count: number;
83 depth: number;
84}
85export interface HydrateElement {
86 [attrName: string]: string | undefined;
87}
88export interface HydrateAnchorElement extends HydrateElement {
89 href?: string;
90 target?: string;
91}
92export interface HydrateStyleElement extends HydrateElement {
93 href?: string;
94}
95export interface HydrateScriptElement extends HydrateElement {
96 src?: string;
97 type?: string;
98}
99export interface HydrateImgElement extends HydrateElement {
100 src?: string;
101}
102export declare function renderToString(html: string | any, options?: SerializeDocumentOptions): Promise<HydrateResults>;
103export declare function hydrateDocument(doc: any | string, options?: HydrateDocumentOptions): Promise<HydrateResults>;
104export declare function serializeDocumentToString(doc: any, opts: HydrateFactoryOptions): string;
105
106export {};