Skip to content

Commit

Permalink
fix: Alter if/else logic in getSchemaType func
Browse files Browse the repository at this point in the history
  • Loading branch information
ksentak committed Oct 24, 2024
1 parent d5ebc27 commit e2a2669
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
2 changes: 1 addition & 1 deletion languages/markdown/templates/types/additionalProperties.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[property: string]: ${type}
[property: string]: ${type}
34 changes: 18 additions & 16 deletions src/macrofier/types.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -880,24 +880,26 @@ function getSchemaType(schema, module, { destination, templateDir = 'types', lin
else if (schema.type) {
let template = getTemplate(path.join(templateDir, 'additionalProperties'))
if (schema.additionalProperties && template ) {
return insertSchemaMacros(getTemplate(path.join(templateDir, 'Title')), schema, module, { name: theTitle, recursive: false })
}
else {
template = getTemplate(path.join(templateDir, 'patternProperties'))
if (schema.paternProperties && template ) {
return insertSchemaMacros(getTemplate(path.join(templateDir, 'Title')), schema, module, { name: theTitle, recursive: false })
}
else {
// TODO: this assumes that when type is an array of types, that it's one other primative & 'null', which isn't necessarily true.
const schemaType = !Array.isArray(schema.type) ? schema.type : schema.type.find(t => t !== 'null')
const baseDir = (templateDir !== 'json-types' ? 'types': templateDir)
let primitive = getPrimitiveType(schemaType, baseDir, schema.title ? true: false)
primitive = primitive ? primitive.replace(/\$\{title\}/g, schema.title) : primitive
const type = allocatedProxy ? allocatedPrimitiveProxies[schemaType] || primitive : primitive

return wrap(type, code ? '`' : '')
const result = insertSchemaMacros(getTemplate(path.join(templateDir, 'Title')), schema, module, { name: theTitle, recursive: false })

if (result) {
return result
}
}

template = getTemplate(path.join(templateDir, 'patternProperties'))
if (schema.paternProperties && template ) {
return insertSchemaMacros(getTemplate(path.join(templateDir, 'Title')), schema, module, { name: theTitle, recursive: false })
} else {
// TODO: this assumes that when type is an array of types, that it's one other primative & 'null', which isn't necessarily true.
const schemaType = !Array.isArray(schema.type) ? schema.type : schema.type.find(t => t !== 'null')
const baseDir = (templateDir !== 'json-types' ? 'types': templateDir)
let primitive = getPrimitiveType(schemaType, baseDir, schema.title ? true: false)
primitive = primitive ? primitive.replace(/\$\{title\}/g, schema.title) : primitive
const type = allocatedProxy ? allocatedPrimitiveProxies[schemaType] || primitive : primitive

return wrap(type, code ? '`' : '')
}
}
else {
let type
Expand Down

0 comments on commit e2a2669

Please sign in to comment.