UNPKG

telefunc

Version:

Remote functions. Instead of API.

38 lines (37 loc) 1.37 kB
export { pluginBuildEntry }; import { serverProductionEntryPlugin } from '@brillout/vite-plugin-server-entry/plugin'; import { projectInfo } from '../utils.js'; import { VIRTUAL_FILE_ENTRY_ID } from './pluginVirtualFileEntry/VIRTUAL_FILE_ENTRY_ID.js'; import { config } from '../../server/serverConfig.js'; import { assertManifest } from '../../server/runTelefunc/loadTelefuncFilesUsingVite/assertManifest.js'; function pluginBuildEntry() { return [ ...serverProductionEntryPlugin({ getServerProductionEntry: () => { return getServerProductionEntryCode(); }, libraryName: projectInfo.projectName, }), ]; } function getServerProductionEntryCode() { const telefuncManifest = getTelefuncManifest(); const importerCode = [ `import { setTelefuncLoaders } from 'telefunc/__internal/loadBuildEntry';`, `import * as telefuncFiles from '${VIRTUAL_FILE_ENTRY_ID}';`, 'setTelefuncLoaders({', ` loadTelefuncFiles: () => telefuncFiles,`, ` loadManifest: () => (${JSON.stringify(telefuncManifest, null, 2)})`, '});', '', ].join('\n'); return importerCode; } function getTelefuncManifest() { const manifest = { version: projectInfo.projectVersion, config, }; assertManifest(manifest); return manifest; }