renovate 39.186.1 → 39.187.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,11 +25,11 @@ async function getParsedContent(file) {
|
|
25
25
|
case '.json':
|
26
26
|
return (0, common_1.parseJson)(await (0, fs_1.readSystemFile)(file, 'utf8'), file);
|
27
27
|
case '.cjs':
|
28
|
+
case '.mjs':
|
28
29
|
case '.js': {
|
29
30
|
const tmpConfig = await import(upath_1.default.isAbsolute(file) ? file : `${process.cwd()}/${file}`);
|
30
|
-
|
31
|
-
|
32
|
-
: /* istanbul ignore next: hard to test */ tmpConfig;
|
31
|
+
/* v8 ignore next: not testable */
|
32
|
+
let config = tmpConfig.default ? tmpConfig.default : tmpConfig;
|
33
33
|
// Allow the config to be a function
|
34
34
|
if (is_1.default.function_(config)) {
|
35
35
|
config = config();
|
@@ -42,12 +42,17 @@ async function getParsedContent(file) {
|
|
42
42
|
}
|
43
43
|
async function getConfig(env) {
|
44
44
|
const configFile = env.RENOVATE_CONFIG_FILE ?? 'config.js';
|
45
|
-
|
45
|
+
const configFileExists = await fs_extra_1.default.pathExists(configFile);
|
46
|
+
if (env.RENOVATE_CONFIG_FILE && !configFileExists) {
|
46
47
|
logger_1.logger.fatal({ configFile }, `Custom config file specified in RENOVATE_CONFIG_FILE must exist`);
|
47
48
|
process.exit(1);
|
48
49
|
}
|
49
|
-
logger_1.logger.debug('Checking for config file in ' + configFile);
|
50
50
|
let config = {};
|
51
|
+
if (!configFileExists) {
|
52
|
+
logger_1.logger.debug('No config file found on disk - skipping');
|
53
|
+
return config;
|
54
|
+
}
|
55
|
+
logger_1.logger.debug('Checking for config file in ' + configFile);
|
51
56
|
try {
|
52
57
|
config = await getParsedContent(configFile);
|
53
58
|
}
|
@@ -69,8 +74,7 @@ async function getConfig(env) {
|
|
69
74
|
logger_1.logger.fatal('Error parsing config file');
|
70
75
|
process.exit(1);
|
71
76
|
}
|
72
|
-
|
73
|
-
logger_1.logger.debug('No config file found on disk - skipping');
|
77
|
+
logger_1.logger.debug('Error reading or parsing file - skipping');
|
74
78
|
}
|
75
79
|
if (is_1.default.nonEmptyObject(config.processEnv)) {
|
76
80
|
const exportedKeys = [];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":";;AAWA,4CA+BC;AAED,
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport fs from 'fs-extra';\nimport JSON5 from 'json5';\nimport upath from 'upath';\nimport type { AllConfig, RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { parseJson } from '../../../../util/common';\nimport { readSystemFile } from '../../../../util/fs';\nimport { parseSingleYaml } from '../../../../util/yaml';\nimport { migrateAndValidateConfig } from './util';\n\nexport async function getParsedContent(file: string): Promise<RenovateConfig> {\n if (upath.basename(file) === '.renovaterc') {\n return JSON5.parse(await readSystemFile(file, 'utf8'));\n }\n switch (upath.extname(file)) {\n case '.yaml':\n case '.yml':\n return parseSingleYaml(await readSystemFile(file, 'utf8'));\n case '.json5':\n case '.json':\n return parseJson(\n await readSystemFile(file, 'utf8'),\n file,\n ) as RenovateConfig;\n case '.cjs':\n case '.mjs':\n case '.js': {\n const tmpConfig = await import(\n upath.isAbsolute(file) ? file : `${process.cwd()}/${file}`\n );\n /* v8 ignore next: not testable */\n let config = tmpConfig.default ? tmpConfig.default : tmpConfig;\n // Allow the config to be a function\n if (is.function_(config)) {\n config = config();\n }\n return config;\n }\n default:\n throw new Error('Unsupported file type');\n }\n}\n\nexport async function getConfig(env: NodeJS.ProcessEnv): Promise<AllConfig> {\n const configFile = env.RENOVATE_CONFIG_FILE ?? 'config.js';\n\n const configFileExists = await fs.pathExists(configFile);\n if (env.RENOVATE_CONFIG_FILE && !configFileExists) {\n logger.fatal(\n { configFile },\n `Custom config file specified in RENOVATE_CONFIG_FILE must exist`,\n );\n process.exit(1);\n }\n\n let config: AllConfig = {};\n\n if (!configFileExists) {\n logger.debug('No config file found on disk - skipping');\n return config;\n }\n\n logger.debug('Checking for config file in ' + configFile);\n try {\n config = await getParsedContent(configFile);\n } catch (err) {\n if (err instanceof SyntaxError || err instanceof TypeError) {\n logger.fatal({ error: err.stack }, 'Could not parse config file');\n process.exit(1);\n } else if (err instanceof ReferenceError) {\n logger.fatal(\n `Error parsing config file due to unresolved variable(s): ${err.message}`,\n );\n process.exit(1);\n } else if (err.message === 'Unsupported file type') {\n logger.fatal(err.message);\n process.exit(1);\n } else if (env.RENOVATE_CONFIG_FILE) {\n logger.debug({ err }, 'Parse error');\n logger.fatal('Error parsing config file');\n process.exit(1);\n }\n logger.debug('Error reading or parsing file - skipping');\n }\n\n if (is.nonEmptyObject(config.processEnv)) {\n const exportedKeys = [];\n for (const [key, value] of Object.entries(config.processEnv)) {\n if (!is.nonEmptyString(value)) {\n logger.error({ key }, 'processEnv value is not a string.');\n continue;\n }\n\n exportedKeys.push(key);\n process.env[key] = value;\n }\n logger.debug(\n { keys: exportedKeys },\n 'processEnv keys were exported to env',\n );\n delete config.processEnv;\n }\n\n return migrateAndValidateConfig(config, configFile);\n}\n\nexport async function deleteNonDefaultConfig(\n env: NodeJS.ProcessEnv,\n deleteConfigFile: boolean,\n): Promise<void> {\n const configFile = env.RENOVATE_CONFIG_FILE;\n\n if (is.undefined(configFile) || is.emptyStringOrWhitespace(configFile)) {\n return;\n }\n\n if (!deleteConfigFile) {\n return;\n }\n\n if (!(await fs.pathExists(configFile))) {\n return;\n }\n\n try {\n await fs.remove(configFile);\n logger.trace({ path: configFile }, 'config file successfully deleted');\n } catch (err) {\n logger.warn({ err }, 'error deleting config file');\n }\n}\n"]}
|