@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
JavaScript
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