import React from 'react'; import fs from 'fs'; import Document, { DocumentContext, DocumentInitialProps, Html, Head, Main, NextScript, } from 'next/document'; import { resolveFromRoot } from '~/utils/project-dir-utils'; interface GrowiDocumentProps { pluginsManifest: any; } declare type GrowiDocumentInitialProps = DocumentInitialProps & GrowiDocumentProps; async function importPluginsManifest(): Promise { const customManifestStr: string = await fs.readFileSync(resolveFromRoot('tmp/plugins/weseek/growi-plugin-jstest/dist/manifest.json'), 'utf-8'); return { 'growi-plugin-jstest': JSON.parse(customManifestStr), }; } class GrowiDocument extends Document { static override async getInitialProps(ctx: DocumentContext): Promise { const initialProps: DocumentInitialProps = await Document.getInitialProps(ctx); const pluginsManifest: any = await importPluginsManifest(); return { ...initialProps, pluginsManifest }; } override render(): JSX.Element { const { pluginsManifest } = this.props; return ( {/* {renderScriptTagsByGroup('basis')} {renderStyleTagsByGroup('basis')} */}