UNPKG

@intlayer/chokidar

Version:

Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.

37 lines 1.44 kB
import { readFile } from "fs/promises"; import { join } from "path"; import { fileURLToPath } from "url"; import { kebabCaseToCamelCase } from "../utils/kebabCaseToCamelCase.mjs"; const getContentDeclarationFileTemplate = async (key, format, fileParams = {}) => { const dirname = __dirname ?? fileURLToPath(import.meta.url); let fileTemplate = "./esmTemplate.md"; if (format === "ts") { fileTemplate = "./tsTemplate.md"; } else if (format === "cjs") { fileTemplate = "./cjsTemplate.md"; } const fileContent = await readFile(join(dirname, fileTemplate), "utf-8"); const camelCaseKey = kebabCaseToCamelCase(key); const nonCapitalizedCamelCaseKey = camelCaseKey.charAt(0).toLowerCase() + camelCaseKey.slice(1); const fileParmsString = Object.entries(fileParams).filter(([, value]) => value !== void 0).map(([key2, value]) => { if (typeof value === "object") { return ` ${key2}: ${JSON.stringify(value)},`; } if (typeof value === "boolean" || typeof value === "number") { return ` ${key2}: ${value},`; } if (typeof value === "string") { return ` ${key2}: '${value}',`; } return ` ${key2}: ${value},`; }).join(""); return fileContent.replace("{{key}}", key).replaceAll("{{name}}", nonCapitalizedCamelCaseKey).replace("{{fileParams}}", fileParmsString); }; export { getContentDeclarationFileTemplate }; //# sourceMappingURL=getContentDeclarationFileTemplate.mjs.map