UNPKG

dtsgeneratorws

Version:

TypeScript d.ts file generator for JSON Schema file

58 lines 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var debug_1 = tslib_1.__importDefault(require("debug")); var debug = debug_1.default('dtsgen'); function toTSType(type, debugSource) { switch (type) { case 'integer': return 'number'; case 'any': case 'null': case 'undefined': case 'string': case 'number': case 'boolean': return type; case 'object': case 'array': return undefined; default: if (debugSource) { debug("toTSType: unknown type: " + JSON.stringify(debugSource, null, 2)); } throw new Error('unknown type: ' + type); } } exports.toTSType = toTSType; function reduceTypes(types) { if (types.length < 2) { return types; } var set = new Set(types); if (set.delete('integer')) { set.add('number'); } return Array.from(set.values()); } exports.reduceTypes = reduceTypes; function mergeSchema(a, b) { Object.keys(b).forEach(function (key) { var value = b[key]; if (a[key] != null && typeof value !== typeof a[key]) { debug("mergeSchema warning: type is mismatched, key=" + key); } if (Array.isArray(value)) { a[key] = (a[key] || []).concat(value); } else if (typeof value === 'object') { a[key] = Object.assign(a[key] || {}, value); } else { a[key] = value; } }); return a; } exports.mergeSchema = mergeSchema; //# sourceMappingURL=utils.js.map