@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
38 lines (36 loc) • 1.31 kB
JavaScript
import { readAsset } from "../_virtual/_utils_asset.mjs";
import { writeFile } from "node:fs/promises";
import { join, relative } from "node:path";
import { colorizePath, logger, v } from "@intlayer/config/logger";
import { searchConfigurationFile } from "@intlayer/config/node";
//#region src/initConfig/index.ts
/**
* UTILITIES
*/
const rootDir = process.cwd();
const writeFileToRoot = async (filePath, content) => await writeFile(join(rootDir, filePath), content, "utf8");
const getTemplatePath = (format) => {
switch (format) {
case "ts": return "./templates/ts.txt";
case "cjs": return "./templates/cjs.txt";
case "mjs": return "./templates/mjs.txt";
case "js": return "./templates/mjs.txt";
case "json": return "./templates/json.txt";
default: return "./templates/ts.txt";
}
};
/**
* Initialize the Intlayer configuration file
*/
const initConfig = async (format, baseDir) => {
const { configurationFilePath } = searchConfigurationFile(baseDir);
if (configurationFilePath) {
logger(`${v} ${colorizePath(relative(baseDir, configurationFilePath))} already exists`);
return;
}
await writeFileToRoot(format, readAsset(getTemplatePath(format.split(".").pop())));
logger(`${v} Created ${colorizePath(format)}`);
};
//#endregion
export { initConfig };
//# sourceMappingURL=index.mjs.map