@esmx/core
Version:
A high-performance microfrontend framework supporting Vue, React, Preact, Solid, and Svelte with SSR and Module Federation capabilities.
54 lines (53 loc) • 3.14 kB
TypeScript
import type { BuildEnvironment } from './core';
export interface ModuleConfig {
links?: Record<string, string>;
imports?: ModuleConfigImportMapping;
scopes?: Record<string, ModuleConfigImportMapping>;
exports?: ModuleConfigExportExports;
}
export type ModuleConfigImportMapping = Record<string, string | Record<BuildEnvironment, string>>;
export type ModuleConfigExportExports = ModuleConfigExportExport[];
export type ModuleConfigExportExport = string | ModuleConfigExportObject;
export type ModuleConfigExportObject = Record<string, ModuleConfigExportObjectValue>;
export type ModuleConfigExportObjectValue = string | Record<BuildEnvironment, string | boolean>;
export interface ParsedModuleConfig {
name: string;
root: string;
links: Record<string, ParsedModuleConfigLink>;
environments: {
client: ParsedModuleConfigEnvironment;
server: ParsedModuleConfigEnvironment;
};
}
export type ParsedModuleConfigExports = Record<string, ParsedModuleConfigExport>;
export interface ParsedModuleConfigExport {
name: string;
file: string;
pkg: boolean;
}
export interface ParsedModuleConfigEnvironment {
imports: Record<string, string>;
exports: ParsedModuleConfigExports;
scopes: Record<string, Record<string, string>>;
}
export interface ParsedModuleConfigLink {
name: string;
root: string;
client: string;
clientManifestJson: string;
server: string;
serverManifestJson: string;
}
export declare function parseModuleConfig(name: string, root: string, config?: ModuleConfig): ParsedModuleConfig;
export declare function getLinks(name: string, root: string, config: ModuleConfig): Record<string, ParsedModuleConfigLink>;
export declare function getEnvironmentImports(environment: BuildEnvironment, imports?: ModuleConfigImportMapping): Record<string, string>;
export declare function getEnvironmentScopes(environment: BuildEnvironment, scopes?: Record<string, ModuleConfigImportMapping>): Record<string, Record<string, string>>;
export declare function getEnvironments(config: ModuleConfig, env: BuildEnvironment, moduleName: string): ParsedModuleConfigEnvironment;
export declare function createDefaultExports(env: BuildEnvironment): ParsedModuleConfigExports;
export declare function processStringExport(exportString: string): ParsedModuleConfigExports;
export declare function processObjectExport(exportObject: ModuleConfigExportObject, env: BuildEnvironment): ParsedModuleConfigExports;
export declare function resolveExportFile(config: ModuleConfigExportObjectValue, env: BuildEnvironment, name: string): string;
export declare function processExportArray(exportArray: ModuleConfigExportExports, env: BuildEnvironment): ParsedModuleConfigExports;
export declare function getEnvironmentExports(config: ModuleConfig, env: BuildEnvironment): ParsedModuleConfigExports;
export declare function addPackageExportsToScopes(exports: ParsedModuleConfigExports, scopes: Record<string, Record<string, string>>, moduleName: string): Record<string, Record<string, string>>;
export declare function parsedExportValue(value: string): ParsedModuleConfigExport;