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

Expose the database to the build output

This commit is contained in:
Matthew Phillips 2024-01-26 14:21:51 -05:00
parent 69a4d72025
commit 9f5e9bb4b2
2 changed files with 14 additions and 1 deletions

View file

@ -4,7 +4,7 @@ import { vitePluginInjectEnvTs } from './vite-plugin-inject-env-ts.js';
import { typegen } from './typegen.js';
import { existsSync } from 'fs';
import { mkdir, rm, writeFile } from 'fs/promises';
import { getLocalDbUrl } from './consts.js';
import { getLocalDbUrl, DB_PATH } from './consts.js';
import { createLocalDatabaseClient, setupDbTables } from './internal.js';
import { astroConfigWithDbSchema } from './config.js';
import { getAstroStudioEnv, type VitePlugin } from './utils.js';
@ -73,6 +73,7 @@ export function integration(): AstroIntegration {
updateConfig({
vite: {
assetsInclude: [DB_PATH],
plugins: [dbPlugin, vitePluginInjectEnvTs(config)],
},
});

View file

@ -1,6 +1,7 @@
import { DRIZZLE_MOD_IMPORT, INTERNAL_MOD_IMPORT, VIRTUAL_MODULE_ID, DB_PATH } from './consts.js';
import type { DBCollections } from './types.js';
import type { VitePlugin } from './utils.js';
import fs from 'node:fs';
const resolvedVirtualModuleId = '\0' + VIRTUAL_MODULE_ID;
@ -33,6 +34,17 @@ export function vitePluginDb(
}
return getVirtualModContents(params);
},
async buildEnd() {
// For local use, emit the database into the output
if('dbUrl' in params) {
const data = await fs.promises.readFile(new URL(params.dbUrl));
this.emitFile({
fileName: 'content.db',
source: data,
type: 'asset'
});
}
}
};
}