From 100f9e68fda26cf640e7ffb3d25085a07cb1166b Mon Sep 17 00:00:00 2001 From: Warren Parad Date: Fri, 12 Jul 2024 14:27:01 +0200 Subject: [PATCH] Fix null fallbackPropertyName when spec is missing property name. fix #259. --- src/utils/schema-utils.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/utils/schema-utils.js b/src/utils/schema-utils.js index 278e291c..05d5ebcb 100644 --- a/src/utils/schema-utils.js +++ b/src/utils/schema-utils.js @@ -105,7 +105,8 @@ export function getTypeInfo(parameter, options = { includeNulls: false, enableEx export function getSampleValueByType(schemaObj, fallbackPropertyName, skipExampleIds) { const example = Array.isArray(schemaObj.examples) ? schemaObj.examples[0] : Object.values(schemaObj.examples || {})[0]?.value ?? schemaObj.example; - if (skipExampleIds && typeof example === 'string' && fallbackPropertyName.match(/id$/i)) { return ''; } + const propertyName = fallbackPropertyName || 'string'; + if (skipExampleIds && typeof example === 'string' && propertyName.match(/id$/i)) { return ''; } if (typeof example !== 'undefined') { return example; } if (schemaObj.default) { return schemaObj.default; } @@ -142,14 +143,14 @@ export function getSampleValueByType(schemaObj, fallbackPropertyName, skipExampl } if (typeValue.match(/^boolean/g)) { return false; } if (typeValue.match(/^null/g)) { return null; } - if (skipExampleIds && typeValue.match(/^string/g) && fallbackPropertyName.match(/id$/i)) { return ''; } + if (skipExampleIds && typeValue.match(/^string/g) && propertyName.match(/id$/i)) { return ''; } if (typeValue.match(/^string/g)) { if (schemaObj.pattern) { const examplePattern = schemaObj.pattern.replace(/[+*](?![^\][]*[\]])/g, '{8}').replace(/\{\d*,(\d+)?\}/g, '{8}'); try { - return new RandExp(examplePattern).gen() || fallbackPropertyName || 'string'; + return new RandExp(examplePattern).gen() || propertyName; } catch (error) { - return fallbackPropertyName || 'string'; + return propertyName; } } if (schemaObj.format) { @@ -185,7 +186,7 @@ export function getSampleValueByType(schemaObj, fallbackPropertyName, skipExampl return schemaObj.format; } } else { - return fallbackPropertyName || 'string'; + return propertyName; } } // If type cannot be determined