mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-01 18:22:41 -08:00
feat(core): add Electron runtime, services, and app composition
This commit is contained in:
30
src/config/resolve/context.ts
Normal file
30
src/config/resolve/context.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { ConfigValidationWarning, RawConfig, ResolvedConfig } from '../../types';
|
||||
import { DEFAULT_CONFIG, deepCloneConfig } from '../definitions';
|
||||
import { createWarningCollector } from '../warnings';
|
||||
import { isObject } from './shared';
|
||||
|
||||
export interface ResolveContext {
|
||||
src: Record<string, unknown>;
|
||||
resolved: ResolvedConfig;
|
||||
warn(path: string, value: unknown, fallback: unknown, message: string): void;
|
||||
}
|
||||
|
||||
export type ResolveConfigApplier = (context: ResolveContext) => void;
|
||||
|
||||
export function createResolveContext(raw: RawConfig): {
|
||||
context: ResolveContext;
|
||||
warnings: ConfigValidationWarning[];
|
||||
} {
|
||||
const resolved = deepCloneConfig(DEFAULT_CONFIG);
|
||||
const { warnings, warn } = createWarningCollector();
|
||||
const src = isObject(raw) ? raw : {};
|
||||
|
||||
return {
|
||||
context: {
|
||||
src,
|
||||
resolved,
|
||||
warn,
|
||||
},
|
||||
warnings,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user