@intlayer/config
Version:
Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.
70 lines (68 loc) • 3.08 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
const require_utils_cacheMemory = require('../utils/cacheMemory.cjs');
const require_utils_getPackageJsonPath = require('../utils/getPackageJsonPath.cjs');
const require_configFile_buildConfigurationFields = require('./buildConfigurationFields.cjs');
const require_configFile_loadConfigurationFile = require('./loadConfigurationFile.cjs');
const require_configFile_searchConfigurationFile = require('./searchConfigurationFile.cjs');
let defu = require("defu");
//#region src/configFile/getConfiguration.ts
/**
* Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)
*/
const getConfigurationAndFilePath = (options) => {
let baseDir;
try {
baseDir = options?.baseDir ?? require_utils_getPackageJsonPath.getPackageJsonPath().baseDir;
} catch (_err) {
return {
configuration: require_configFile_buildConfigurationFields.buildConfigurationFields({}, options?.baseDir, options?.logFunctions),
customConfiguration: void 0,
numCustomConfiguration: 0,
configurationFilePath: void 0
};
}
const cachedConfiguration = require_utils_cacheMemory.cacheMemory.get(options);
if (cachedConfiguration) return cachedConfiguration;
const { configurationFilePath, numCustomConfiguration } = require_configFile_searchConfigurationFile.searchConfigurationFile(baseDir);
let storedConfiguration;
let customConfiguration;
if (configurationFilePath) {
customConfiguration = require_configFile_loadConfigurationFile.loadConfigurationFile(configurationFilePath, {
projectRequire: options?.require,
envVarOptions: {
env: options?.env,
envFile: options?.envFile
},
additionalEnvVars: options?.additionalEnvVars,
aliases: options?.aliases,
buildOptions: options?.buildOptions
});
storedConfiguration = require_configFile_buildConfigurationFields.buildConfigurationFields(customConfiguration, options?.baseDir, options?.logFunctions);
} else storedConfiguration = require_configFile_buildConfigurationFields.buildConfigurationFields({}, options?.baseDir, options?.logFunctions);
const configWithProjectRequire = (0, defu.defu)(options?.require ? { build: {
require: options?.require,
cache: options?.cache
} } : {}, storedConfiguration);
const configuration = (0, defu.defu)(options?.override ?? {}, configWithProjectRequire);
require_utils_cacheMemory.cacheMemory.set(options, {
configuration,
customConfiguration,
numCustomConfiguration,
configurationFilePath
});
return {
configuration,
customConfiguration,
numCustomConfiguration,
configurationFilePath
};
};
/**
* Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)
*/
const getConfiguration = (options) => getConfigurationAndFilePath(options).configuration;
//#endregion
exports.getConfiguration = getConfiguration;
exports.getConfigurationAndFilePath = getConfigurationAndFilePath;
//# sourceMappingURL=getConfiguration.cjs.map