mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-16 18:17:31 +08:00
42 lines
979 B
TypeScript
42 lines
979 B
TypeScript
import type { SerializeDocumentOptions } from '@ionic/core/hydrate';
|
|
import { renderToString } from '@ionic/core/hydrate';
|
|
|
|
export async function ionRenderToString(html: string, userAgent: string, options: SerializeDocumentOptions = {}) {
|
|
const renderToStringOptions = Object.assign(
|
|
{},
|
|
{
|
|
clientHydrateAnnotations: false,
|
|
excludeComponents: [
|
|
// overlays
|
|
'ion-action-sheet',
|
|
'ion-alert',
|
|
'ion-loading',
|
|
'ion-modal',
|
|
'ion-picker',
|
|
'ion-popover',
|
|
'ion-toast',
|
|
|
|
// navigation
|
|
'ion-router',
|
|
'ion-route',
|
|
'ion-route-redirect',
|
|
'ion-router-link',
|
|
'ion-router-outlet',
|
|
|
|
// tabs
|
|
'ion-tabs',
|
|
'ion-tab',
|
|
|
|
// auxiliary
|
|
'ion-picker-column',
|
|
'ion-virtual-scroll',
|
|
],
|
|
userAgent,
|
|
},
|
|
options
|
|
);
|
|
|
|
const ionHtml = await renderToString(html, renderToStringOptions);
|
|
return ionHtml.html;
|
|
}
|