UNPKG

expodoc

Version:

A tool to generate API documentation automatically for Express.js applications.

42 lines (36 loc) 1.34 kB
import { existsSync } from "node:fs"; import { resolve } from "node:path"; import type { ExpressDocGenConfigType } from "../../types/config"; import { ExpressDocGenConfig } from "./defaults"; import { validateConfig } from "./validator"; export async function loadConfig(): Promise<ExpressDocGenConfigType> { const configPaths = [ resolve("docgen.config.ts"), resolve("docgen.config.js"), resolve("expodoc.config.ts"), resolve("expodoc.config.js"), ]; const configPromises = configPaths.map(async (path) => { if (existsSync(path)) { try { const configModule = await import(path); const userConfig = configModule.default || configModule; return validateConfig({ ...ExpressDocGenConfig, ...userConfig, }); } catch (error) { throw new Error( `Error loading config file ${path}: ${error instanceof Error ? error.message : String(error)}`, ); } } return null; }); const configs = await Promise.all(configPromises); const validConfig = configs.find((config) => config !== null); if (validConfig) { return validConfig; } return ExpressDocGenConfig; }