UNPKG

hygen

Version:

The scalable code generator that saves you time.

36 lines (30 loc) 957 B
import path from 'path' import fs from 'fs-extra' import type { RunnerConfig } from './types' import { ConfigResolver } from './config' const configResolver = new ConfigResolver('.hygen.js', { exists: fs.exists, load: async (f) => await import(f), none: (_) => ({}), }) const resolve = ( cwd: string, defaultTemplates: string | undefined, templatesOverride: string | undefined, ) => { return [ templatesOverride && path.resolve(cwd, templatesOverride), process.env.HYGEN_TMPLS, path.resolve(cwd, '_templates'), path.resolve(cwd, defaultTemplates), ].find((_) => _ && fs.existsSync(_)) } export default async (config: RunnerConfig): Promise<RunnerConfig> => { const { cwd, templates: defaultTemplates, templatesOverride } = config const resolvedTemplates = resolve(cwd, defaultTemplates, templatesOverride) return { ...config, templates: resolvedTemplates, ...(await configResolver.resolve(cwd)), } }