25 lines
719 B
TypeScript
25 lines
719 B
TypeScript
import type { ViteUserConfig } from "astro";
|
|
|
|
import type { StarlightGhostConfig } from "../schemas/config.ts";
|
|
|
|
// Expose the starlight-blog plugin configuration.
|
|
export function vitePluginStarlightGhostConfig(
|
|
config: StarlightGhostConfig,
|
|
): VitePlugin {
|
|
const moduleId = 'virtual:starlight-ghostcms/config';
|
|
const resolvedModuleId = `\0${moduleId}`;
|
|
const moduleContent = `export default ${JSON.stringify(config)}`;
|
|
|
|
return {
|
|
name: "vite-plugin-starlight-ghostcms-config",
|
|
load(id) {
|
|
return id === resolvedModuleId ? moduleContent : undefined;
|
|
},
|
|
resolveId(id) {
|
|
return id === moduleId ? resolvedModuleId : undefined;
|
|
},
|
|
};
|
|
}
|
|
|
|
type VitePlugin = NonNullable<ViteUserConfig["plugins"]>[number];
|