1
0
mirror of https://github.com/svg/svgo.git synced 2025-07-29 20:21:14 +03:00

Drop node 10 require fallback when load config

This commit is contained in:
Bogdan Chadkin
2022-10-02 12:14:49 +03:00
parent 516c6e1fc1
commit d5a8555781
2 changed files with 12 additions and 32 deletions

View File

@ -14,24 +14,10 @@ const importConfig = async (configFile) => {
if (configFile.endsWith('.cjs')) {
config = require(configFile);
} else {
try {
// dynamic import expects file url instead of path and may fail
// when windows path is provided
const { default: imported } = await import(pathToFileURL(configFile));
config = imported;
} catch (importError) {
// TODO remove require in v3
try {
config = require(configFile);
} catch (requireError) {
// throw original error if es module is detected
if (requireError.code === 'ERR_REQUIRE_ESM') {
throw importError;
} else {
throw requireError;
}
}
}
}
if (config == null || typeof config !== 'object' || Array.isArray(config)) {
throw Error(`Invalid config file "${configFile}"`);

View File

@ -147,12 +147,9 @@ describe('loadConfig', () => {
expect(
await loadConfig(null, path.join(cwd, './test/fixtures/missing'))
).toEqual(null);
// TODO remove check in v3
if (process.version.startsWith('v10.') === false) {
expect(await loadConfig(null, path.join(fixtures, 'mjs'))).toEqual({
plugins: ['mjs'],
});
}
expect(await loadConfig(null, path.join(fixtures, 'cjs'))).toEqual({
plugins: ['cjs'],
});
@ -195,15 +192,12 @@ describe('loadConfig', () => {
} catch (error) {
expect(error.message).toMatch(/plugins is not defined/);
}
// TODO remove check in v3
if (process.version.startsWith('v10.') === false) {
try {
await loadConfig(path.join(fixtures, 'invalid-runtime.mjs'));
expect.fail('Config is loaded successfully');
} catch (error) {
expect(error.message).toMatch(/plugins is not defined/);
}
}
});
test('handles MODULE_NOT_FOUND properly', async () => {