-
-
Notifications
You must be signed in to change notification settings - Fork 250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: split runtime as core and entry #3154
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for module-federation-docs ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary
The core changes in this pull request involve splitting the runtime module into two separate parts: runtime-core
and entry
. The key goals of this change are:
-
Separation of Concerns: The
runtime-core
module is designed to have no side effects, while theentry
module will handle caching the federation instance and have side effects. This separation of concerns aims to improve the overall structure and maintainability of the codebase. -
Externalization of
runtime-core
: Theruntime-core
module is now externalized, allowing for better modularity and flexibility in the project's dependencies. This change also enables the consolidation of various utility functions, types, and theFederationHost
component into a single, centralized export. -
Improved Caching: The
entry
module will now cache the federation instance, ensuring that the same instance is used across the application and improving performance and consistency.
The changes touch a wide range of files, primarily within the packages/runtime-core
directory, but also in the packages/runtime
directory. The updates involve modifying imports and exports, introducing new utility functions and types, and ensuring a seamless integration of the new runtime-core
and entry
modules with the existing codebase.
Overall, this pull request aims to enhance the structure, maintainability, and performance of the runtime module by separating its concerns and externalizing the core functionality.
File Summaries
File | Summary |
---|---|
packages/runtime-core/src/constant.ts | The changes in this file involve splitting the runtime into two separate parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module will cache the federation instance. This separation of concerns aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/core.ts | The changes in this file involve splitting the runtime into two separate parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module will cache the federation instance. This separation of concerns aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/global.ts | The code changes introduce a split of the runtime into two parts: runtime-core and entry . The runtime-core has no side effects, while the entry part has side effects and will cache the federationInstance . Additionally, the runtime-core is now externalized. |
packages/runtime-core/src/helpers.ts | The code changes introduce a new module that exports two utility objects: GlobalUtils and ShareUtils . The GlobalUtils object provides a collection of functions related to managing global state and information, such as setting and retrieving global federation instances, snapshots, and preloaded data. The ShareUtils object provides functions for managing shared modules and their global scope. |
packages/runtime-core/src/index.ts | This code change splits the runtime into two parts: runtime-core and entry . The runtime-core has no side effects, while the entry part has side effects and will cache the federationInstance . The changes also externalize the runtime-core and update the exports to include various utility functions, types, and the FederationHost component. |
packages/runtime-core/src/module/index.ts | The changes in this file involve splitting the runtime into two separate parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module has side effects and will cache the federationInstance. This separation of concerns aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/plugins/generate-preload-assets.ts | The changes in this file split the runtime into two parts - runtime-core and entry . The runtime-core is now externalized and has no side effects, while the entry part has side effects and will cache the federationInstance . |
packages/runtime-core/src/plugins/snapshot/SnapshotHandler.ts | This change splits the runtime into two parts - runtime-core and entry . The runtime-core module is now externalized and has no side effects, while the entry module has side effects and will cache the federationInstance . This separation of concerns helps improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/plugins/snapshot/index.ts | The changes in this file split the runtime into two parts: runtime-core and entry. The runtime-core has no side effects, while the entry part has side effects and will cache the federationInstance. This separation allows for better modularity and flexibility in the codebase. |
packages/runtime-core/src/remote/index.ts | The changes in this file involve splitting the runtime into two separate parts: runtime-core and entry . The runtime-core part has no side effects, while the entry part has side effects and will cache the federationInstance . This change aims to externalize the runtime-core functionality. |
packages/runtime-core/src/shared/index.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and will cache the federationInstance. This separation aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/type/config.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module has side effects and will cache the federationInstance. This separation of concerns aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/type/index.ts | The changes in this file split the runtime into two parts: runtime-core and entry . The runtime-core module has no side effects, while the entry module has side effects and caches the federation instance. This separation allows for better modularity and flexibility in the codebase. |
packages/runtime-core/src/type/plugin.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and caches the federation instance. This separation aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/type/preload.ts | The changes in this file split the runtime into two parts: runtime-core and entry. The runtime-core has no side effects, while the entry part has side effects and will cache the federationInstance. This separation of concerns aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/types.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module will cache the federationInstance. This separation of concerns aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/env.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module has side effects and will cache the federationInstance. This separation aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/hooks/asyncHook.ts | The changes in this file split the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and caches the federation instance. |
packages/runtime-core/src/utils/hooks/asyncWaterfallHooks.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module has side effects and will cache the federationInstance. This separation aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/hooks/index.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core has no side effects, while the entry part has side effects and will cache the federationInstance. This change aims to externalize the runtime-core for better modularity and maintainability. |
packages/runtime-core/src/utils/hooks/pluginSystem.ts | The code changes introduce a split of the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and will cache the federationInstance. This change aims to externalize the runtime-core module for better modularity and flexibility. |
packages/runtime-core/src/utils/hooks/syncHook.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and caches the federation instance. This separation aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/hooks/syncWaterfallHook.ts | The changes in this file split the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and will cache the federationInstance. |
packages/runtime-core/src/utils/index.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core has no side effects, while the entry part has side effects and will cache the federationInstance. This separation aims to externalize the runtime-core for improved modularity and maintainability. |
packages/runtime-core/src/utils/load.ts | The code changes split the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and caches the federation instance. Additionally, the runtime-core module is now externalized, allowing for more flexibility in the project's dependencies. |
packages/runtime-core/src/utils/logger.ts | The changes in this file split the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and caches the federation instance. This separation allows for better modularity and flexibility in the codebase. |
packages/runtime-core/src/utils/manifest.ts | The code changes introduce a split of the runtime into two parts: runtime-core and entry. The runtime-core is now externalized and has no side effects, while the entry part has side effects and will cache the federationInstance. |
packages/runtime-core/src/utils/plugin.ts | The changes in this file split the runtime into two separate parts: runtime-core and entry . The runtime-core module is now externalized and has no side effects, while the entry module handles caching the federation instance and has side effects. |
packages/runtime-core/src/utils/preload.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module has side effects and will cache the federationInstance. This separation aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/semver/compare.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and will cache the federationInstance. This change aims to externalize the runtime-core module for better modularity and maintainability. |
packages/runtime-core/src/utils/semver/constants.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module has side effects and will cache the federation instance. This separation aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/semver/index.ts | The changes in this file involve splitting the runtime into two separate parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module will cache the federation instance. This separation of concerns aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/semver/parser.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module will cache the federationInstance. This separation aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/semver/utils.ts | The code changes introduce a split of the runtime into two parts: runtime-core and entry. The runtime-core has no side effects, while the entry part has side effects and will cache the federationInstance. This change aims to externalize the runtime-core for better modularity and maintainability. |
packages/runtime-core/src/utils/share.ts | The changes in this file involve splitting the runtime into two separate parts: runtime-core and entry. The runtime-core module is designed to have no side effects, while the entry module will handle caching the federation instance. This separation of concerns aims to improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/tool.ts | The changes in this file split the runtime into two parts: runtime-core and entry. The runtime-core has no side effects, while the entry part has side effects and will cache the federationInstance. This separation allows for better modularity and flexibility in the codebase. |
packages/runtime/src/helpers.ts | The code changes split the runtime into two parts: runtime-core and entry. The runtime-core module has no side effects, while the entry module has side effects and caches the federation instance. The changes also externalize the runtime-core module and provide a consolidated export for the global and share utilities. |
packages/runtime/src/index.ts | This code change splits the runtime into two parts: runtime-core and entry . The runtime-core part has no side effects, while the entry part has side effects and will cache the federationInstance . The changes also externalize the runtime-core module and update the imports and exports accordingly. |
packages/runtime/src/types.ts | The code changes split the runtime module into two parts: runtime-core and entry . The runtime-core module is now externalized and has no side effects, while the entry module handles caching of the federation instance and has side effects. |
packages/runtime/src/utils.ts | The code changes introduce a new utility function getGlobalFederationInstance that retrieves a specific instance of the FederationHost based on the provided name and version. Additionally, a helper function getBuilderId is added to fetch the build identifier, which is used to identify the correct FederationHost instance when multiple instances exist. |
it('verify resources when URL specifies protocol (http)', () => { | ||
const url = 'http://a.b.c'; | ||
const scriptElement = document.createElement('script'); | ||
scriptElement.src = url; |
Check warning
Code scanning / CodeQL
Inclusion of functionality from an untrusted source Medium test
|
67a6235
to
d56d6fa
Compare
# Conflicts: # pnpm-lock.yaml
# Conflicts: # pnpm-lock.yaml
# Conflicts: # pnpm-lock.yaml
# Conflicts: # pnpm-lock.yaml
# Conflicts: # pnpm-lock.yaml
f7479be
to
8e13a48
Compare
Description
Related Issue
Types of changes
Checklist