-
-
Notifications
You must be signed in to change notification settings - Fork 237
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
WIP: 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 pull request introduces a significant change to the runtime module by splitting it into two parts: runtime-core
and entry
. The primary goal of this change is to externalize the runtime-core
and ensure that it has no side effects, while the entry
module is responsible for caching the federationInstance
.
The key changes include:
- Separating the runtime into
runtime-core
andentry
modules, whereruntime-core
has no side effects, andentry
has side effects and caches thefederationInstance
. - Externalizing the
runtime-core
module to improve modularity and flexibility in the codebase. - Introducing new utility functions and types to manage the
FederationInstance
and retrieve the correct instance based on the build identifier. - Updating the exports and imports to reflect the new module structure and ensure a clear separation of concerns.
These changes aim to improve the overall structure and maintainability of the runtime module, making it more modular and easier to work with. The separation of the core runtime functionality from the entry point with side effects should also enhance the testability and extensibility of the codebase.
File Summaries
File | Summary |
---|---|
packages/runtime-core/src/constant.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. |
packages/runtime-core/src/core.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core is designed to have 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 flexibility. |
packages/runtime-core/src/global.ts | The code changes 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 . 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 set of functions for managing global state and information related to module federation, while the ShareUtils object provides functions for working with shared modules. This change appears to be part of a larger effort to split the runtime into a core and an entry module, with the core module being side-effect free. |
packages/runtime-core/src/index.ts | The code changes introduce a split of the runtime into two parts: runtime-core and entry. The runtime-core is designed to have no side effects, while the entry part has side effects and will cache the federationInstance. Additionally, the runtime-core is now externalized, allowing for better modularity and flexibility in the codebase. |
packages/runtime-core/src/module/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 will cache the federation instance. 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 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/plugins/snapshot/SnapshotHandler.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/plugins/snapshot/index.ts | The changes in this file introduce a split of the runtime into two parts: runtime-core and entry. The runtime-core is designed to have no side effects, while the entry part has side effects and will cache the federationInstance. |
packages/runtime-core/src/remote/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 has side effects and will cache the federationInstance. This refactoring aims to externalize the runtime-core for better modularity and maintainability. |
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 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/type/config.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 . 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 will cache the federation instance. This refactoring aims to externalize the runtime-core module for better modularity and maintainability. |
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 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 flexibility. |
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 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/types.ts | The changes in this file introduce a new export from the runtime-core package, specifically exporting all types from the type.ts file. This simplifies the API and allows for easier access to the core runtime types from external modules. |
packages/runtime-core/src/utils/env.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/hooks/asyncHook.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 federation instance. This separation of concerns aims to improve the overall structure and maintainability of the codebase. |
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 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/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 | This change splits the runtime into two parts - runtime-core and entry . The runtime-core is designed to have no side effects, while the entry part has side effects and will cache the federationInstance . The primary purpose of this change is to externalize the runtime-core and improve the overall structure and maintainability of the codebase. |
packages/runtime-core/src/utils/hooks/syncHook.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/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 caches the federation instance. |
packages/runtime-core/src/utils/index.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/load.ts | The code changes introduce a split of 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 federation instance. This separation aims to improve the overall structure and maintainability of the codebase. |
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 will cache the federationInstance. |
packages/runtime-core/src/utils/manifest.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/plugin.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core is designed to have 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 flexibility. |
packages/runtime-core/src/utils/preload.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. This separation of concerns 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 is designed to have no side effects, while the entry part has side effects and will cache the federationInstance. |
packages/runtime-core/src/utils/semver/constants.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. |
packages/runtime-core/src/utils/semver/index.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core is designed to have 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/semver/parser.ts | The changes in this file involve splitting the runtime into two parts: runtime-core and entry. The runtime-core is designed to have no side effects, while the entry part has side effects and will cache the federationInstance. |
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. |
packages/runtime-core/src/utils/share.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 federation instance. This separation 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 module has no side effects, while the entry module has side effects and will cache the federationInstance. |
packages/runtime/src/helpers.ts | The code changes 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 . Additionally, the runtime-core has been externalized. |
packages/runtime/src/index.ts | The code changes in this file focus on splitting the runtime into two parts: runtime-core and entry . The runtime-core module is now externalized and imported, and it no longer has any side effects. The entry module, on the other hand, is responsible for caching the FederationInstance . The changes also include updates to the exported functions and types, ensuring a clear separation of concerns between the core runtime functionality and the entry point. |
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 has side effects and caches the federation instance. |
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
Description
Related Issue
Types of changes
Checklist