Replace serialize-javascript by JSON.serialize

Signed-off-by: David Festal <dfestal@redhat.com>
This commit is contained in:
David Festal
2025-12-15 18:26:14 +01:00
parent 5f23e94397
commit 1f5dc0b787
3 changed files with 11 additions and 24 deletions
@@ -39,14 +39,12 @@
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/types": "workspace:^",
"@module-federation/runtime": "^0.21.6",
"serialize-javascript": "^6.0.0"
"@module-federation/runtime": "^0.21.6"
},
"devDependencies": {
"@backstage/cli": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@types/react": "^18.0.0",
"@types/serialize-javascript": "^5.0.4",
"react": "^18.0.2",
"react-dom": "^18.0.2",
"react-router-dom": "^6.3.0"
@@ -15,7 +15,6 @@
*/
import { Host, Runtime, SharedDependencies } from './types';
import { default as serialize } from 'serialize-javascript';
import type { UserOptions } from '@module-federation/runtime/types';
import { ForwardedError } from '@backstage/errors';
@@ -37,7 +36,8 @@ const BACKSTAGE_RUNTIME_SHARED_DEPENDENCIES_GLOBAL =
export function prepareRuntimeSharedDependenciesScript(
hostSharedDependencies: SharedDependencies<Host & { version: string }>,
) {
const runtimeSharedDependencies: SharedDependencies<Host & Runtime> =
type StringModule = Omit<Runtime, 'module'> & { module: string };
const runtimeSharedDependencies: SharedDependencies<Host & StringModule> =
Object.fromEntries(
Object.entries(hostSharedDependencies).map(([name, sharedDep]) => [
name,
@@ -48,20 +48,18 @@ export function prepareRuntimeSharedDependenciesScript(
? { singleton: sharedDep.singleton }
: {}),
...(sharedDep.eager !== undefined ? { eager: sharedDep.eager } : {}),
// eslint-disable-next-line no-new-func
module: new Function(
`return () => import('${name}')`,
)() as () => Promise<any>,
module: `() => import('${name}')`,
},
]),
);
return `window['${BACKSTAGE_RUNTIME_SHARED_DEPENDENCIES_GLOBAL}'] = ${serialize(
return `window['${BACKSTAGE_RUNTIME_SHARED_DEPENDENCIES_GLOBAL}'] = ${JSON.stringify(
runtimeSharedDependencies,
{
space: 2,
unsafe: true,
},
null,
2,
).replace(
/(^\s+"module":\s*)"([^"]+)"$/gm,
(_, start, unquoted) => `${start}${unquoted}`,
)};`;
}
+1 -10
View File
@@ -4059,11 +4059,9 @@ __metadata:
"@backstage/types": "workspace:^"
"@module-federation/runtime": "npm:^0.21.6"
"@types/react": "npm:^18.0.0"
"@types/serialize-javascript": "npm:^5.0.4"
react: "npm:^18.0.2"
react-dom: "npm:^18.0.2"
react-router-dom: "npm:^6.3.0"
serialize-javascript: "npm:^6.0.0"
peerDependencies:
"@emotion/react": ^11.10.5
"@material-ui/core": ^4.12.2
@@ -22050,13 +22048,6 @@ __metadata:
languageName: node
linkType: hard
"@types/serialize-javascript@npm:^5.0.4":
version: 5.0.4
resolution: "@types/serialize-javascript@npm:5.0.4"
checksum: 10/c342a4d151736c1ba4913e6d9b00537bcf62401a06e3489dcf96b7d51a4ab147efcf3fe20ca9491b1349ee7e55c6d69606682e1630f2e076e2828eaee3764f94
languageName: node
linkType: hard
"@types/serve-handler@npm:^6.1.0":
version: 6.1.4
resolution: "@types/serve-handler@npm:6.1.4"
@@ -46061,7 +46052,7 @@ __metadata:
languageName: node
linkType: hard
"serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.2":
"serialize-javascript@npm:^6.0.2":
version: 6.0.2
resolution: "serialize-javascript@npm:6.0.2"
dependencies: