diff options
Diffstat (limited to 'patches/@atproto+lexicon+0.4.0.patch')
-rw-r--r-- | patches/@atproto+lexicon+0.4.0.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/patches/@atproto+lexicon+0.4.0.patch b/patches/@atproto+lexicon+0.4.0.patch new file mode 100644 index 000000000..4643db32a --- /dev/null +++ b/patches/@atproto+lexicon+0.4.0.patch @@ -0,0 +1,28 @@ +diff --git a/node_modules/@atproto/lexicon/dist/validators/complex.js b/node_modules/@atproto/lexicon/dist/validators/complex.js +index 32d7798..9d688b7 100644 +--- a/node_modules/@atproto/lexicon/dist/validators/complex.js ++++ b/node_modules/@atproto/lexicon/dist/validators/complex.js +@@ -113,7 +113,22 @@ function object(lexicons, path, def, value) { + if (value[key] === null && nullableProps.has(key)) { + continue; + } +- const propDef = def.properties[key]; ++ const propDef = def.properties[key] ++ if (typeof value[key] === 'undefined' && !requiredProps.has(key)) { ++ // Fast path for non-required undefined props. ++ if ( ++ propDef.type === 'integer' || ++ propDef.type === 'boolean' || ++ propDef.type === 'string' ++ ) { ++ if (typeof propDef.default === 'undefined') { ++ continue ++ } ++ } else { ++ // Other types have no defaults. ++ continue ++ } ++ } + const propPath = `${path}/${key}`; + const validated = (0, util_1.validateOneOf)(lexicons, propPath, propDef, value[key]); + const propValue = validated.success ? validated.value : value[key]; |