@module-federation/enhanced
Version:
This package provides enhanced features for module federation.
55 lines (54 loc) • 3.1 kB
TypeScript
import { ConsumeOptions } from "@module-federation/sdk";
import { Compilation } from "webpack";
import { InputFileSystem } from "webpack/lib/util/fs";
//#region src/lib/sharing/utils.d.ts
/**
* @see https://docs.npmjs.com/cli/v7/configuring-npm/package-json#urls-as-dependencies
* @param {string} versionDesc version to be normalized
* @returns {string} normalized version
*/
declare function normalizeVersion(versionDesc: string): string;
/** @typedef {{ data: Record<string, any>, path: string }} DescriptionFile */
interface DescriptionFile {
data: Record<string, any>;
path: string;
}
/**
*
* @param {InputFileSystem} fs file system
* @param {string} directory directory to start looking into
* @param {string[]} descriptionFiles possible description filenames
* @param {function((Error | null)=, {data?: DescriptionFile, path?: string}=, (checkedDescriptionFilePaths: string[])=): void} callback callback
* @param {function({data: DescriptionFile}=): boolean} satisfiesDescriptionFileData file data compliance check
* @param {Set<string>} [checkedFilePaths] optional set to track checked file paths
*/
declare function getDescriptionFile(fs: InputFileSystem, directory: string, descriptionFiles: string[], callback: (err: Error | null, data?: DescriptionFile, checkedDescriptionFilePaths?: string[]) => void, satisfiesDescriptionFileData?: (data?: DescriptionFile) => boolean, checkedFilePaths?: Set<string>): void;
/**
* Get required version from description file
* @param {Record<string, any>} data - The data object
* @param {string} packageName - The package name
* @returns {string | undefined} The normalized version
*/
declare function getRequiredVersionFromDescriptionFile(data: Record<string, any>, packageName: string): string | undefined | void;
declare function normalizeConsumeShareOptions(consumeOptions: ConsumeOptions): {
shareConfig: {
fixedDependencies: boolean;
requiredVersion: ConsumeOptions;
strictVersion: ConsumeOptions;
singleton: ConsumeOptions;
eager: ConsumeOptions;
layer: ConsumeOptions;
};
shareScope: ConsumeOptions;
shareKey: ConsumeOptions;
treeShakingMode: ConsumeOptions;
};
declare function addSingletonFilterWarning(compilation: Compilation, shareKey: string, // The shareKey or a relevant identifier for the shared module
filterType: 'include' | 'exclude', filterProperty: 'request' | 'version', filterValue: string | RegExp, moduleRequest: string, // original request that led to this shared module
moduleResource?: string): void;
declare function testRequestFilters(remainder: string, includeRequest?: string | RegExp, excludeRequest?: string | RegExp): boolean;
declare function createLookupKeyForSharing(request: string, layer?: string | null): string;
declare function extractPathAfterNodeModules(filePath: string): string | null;
//#endregion
export { addSingletonFilterWarning, createLookupKeyForSharing, extractPathAfterNodeModules, getDescriptionFile, getRequiredVersionFromDescriptionFile, normalizeConsumeShareOptions, normalizeVersion, testRequestFilters };
//# sourceMappingURL=utils.d.ts.map