From f8482d8e9a537cfb095a4a1d209bda0e8fa876fd Mon Sep 17 00:00:00 2001 From: Harold Torrado Date: Thu, 5 Jan 2023 11:48:09 +1100 Subject: [PATCH] _cvtProperties undefined _cvtProperties do not exist on final path of schema The default value for FOO.BAR.BAZ is stored in `_schema._cvtProperties` at: FOO._cvtProperties.BAR._cvtProperties.BAZ.default TypeError: Cannot read properties of undefined (reading ) at node_modules\convict\src\main.js:371:52 at Array.forEach () at overlay (node_modules\convict\src\main.js:363:21) at node_modules\convict\src\main.js:371:7 at Array.forEach () at overlay (node_modules\convict\src\main.js:363:21) at node_modules\convict\src\main.js:371:7 at Array.forEach () at overlay (node_modules\convict\src\main.js:363:21) at node_modules\convict\src\main.js:609:11 --- packages/convict/src/main.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/convict/src/main.js b/packages/convict/src/main.js index 2474998..7740d18 100644 --- a/packages/convict/src/main.js +++ b/packages/convict/src/main.js @@ -361,7 +361,11 @@ function overlay(from, to, schema) { if (!isObj(to[k])) { to[k] = {} } - overlay(from[k], to[k], schema._cvtProperties[k]) + let overlaySchema; + if (schema.hasOwnProperty('_cvtProperties')) + overlaySchema= schema._cvtProperties[k] + else overlaySchema= schema.default[k] + overlay(from[k], to[k], overlaySchema) } }) }