UNPKG

@intlayer/config

Version:

Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.

51 lines (49 loc) 1.51 kB
import { getPackageJsonPath } from "../utils/getPackageJsonPath.mjs"; import { logger } from "../logger.mjs"; import { existsSync } from "node:fs"; import { resolve } from "node:path"; //#region src/configFile/searchConfigurationFile.ts const configurationFilesCandidates = [ "intlayer.config.ts", "intlayer.config.js", "intlayer.config.json", "intlayer.config.json5", "intlayer.config.jsonc", "intlayer.config.cjs", "intlayer.config.mjs", ".intlayerrc" ]; const rootPathCache = /* @__PURE__ */ new Map(); /** * Search for the configuration file in the given path * * List of detected configuration files: * - intlayer.config.ts * - intlayer.config.js * - intlayer.config.json * - intlayer.config.cjs * - intlayer.config.mjs * - .intlayerrc */ const searchConfigurationFile = (startDir) => { let configurationFilePath; let numCustomConfiguration = 0; if (rootPathCache.has(startDir)) return rootPathCache.get(startDir); const { baseDir } = getPackageJsonPath(startDir); for (const fileName of configurationFilesCandidates) try { const filePath = resolve(baseDir, fileName); if (!existsSync(filePath)) {} else { numCustomConfiguration += 1; if (!configurationFilePath) configurationFilePath = filePath; } } catch (error) { logger(`${fileName}: ${error}`, { level: "error" }); } return { configurationFilePath, numCustomConfiguration }; }; //#endregion export { configurationFilesCandidates, searchConfigurationFile }; //# sourceMappingURL=searchConfigurationFile.mjs.map