diff --git a/src/backend/common/infrastructure/config/common.ts b/src/backend/common/infrastructure/config/common.ts index 1746d1b5..0acc997b 100644 --- a/src/backend/common/infrastructure/config/common.ts +++ b/src/backend/common/infrastructure/config/common.ts @@ -3,6 +3,8 @@ import * as z from "zod"; import type { PlayTransformHooks, ExternalMetadataTerm } from "../../../../core/Transform.ts"; import type { CommonClientOptions } from "./client/index.ts"; import type { MarkRequired } from "ts-essentials"; +import type { ClientType, SourceType } from "../../../../core/Atomic.ts"; +import { capitalize } from "../../../../core/StringUtils.ts"; export const commonConfigPrimitivesSchema = z.object({ name: z.string().optional(), @@ -24,7 +26,7 @@ export const commonConfigSchema = z.object({ * * If no id is given the name of this component will be used. */ - id: z.string().optional().meta({ + id: z.string().meta({ description: "A UNIQUE identifier for this Source/Client", examples: ["fooGlobalA"] }), @@ -145,6 +147,18 @@ export const monitorOptionsSchema = z.object({ }) export type MonitorOptions = z.infer; +export type UnparsedConfig = {config: object, type: T, source?: 'file' | 'aio' | 'env', pos: string}; + +export const generateConfigLocation = (configType: string, config: UnparsedConfig): string => { + if(config.source === 'file') { + return `${capitalize(configType)} #${config.pos} in ${config.type}.json`; + } + if(config.source === 'aio') { + return `${capitalize(configType)} ${config.type} #${config.pos} in config.json`; + } + return `${capitalize(configType)} ${config.type} from ENV`; +} + export const transformPresetEnv = (prefix: string, existing: T = undefined): undefined | T => { const env = process.env[`${prefix}_TRANSFORMS`];