Package Exports
- @module-federation/sdk
- @module-federation/sdk/index.cjs.js
- @module-federation/sdk/index.esm.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@module-federation/sdk) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@module-federation/sdk
Documentation
- This SDK provides utilities and tools to support the implementation of Module Federation in your projects.
- It contains utility functions for parsing, encoding, and decoding module names, as well as generating filenames for exposed modules and shared packages.
- It also includes a logger for debugging and environment detection utilities.
- Additionally, it provides a function to generate a snapshot from a manifest and environment detection utilities.
Usage
// The SDK can be used to parse entry strings, encode and decode module names, and generate filenames for exposed modules and shared packages.
// It also includes a logger for debugging and environment detection utilities.
// Additionally, it provides a function to generate a snapshot from a manifest and environment detection utilities.
import { parseEntry, encodeName, decodeName, generateExposeFilename, generateShareFilename, createLogger, isBrowserEnv, isDebugMode, getProcessEnv, generateSnapshotFromManifest } from '@module-federation/sdk';
// Parse an entry string into a RemoteEntryInfo object
parseEntry('entryString');
// Encode a module name with a prefix and optional extension
encodeName('moduleName', 'prefix');
// Decode a module name with a prefix and optional extension
decodeName('encodedModuleName', 'prefix');
// Generate a filename for an exposed module
generateExposeFilename('exposeName', true);
// Generate a filename for a shared package
generateShareFilename('packageName', true);
// Create a logger
const logger = createLogger('identifier');
// Check if the current environment is a browser
isBrowserEnv();
// Check if the current environment is in debug mode
isDebugMode();
// Get the process environment
getProcessEnv();
// Generate a snapshot from a manifest
generateSnapshotFromManifest(manifest, options);
parseEntry
- Type:
parseEntry(str: string, devVerOrUrl?: string, separator?: string)
- Parses a string into a RemoteEntryInfo object.
encodeName
- Type:
encodeName(name: string, prefix?: string, withExt?: boolean)
- Encodes a name with a prefix and optional extension.
decodeName
- Type:
decodeName(name: string, prefix?: string, withExt?: boolean)
- Decodes a name with a prefix and optional extension.
generateExposeFilename
- Type:
generateExposeFilename(exposeName: string, withExt: boolean)
- Generates a filename for an expose.
generateShareFilename
- Type:
generateShareFilename(pkgName: string, withExt: boolean)
- Generates a filename for a shared package.
createLogger
- Type:
createLogger(prefix: string)
- Creates a logger for debugging.
isBrowserEnv
- Type:
isBrowserEnv()
- Checks if the current environment is a browser.
isDebugMode
- Type:
isDebugMode()
- Checks if the current environment is in debug mode.
getProcessEnv
- Type:
getProcessEnv()
- Gets the process environment.
generateSnapshotFromManifest
- Type:
generateSnapshotFromManifest(manifest: Manifest, options?: IOptions)
- Generates a snapshot from a manifest.
Testing
The SDK uses Jest for testing. The configuration can be found in jest.config.js
. The tests are located in the tests directory.