From df8c8dc93b2419676df708abc58eca87e74408ff Mon Sep 17 00:00:00 2001 From: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> Date: Tue, 18 Feb 2025 15:54:33 -0700 Subject: [PATCH] fix #2813 (#2832) --- .../src/Adapters/Systems/SystemForEmbassy/index.ts | 2 +- .../Systems/SystemForEmbassy/transformConfigSpec.ts | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/container-runtime/src/Adapters/Systems/SystemForEmbassy/index.ts b/container-runtime/src/Adapters/Systems/SystemForEmbassy/index.ts index 2b32afd85..9cefcde2e 100644 --- a/container-runtime/src/Adapters/Systems/SystemForEmbassy/index.ts +++ b/container-runtime/src/Adapters/Systems/SystemForEmbassy/index.ts @@ -974,7 +974,7 @@ export class SystemForEmbassy implements System { })) as U.Config if (!oldConfig) return const moduleCode = await this.moduleCode - const method = moduleCode.dependencies?.[id]?.autoConfigure + const method = moduleCode?.dependencies?.[id]?.autoConfigure if (!method) return const newConfig = (await method( polyfillEffects(effects, this.manifest), diff --git a/container-runtime/src/Adapters/Systems/SystemForEmbassy/transformConfigSpec.ts b/container-runtime/src/Adapters/Systems/SystemForEmbassy/transformConfigSpec.ts index 1eb2ea508..eca2879b3 100644 --- a/container-runtime/src/Adapters/Systems/SystemForEmbassy/transformConfigSpec.ts +++ b/container-runtime/src/Adapters/Systems/SystemForEmbassy/transformConfigSpec.ts @@ -146,6 +146,7 @@ export function transformOldConfigToNew( spec: OldConfigSpec, config: Record, ): Record { + if (!config) return config return Object.entries(spec).reduce((obj, [key, val]) => { let newVal = config[key] @@ -157,7 +158,12 @@ export function transformOldConfigToNew( } if (isUnion(val)) { - const selection = config[key][val.tag.id] + if (!config[key]) return obj + + const selection = config[key]?.[val.tag.id] + + if (!selection) return obj + delete config[key][val.tag.id] newVal = { @@ -170,6 +176,8 @@ export function transformOldConfigToNew( } if (isList(val) && isObjectList(val)) { + if (!config[key]) return obj + newVal = (config[key] as object[]).map((obj) => transformOldConfigToNew( matchOldConfigSpec.unsafeCast(val.spec.spec),