vike
Version:
(Replaces Next.js/Nuxt) 🔨 Composable framework to build advanced applications with flexibility and stability.
43 lines (41 loc) • 1.36 kB
JavaScript
export { pluginServerEntryAlias };
import { catchAllEntry } from '@universal-deploy/store';
import { pluginCommon } from './common.js';
import { escapeRegex } from '../../../../utils/escapeRegex.js';
import { assert } from '../../../../utils/assert.js';
import '../../assertEnvVite.js';
const serverEntryAlias = 'vike:server-entry';
const virtualFileId = '\0' + serverEntryAlias;
// === Rolldown filter
const filterRolldown = {
id: {
include: [new RegExp(escapeRegex(serverEntryAlias)), new RegExp(escapeRegex(virtualFileId))],
},
};
// ===
/** Alias for virtual:ud:catch if no userland server entry */
function pluginServerEntryAlias(serverFilePath) {
return {
name: 'vike:pluginUniversalDeploy:alias',
resolveId: {
filter: filterRolldown,
handler() {
if (!serverFilePath)
return catchAllEntry;
return virtualFileId;
},
},
load: {
filter: filterRolldown,
handler() {
assert(serverFilePath);
// Also re-export non-default exports, to support Durable Objects
return `import mod from ${JSON.stringify(catchAllEntry)};
export * from ${JSON.stringify(serverFilePath)};
export default mod;
`;
},
},
...pluginCommon,
};
}