UNPKG

jswagger-generator

Version:

This is jswagger's generator package.

45 lines (44 loc) 1.72 kB
"use strict"; // Origin: https://github.com/manifoldco/swagger-to-ts Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("./utils"); function propertyMapper(schema, transform) { if (!transform) { return schema; } return JSON.parse(JSON.stringify(schema), (_, node) => { // if no properties, skip if (!node.properties) { return node; } // map over properties, transforming if needed node.properties = utils_1.fromEntries(Object.entries(node.properties).map(([key, val]) => { // if $ref, skip if (val.$ref) { return [key, val]; } const schemaObject = val; const property = transform(schemaObject, { interfaceType: schemaObject.type, optional: !Array.isArray(node.required) || node.required.includes(key), description: schemaObject.description, }); // update requirements if (property.optional) { if (Array.isArray(node.required)) { node.required = node.required.filter((r) => r !== key); } } else { node.required = [...(Array.isArray(node.required) && node.required || []), key]; } // transform node from mapper return [ key, Object.assign(Object.assign({}, val), { type: property.interfaceType, description: property.description }), ]; })); return node; // return by default }); } exports.default = propertyMapper;