0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2025-02-24 22:46:02 -05:00

wip: avoid seeding astro:db imported by seed file

This commit is contained in:
bholmesdev 2024-03-01 08:39:32 -05:00
parent 7c21b964e0
commit 30aa333b84

View file

@ -10,6 +10,7 @@ import type { DBTables } from '../types.js';
import { getDbDirUrl, getRemoteDatabaseUrl, type VitePlugin } from '../utils.js'; import { getDbDirUrl, getRemoteDatabaseUrl, type VitePlugin } from '../utils.js';
const resolvedVirtualModuleId = '\0' + VIRTUAL_MODULE_ID; const resolvedVirtualModuleId = '\0' + VIRTUAL_MODULE_ID;
const resolvedSeedVirtualModuleId = '\0' + VIRTUAL_MODULE_ID + '/seed';
type LateSchema = { type LateSchema = {
tables: () => DBTables; tables: () => DBTables;
@ -30,16 +31,23 @@ type VitePluginDBParams =
}; };
export function vitePluginDb(params: VitePluginDBParams): VitePlugin { export function vitePluginDb(params: VitePluginDBParams): VitePlugin {
const seedFilePaths = SEED_DEV_FILE_NAMES_SORTED.map(
(name) => new URL(name, getDbDirUrl(params.root)).pathname
);
return { return {
name: 'astro:db', name: 'astro:db',
enforce: 'pre', enforce: 'pre',
resolveId(id) { resolveId(id, importer) {
if (id === VIRTUAL_MODULE_ID) { if (id === VIRTUAL_MODULE_ID) {
return resolvedVirtualModuleId; const resolved = seedFilePaths.some((s) => s === importer)
? resolvedSeedVirtualModuleId
: resolvedVirtualModuleId;
console.log('resolved::', resolved);
return resolved;
} }
}, },
load(id) { load(id) {
if (id !== resolvedVirtualModuleId) return; if (id !== resolvedVirtualModuleId && id !== resolvedSeedVirtualModuleId) return;
if (params.connectToStudio) { if (params.connectToStudio) {
return getStudioVirtualModContents({ return getStudioVirtualModContents({
@ -50,7 +58,7 @@ export function vitePluginDb(params: VitePluginDBParams): VitePlugin {
return getLocalVirtualModContents({ return getLocalVirtualModContents({
root: params.root, root: params.root,
tables: params.schemas.tables(), tables: params.schemas.tables(),
shouldSeed: params.shouldSeed, shouldSeed: id !== resolvedSeedVirtualModuleId && params.shouldSeed,
}); });
}, },
}; };