diff --git a/jsconfig.json b/jsconfig.json index b6cd47d..9e05e54 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -6,6 +6,7 @@ "allowJs": true, "checkJs": true, "resolveJsonModule": true, - "noEmit": true + "noEmit": true, + "skipLibCheck": false } } diff --git a/src/index.d.ts b/src/index.d.ts index ac11103..bd5f476 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -13,3 +13,5 @@ export interface PreviewMiddlewareOptions { export type Options = PrerenderOptions & PreviewMiddlewareOptions; export function vitePrerenderPlugin(options?: Options): Plugin[]; + +export type { PrerenderArguments, PrerenderResult } from './plugins/types.d.ts'; diff --git a/src/plugins/prerender-plugin.js b/src/plugins/prerender-plugin.js index 4c8bc22..215fd8c 100644 --- a/src/plugins/prerender-plugin.js +++ b/src/plugins/prerender-plugin.js @@ -382,7 +382,7 @@ export function prerenderPlugin({ prerenderScript, renderTarget, additionalPrere return message; }; - /** @type {import('./types.d.ts').Head} */ + /** @type {Partial} */ let head = { lang: '', title: '', elements: new Set() }; let prerender; @@ -420,6 +420,7 @@ export function prerenderPlugin({ prerenderScript, renderTarget, additionalPrere } catch {} } + /** @type {import('./types.d.ts').PrerenderResult} */ let result; try { result = await prerender({ ssr: true, url: route.url, route }); @@ -494,9 +495,9 @@ export function prerenderPlugin({ prerenderScript, renderTarget, additionalPrere const target = htmlDoc.querySelector(renderTarget); if (!target) this.error( - result.renderTarget == 'body' + renderTarget == 'body' ? '`renderTarget` was not specified in plugin options and does not exist in input HTML template' - : `Unable to detect prerender renderTarget "${result.selector}" in input HTML template`, + : `Unable to detect prerender renderTarget "${renderTarget}" in input HTML template`, ); target.insertAdjacentHTML('afterbegin', body); diff --git a/src/plugins/types.d.ts b/src/plugins/types.d.ts index d13ad3c..7f4dc80 100644 --- a/src/plugins/types.d.ts +++ b/src/plugins/types.d.ts @@ -14,3 +14,16 @@ export interface PrerenderedRoute { url: string; _discoveredBy?: PrerenderedRoute; } + +export interface PrerenderArguments { + ssr: true; + url: string; + route: PrerenderedRoute; +} + +export type PrerenderResult = { + html: string; + links?: Set; + data?: any; + head?: Partial; +} | string