@ikona/cli
Version:
49 lines (47 loc) • 1.76 kB
JavaScript
// src/utils/config.ts
import { bundleNRequire } from "bundle-n-require";
import findUp from "escalade/sync";
var defaultConfig = {
verbose: false,
outputDir: ".ikona",
force: false,
icons: {
optimize: false,
inputDir: "icons",
spriteOutputDir: "output",
hash: false
},
illustrations: {
inputDir: "illustrations",
extensions: ["svg", "png", "jpg", "jpeg", "webp"]
},
cwd: process.cwd()
};
var configs = [".ts", ".js", ".mts", ".mjs", ".cts", ".cjs"];
var configRegex = new RegExp(`ikona.config(${configs.join("|")})$`);
// src/utils/merge-config.ts
var mergeConfigs = ({ cliConfig, fileConfig }) => {
return {
verbose: cliConfig.v ?? cliConfig.verbose ?? fileConfig.verbose ?? defaultConfig.verbose,
outputDir: cliConfig["out-dir"] ?? fileConfig.outputDir ?? defaultConfig.outputDir,
force: cliConfig.force ?? fileConfig.force ?? defaultConfig.force,
icons: {
optimize: cliConfig.optimize ?? fileConfig.icons?.optimize ?? defaultConfig.icons.optimize,
inputDir: fileConfig.icons?.inputDir ?? defaultConfig.icons.inputDir,
// TODO add missing cli config flag
spriteOutputDir: fileConfig.icons?.spriteOutputDir ?? defaultConfig.icons.spriteOutputDir,
// TODO add missing cli config flag
hash: cliConfig.hash ?? fileConfig.icons?.hash ?? defaultConfig.icons.hash
},
illustrations: {
inputDir: fileConfig.illustrations?.inputDir ?? defaultConfig.illustrations.inputDir,
// TODO add missing cli config flag
extensions: fileConfig.illustrations?.extensions ?? defaultConfig.illustrations.extensions
// TODO add missing cli config flag
},
cwd: cliConfig.cwd ?? fileConfig.cwd ?? defaultConfig.cwd
};
};
export {
mergeConfigs
};