From 0fc91547869f25f1415e21192655dc5c7d012f92 Mon Sep 17 00:00:00 2001 From: neverland Date: Mon, 23 Sep 2024 12:02:06 +0200 Subject: [PATCH] fix: `extensionAlias` should be a map (#15) --- README.md | 5 ++--- src/Resolve.js | 3 +-- test/Resolve.js | 7 +++++-- types/index.d.ts | 2 +- types/test/rspack-chain-tests.ts | 3 +++ 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a9a2e56..901e575 100644 --- a/README.md +++ b/README.md @@ -553,11 +553,10 @@ config.resolve.extensions #### Config resolve extensionAlias ```js -config.resolve.extensionAlias : ChainedSet +config.resolve.extensionAlias : ChainedMap config.resolve.extensionAlias - .add(value) - .prepend(value) + .set(key, value) .clear() ``` diff --git a/src/Resolve.js b/src/Resolve.js index 641daae..f3bd899 100644 --- a/src/Resolve.js +++ b/src/Resolve.js @@ -2,13 +2,12 @@ const ChainedMap = require('./ChainedMap'); const ChainedSet = require('./ChainedSet'); const Plugin = require('./Plugin'); -const childMaps = ['alias', 'fallback', 'byDependency']; +const childMaps = ['alias', 'fallback', 'byDependency', 'extensionAlias']; const childSets = [ 'aliasFields', 'conditionNames', 'descriptionFiles', 'extensions', - 'extensionAlias', 'mainFields', 'mainFiles', 'exportsFields', diff --git a/test/Resolve.js b/test/Resolve.js index 3aab8da..bf504ad 100644 --- a/test/Resolve.js +++ b/test/Resolve.js @@ -210,10 +210,13 @@ test('tsConfig object', () => { test('extensionAlias', () => { const resolve = new Resolve(); - const instance = resolve.extensionAlias.add('.ts').add('.js').end(); + const instance = resolve.extensionAlias + .set('.a', '.b') + .set('.b', ['.c', '.d']) + .end(); expect(instance).toBe(resolve); expect(resolve.toConfig()).toStrictEqual({ - extensionAlias: ['.ts', '.js'], + extensionAlias: { '.a': '.b', '.b': ['.c', '.d'] }, }); }); diff --git a/types/index.d.ts b/types/index.d.ts index c31f6a4..c1c9ee4 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -356,7 +356,7 @@ declare namespace Config { RspackResolve['descriptionFiles'][number] >; extensions: TypedChainedSet; - extensionAlias: TypedChainedSet; + extensionAlias: TypedChainedMap; mainFields: TypedChainedSet; mainFiles: TypedChainedSet; exportsFields: TypedChainedSet< diff --git a/types/test/rspack-chain-tests.ts b/types/test/rspack-chain-tests.ts index 76f1124..8b06122 100644 --- a/types/test/rspack-chain-tests.ts +++ b/types/test/rspack-chain-tests.ts @@ -183,6 +183,9 @@ config .end() .extensions.add('.js') .end() + .extensionAlias.set('a', 'b') + .set('b', ['c']) + .end() .mainFields.add('browser') .end() .mainFiles.add('index.js')