UNPKG

@coursebuilder/astro

Version:

The official Course Builder integration for Astro projects!

49 lines (43 loc) 1.23 kB
import type { AuthConfig } from '@auth/core/types' import type { PluginOption } from 'vite' export const virtualConfigModule = ( configFile: string = './coursebuilder.config' ): PluginOption => { const virtualModuleId = 'coursebuilder:config' const resolvedId = '\0' + virtualModuleId return { name: 'coursebuilder-astro-config', resolveId: (id) => { if (id === virtualModuleId) { return resolvedId } }, load: (id) => { if (id === resolvedId) { return `import coursebuilderConfig from "${configFile}"; export default coursebuilderConfig` } }, } } export interface CoursebuilderConfig { /** * Defines the base path for the coursebuilder routes. * @default "/api/coursebuilder" */ prefix?: string /** * Defines whether or not you want the integration to handle the API routes * @default true */ injectEndpoints?: boolean /** * Path to the config file */ configFile?: string } export interface FullCoursebuilderConfig extends CoursebuilderConfig, Omit<AuthConfig, 'raw'> {} export function defineConfig(config: Partial<FullCoursebuilderConfig> = {}) { config.prefix ??= '/api/coursebuilder' config.basePath = config.prefix return config as FullCoursebuilderConfig }