bananass
Version:
Baekjoon Framework for JavaScript.🍌
74 lines (73 loc) • 3.12 kB
TypeScript
/**
* @import { ConfigObject } from '../../types/index.js';
*/
/**
* Load and merge configuration objects.
*
* - Merge priority: CLI config object > Config file config object > Default config object
*
* @param {object} configLoaderOptions
* @param {string} [configLoaderOptions.cwd] Current working directory. (default: `findRootDir()`)
* @param {ConfigObject} [configLoaderOptions.cliConfigObject] CLI config object. (default: `{}`)
* @param {ConfigObject} [configLoaderOptions.defaultConfigObject] Default config object. (default: `defaultConfigObject`)
* @returns {Promise<ConfigObject>} Merged config object.
* @async
*/
export default function configLoader({ cwd, cliConfigObject, defaultConfigObject, }?: {
cwd?: string | undefined;
cliConfigObject?: Readonly<{
cwd?: string | undefined;
entryDir?: string | undefined;
outDir?: string | undefined;
browser?: Readonly<{
browser?: "default" | "chrome" | "edge" | "firefox" | "brave" | undefined;
secret?: boolean | undefined;
}> | undefined;
console?: Readonly<{
debug?: boolean | undefined;
quiet?: boolean | undefined;
}> | undefined;
add?: Readonly<Record<string, never>> | undefined;
bug?: Readonly<Record<string, never>> | undefined;
build?: Readonly<{
clean?: boolean | undefined;
templateType?: "rl" | "fs" | undefined;
}> | undefined;
discussion?: Readonly<Record<string, never>> | undefined;
home?: Readonly<Record<string, never>> | undefined;
info?: Readonly<{
all?: boolean | undefined;
}> | undefined;
open?: Readonly<Record<string, never>> | undefined;
repo?: Readonly<Record<string, never>> | undefined;
run?: Readonly<Record<string, never>> | undefined;
}> | undefined;
defaultConfigObject?: Readonly<{
cwd?: string | undefined;
entryDir?: string | undefined;
outDir?: string | undefined;
browser?: Readonly<{
browser?: "default" | "chrome" | "edge" | "firefox" | "brave" | undefined;
secret?: boolean | undefined;
}> | undefined;
console?: Readonly<{
debug?: boolean | undefined;
quiet?: boolean | undefined;
}> | undefined;
add?: Readonly<Record<string, never>> | undefined;
bug?: Readonly<Record<string, never>> | undefined;
build?: Readonly<{
clean?: boolean | undefined;
templateType?: "rl" | "fs" | undefined;
}> | undefined;
discussion?: Readonly<Record<string, never>> | undefined;
home?: Readonly<Record<string, never>> | undefined;
info?: Readonly<{
all?: boolean | undefined;
}> | undefined;
open?: Readonly<Record<string, never>> | undefined;
repo?: Readonly<Record<string, never>> | undefined;
run?: Readonly<Record<string, never>> | undefined;
}> | undefined;
}): Promise<ConfigObject>;
import type { ConfigObject } from '../../types/index.js';