UNPKG

swagger-to-mock

Version:

mock data generator from Swagger (OpenAPI 3)

107 lines 8.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var dataType_1 = require("./dataType"); var util_1 = require("./util"); exports.REF = "$ref"; exports.mergeAllOf = function (properties, schemas) { var ret = {}; properties.forEach(function (property) { if (dataType_1.isReferenceObject(property)) { var schemaName = util_1.getSchemaName(property[exports.REF]); if (schemaName) { var schemaData = exports.getSchemaData(schemas, schemaName); ret = Object.assign({}, ret, schemaData); } } else { var parsed = exports.parseObject(property, schemas); ret = Object.assign({}, ret, parsed); } }); return ret; }; exports.pickOneOf = function (properties, schemas) { var property = properties[0]; if (dataType_1.isReferenceObject(property)) { var schemaName = util_1.getSchemaName(property[exports.REF]); if (schemaName) { var schemaData = exports.getSchemaData(schemas, schemaName); return Object.assign({}, schemaData); } } var parsed = exports.parseObject(property, schemas); return Object.assign({}, parsed); }; // Retrieve mock data of schema. exports.getSchemaData = function (schemas, name) { var schema = schemas[name]; if (dataType_1.isReferenceObject(schema)) { var schemaName = util_1.getSchemaName(schema[exports.REF]); return schemaName ? exports.getSchemaData(schemas, schemaName) : {}; } if (dataType_1.isAllOf(schema)) { return exports.mergeAllOf(schema["allOf"], schemas); } else if (dataType_1.isArray(schema)) { return exports.parseArray(schema, schemas); } else if (dataType_1.isObject(schema)) { return exports.parseObject(schema, schemas); } return schema; }; exports.parseObject = function (obj, schemas) { if (obj.example) return obj.example; if (!obj.properties) { return {}; } return Object.keys(obj.properties).reduce(function (acc, key) { var property = obj.properties[key]; if (dataType_1.isReferenceObject(property)) { var schemaName = util_1.getSchemaName(property[exports.REF]); if (schemaName) { var schema = exports.getSchemaData(schemas, schemaName); acc[key] = Object.assign({}, schema); } return acc; } if (dataType_1.isAllOf(property)) { acc[key] = exports.mergeAllOf(property["allOf"], schemas); } else if (dataType_1.isOneOf(property)) { acc[key] = exports.pickOneOf(property.oneOf, schemas); } else if (dataType_1.isAnyOf(property)) { acc[key] = exports.pickOneOf(property.anyOf, schemas); } else if (dataType_1.isObject(property)) { acc[key] = exports.parseObject(property, schemas); } else if (dataType_1.isArray(property)) { acc[key] = exports.parseArray(property, schemas); } else if (property.type) { acc[key] = dataType_1.DataType.defaultValue(property); } return acc; }, {}); }; exports.parseArray = function (arr, schemas) { if (dataType_1.isReferenceObject(arr.items)) { var schemaName = util_1.getSchemaName(arr.items[exports.REF]); if (schemaName) { var schema = exports.getSchemaData(schemas, schemaName); return [schema]; } return []; } else if (arr.example) { return arr.example; } else if (arr.items.type) { return [exports.parseObject(arr.items, schemas)]; } return []; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx1Q0FRb0I7QUFDcEIsK0JBQXVDO0FBRTFCLFFBQUEsR0FBRyxHQUFHLE1BQU0sQ0FBQztBQUtiLFFBQUEsVUFBVSxHQUFHLFVBQ3hCLFVBQThDLEVBQzlDLE9BQWdCO0lBRWhCLElBQUksR0FBRyxHQUFRLEVBQUUsQ0FBQztJQUNsQixVQUFVLENBQUMsT0FBTyxDQUFDLFVBQUEsUUFBUTtRQUN6QixJQUFJLDRCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLElBQU0sVUFBVSxHQUFHLG9CQUFhLENBQUMsUUFBUSxDQUFDLFdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsSUFBTSxVQUFVLEdBQUcscUJBQWEsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3RELEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDMUM7U0FDRjthQUFNO1lBQ0wsSUFBTSxNQUFNLEdBQUcsbUJBQVcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFVyxRQUFBLFNBQVMsR0FBRyxVQUN2QixVQUE4QyxFQUM5QyxPQUFnQjtJQUVoQixJQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsSUFBSSw0QkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMvQixJQUFNLFVBQVUsR0FBRyxvQkFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFHLENB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