UNPKG

sugar-generate

Version:

Auto generate OAS 3.0 REST + GraphQL APIs (Node + MongoDB)

21 lines (19 loc) 771 B
const uppercase = require('./uppercase'); const { safeType } = require('../swagger'); module.exports = (schema, name) => { const code = [`// Validate`]; Object.keys(schema).forEach(key => { if (Array.isArray(schema[key])) { code.push(`if (typeof ${key} !== 'undefined' && \n Array.isArray(${key})) { new${uppercase(name)}.${key} = ${key}; }`); } else { let extraValid = ""; if (safeType(schema[key].type).toLowerCase() === 'string') { extraValid = `&& ${key}`; } code.push(`if (typeof ${key} !== 'undefined' && \n typeof ${key} === "${safeType(schema[key].type).toLowerCase()}" ${extraValid}) {`); code.push(`new${uppercase(name)}.${key} = ${key};`); code.push(`}`); } }); return code.join('\n'); };