Skip to content

Commit 88900ad

Browse files
authored
feat(dts-plugin): decode encoded remote name (#2626)
1 parent 6ee10aa commit 88900ad

File tree

5 files changed

+23
-7
lines changed

5 files changed

+23
-7
lines changed

.changeset/dull-berries-judge.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@module-federation/webpack-bundler-runtime': patch
3+
'@module-federation/dts-plugin': patch
4+
'@module-federation/sdk': patch
5+
---
6+
7+
fix: support decode encode remote name

packages/dts-plugin/src/core/configurations/hostPlugin.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { MANIFEST_EXT, parseEntry } from '@module-federation/sdk';
1+
import {
2+
MANIFEST_EXT,
3+
parseEntry,
4+
ENCODE_NAME_PREFIX,
5+
decodeName,
6+
} from '@module-federation/sdk';
27
import { utils } from '@module-federation/managers';
38
import { HostOptions, RemoteInfo } from '../interfaces/HostOptions';
49
import { validateOptions } from '../lib/utils';
@@ -39,14 +44,18 @@ export const retrieveRemoteInfo = (options: {
3944
remote: string;
4045
}): RemoteInfo => {
4146
const { hostOptions, remoteAlias, remote } = options;
47+
let decodedRemote = remote;
48+
if (decodedRemote.startsWith(ENCODE_NAME_PREFIX)) {
49+
decodedRemote = decodeName(decodedRemote, ENCODE_NAME_PREFIX);
50+
}
4251

43-
const parsedInfo = parseEntry(remote, undefined, '@');
52+
const parsedInfo = parseEntry(decodedRemote, undefined, '@');
4453

4554
const url =
4655
'entry' in parsedInfo
4756
? parsedInfo.entry
48-
: parsedInfo.name === remote
49-
? remote
57+
: parsedInfo.name === decodedRemote
58+
? decodedRemote
5059
: '';
5160

5261
const zipUrl = url ? buildZipUrl(hostOptions, url) : '';

packages/sdk/src/constant.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,4 @@ export const MFModuleType = {
3232
};
3333

3434
export const MODULE_DEVTOOL_IDENTIFIER = '__MF_DEVTOOLS_MODULE_INFO__';
35+
export const ENCODE_NAME_PREFIX = 'ENCODE_NAME_PREFIX';
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export const ENCODE_NAME_PREFIX = 'ENCODE_NAME_PREFIX';
21
export const FEDERATION_SUPPORTED_TYPES = ['script'];
2+
export { ENCODE_NAME_PREFIX } from '@module-federation/sdk';

packages/webpack-bundler-runtime/src/remotes.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { attachShareScopeMap } from './attachShareScopeMap';
22
import type { RemoteEntryExports } from './types';
33
import { RemotesOptions } from './types';
4-
import { decodeName } from '@module-federation/sdk';
5-
import { ENCODE_NAME_PREFIX } from './constant';
4+
import { decodeName, ENCODE_NAME_PREFIX } from '@module-federation/sdk';
65

76
export function remotes(options: RemotesOptions) {
87
const {

0 commit comments

Comments
 (0)