UNPKG

@intlayer/config

Version:

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

63 lines (61 loc) 3.26 kB
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs'); const require_logger = require('../logger.cjs'); const require_utils_cache = require('../utils/cache.cjs'); const require_utils_getPackageJsonPath = require('../utils/getPackageJsonPath.cjs'); const require_configFile_buildConfigurationFields = require('./buildConfigurationFields.cjs'); const require_configFile_searchConfigurationFile = require('./searchConfigurationFile.cjs'); const require_configFile_loadConfigurationFile = require('./loadConfigurationFile.cjs'); let node_path = require("node:path"); node_path = require_rolldown_runtime.__toESM(node_path); let deepmerge = require("deepmerge"); deepmerge = require_rolldown_runtime.__toESM(deepmerge); //#region src/configFile/getConfiguration.ts /** * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js) */ const getConfigurationAndFilePath = (options) => { const baseDir = options?.baseDir ?? require_utils_getPackageJsonPath.getPackageJsonPath().baseDir; const cachedConfiguration = require_utils_cache.cache.get(options); if (cachedConfiguration) return cachedConfiguration; const { configurationFilePath, numCustomConfiguration } = require_configFile_searchConfigurationFile.searchConfigurationFile(baseDir); if (options?.override?.log?.mode === "verbose") logConfigFileResult(baseDir, numCustomConfiguration, configurationFilePath); let storedConfiguration; if (configurationFilePath) storedConfiguration = require_configFile_buildConfigurationFields.buildConfigurationFields(require_configFile_loadConfigurationFile.loadConfigurationFile(configurationFilePath, { projectRequire: options?.require, envVarOptions: { env: options?.env, envFile: options?.envFile }, additionalEnvVars: options?.additionalEnvVars, aliases: options?.aliases }), options?.baseDir, options?.logFunctions); const projectRequireConfig = options?.require ? { build: { require: options?.require, cache: options?.cache } } : {}; const configuration = (0, deepmerge.default)((0, deepmerge.default)(storedConfiguration ?? {}, projectRequireConfig), options?.override ?? {}); require_utils_cache.cache.set(options, { configuration, configurationFilePath }); return { configuration, configurationFilePath }; }; /** * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js) */ const getConfiguration = (options) => getConfigurationAndFilePath(options).configuration; const logConfigFileResult = (baseDir, numCustomConfiguration, configurationFilePath) => { if (numCustomConfiguration === 0) require_logger.logger("Configuration file not found, using default configuration.", { isVerbose: true }); else { const relativeOutputPath = (0, node_path.relative)(baseDir, configurationFilePath); if (numCustomConfiguration === 1) require_logger.logger(`Configuration file found: ${relativeOutputPath}.`, { isVerbose: true }); else require_logger.logger(`Multiple configuration files found, using ${relativeOutputPath}.`, { isVerbose: true }); } }; //#endregion exports.getConfiguration = getConfiguration; exports.getConfigurationAndFilePath = getConfigurationAndFilePath; //# sourceMappingURL=getConfiguration.cjs.map