The core configuration interface for the module system.
interface ModuleConfig {
links?: Record<string, string>;
imports?: ModuleConfigImportMapping;
scopes?: Record<string, ModuleConfigImportMapping>;
exports?: ModuleConfigExportExports;
}Record<string, string>ModuleConfigImportMappingRecord<string, ModuleConfigImportMapping>ModuleConfigExportExportstype ModuleConfigImportMapping = Record<
string,
string | Record<BuildEnvironment, string>
>;Import mapping configuration type, supporting string and environment-specific configurations.
type ModuleConfigExportExports = ModuleConfigExportExport[];Export configuration array type, supporting mixed arrays of strings and export objects.
type ModuleConfigExportExport = string | ModuleConfigExportObject;Export configuration item type, supporting both string and export object formats.
type ModuleConfigExportObject = Record<
string,
ModuleConfigExportObjectValue
>;Export object configuration type, where the key is the export name and the value is the export configuration value.
type ModuleConfigExportObjectValue =
| string
| Record<BuildEnvironment, string | boolean>;Export configuration value type, supporting string and environment-specific configurations.
type BuildEnvironment = 'client' | 'server';Build target environment type.
interface ParsedModuleConfig {
name: string;
root: string;
links: Record<string, ParsedModuleConfigLink>;
environments: {
client: ParsedModuleConfigEnvironment;
server: ParsedModuleConfigEnvironment;
};
}interface ParsedModuleConfigEnvironment {
imports: Record<string, string>;
exports: ParsedModuleConfigExports;
scopes: Record<string, Record<string, string>>;
}interface ParsedModuleConfigLink {
name: string;
root: string;
client: string;
clientManifestJson: string;
server: string;
serverManifestJson: string;
}type ParsedModuleConfigExports = Record<
string,
ParsedModuleConfigExport
>;Parsed export configuration record type, where the key is the export name and the value is the export configuration object.
interface ParsedModuleConfigExport {
name: string;
file: string;
pkg: boolean;
}