zephyr-edge-contract
Version:
Edge contract for Zephyr
49 lines • 1.77 kB
TypeScript
/**
* Backward-compatible single-container options used by established Zephyr adapters. New
* multi-container publication uses `ZephyrModuleFederationConfig[]` instead.
*/
export interface ZephyrLegacyModuleFederationConfig {
name: string;
filename: string;
exposes?: Record<string, string>;
remotes?: Record<string, string>;
shared?: Record<string, unknown>;
runtimePlugins?: string[];
manifest?: boolean | {
fileName?: string;
filePath?: string;
};
}
/** JSON-serializable Module Federation options retained with a Zephyr snapshot. */
export interface ZephyrModuleFederationConfig {
name?: string;
filename?: string;
library?: string | string[] | {
type?: string;
[key: string]: unknown;
};
exposes?: Record<string, unknown> | Array<string | Record<string, unknown>>;
remotes?: Record<string, unknown> | Array<string | Record<string, unknown>>;
shared?: Record<string, unknown> | Array<string | Record<string, unknown>>;
runtimePlugins?: Array<string | [string, Record<string, unknown>]>;
manifest?: boolean | {
fileName?: string;
filePath?: string;
};
[key: string]: unknown;
}
/**
* Load metadata for one independently addressable Module Federation container.
*
* A build can publish more than one container, so consumers must use the enclosing
* `ZephyrBuildStats.federation` array rather than assuming one top-level remote.
*/
export interface ZephyrModuleFederationBuildMetadata {
name?: string;
remote?: string;
mf_manifest?: string;
library_type?: string;
exposes?: ZephyrModuleFederationConfig['exposes'];
shared?: ZephyrModuleFederationConfig['shared'];
}
//# sourceMappingURL=module-federation.d.ts.map