@windicss/config
Version:
Windi CSS configurations loader
86 lines (85 loc) • 2.11 kB
JavaScript
// src/index.ts
import fs from "node:fs";
import path from "node:path";
import _debug from "debug";
import _jiti from "jiti";
var jiti;
var defaultConfigureFiles = [
"windi.config.ts",
"windi.config.mts",
"windi.config.js",
"windi.config.mjs",
"windi.config.cjs",
"windicss.config.ts",
"windicss.config.mts",
"windicss.config.js",
"windicss.config.mjs",
"windicss.config.cjs",
"tailwind.config.ts",
"tailwind.config.mts",
"tailwind.config.js",
"tailwind.config.mjs",
"tailwind.config.cjs"
];
function loadConfiguration(options) {
if (!jiti)
jiti = _jiti(process.cwd(), { requireCache: false, cache: false, v8cache: false });
let resolved = {};
let configFilePath;
let error;
const {
name = "windicss-config",
config,
root = process.cwd(),
configFiles: configureFiles = defaultConfigureFiles,
onConfigurationError = (e) => {
throw e;
},
onConfigurationNotFound = (path2) => {
console.warn(`[${name}] config file "${path2}" not found, ignored`);
}
} = options;
const debugConfig = _debug(`${name}:config`);
if (typeof config === "string" || !config) {
if (!config) {
for (const name2 of configureFiles) {
const tryPath = path.resolve(root, name2);
if (fs.existsSync(tryPath)) {
configFilePath = tryPath;
break;
}
}
} else {
configFilePath = path.resolve(root, config);
if (!fs.existsSync(configFilePath)) {
onConfigurationNotFound(config);
configFilePath = void 0;
}
}
if (configFilePath) {
try {
debugConfig("loading from ", configFilePath);
resolved = jiti(configFilePath);
if (resolved.default)
resolved = resolved.default;
} catch (e) {
error = e;
configFilePath = void 0;
resolved = {};
onConfigurationError?.(e);
}
}
} else {
resolved = config;
}
debugConfig(resolved);
return {
error,
config: resolved,
filepath: configFilePath
};
}
export {
defaultConfigureFiles,
loadConfiguration
};