UNPKG

1.73 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.mergeSchema = exports.reduceTypes = exports.toTSType = void 0;
4var tslib_1 = require("tslib");
5var debug_1 = tslib_1.__importDefault(require("debug"));
6var debug = debug_1.default('dtsgen');
7function toTSType(type, debugSource) {
8 switch (type) {
9 case 'integer':
10 return 'number';
11 case 'any':
12 case 'null':
13 case 'undefined':
14 case 'string':
15 case 'number':
16 case 'boolean':
17 return type;
18 case 'object':
19 case 'array':
20 return undefined;
21 default:
22 if (debugSource) {
23 debug("toTSType: unknown type: " + JSON.stringify(debugSource, null, 2));
24 }
25 throw new Error('unknown type: ' + type);
26 }
27}
28exports.toTSType = toTSType;
29function reduceTypes(types) {
30 if (types.length < 2) {
31 return types;
32 }
33 var set = new Set(types);
34 if (set.delete('integer')) {
35 set.add('number');
36 }
37 return Array.from(set.values());
38}
39exports.reduceTypes = reduceTypes;
40function mergeSchema(a, b) {
41 Object.keys(b).forEach(function (key) {
42 var value = b[key];
43 if (a[key] != null && typeof value !== typeof a[key]) {
44 debug("mergeSchema warning: type is mismatched, key=" + key);
45 }
46 if (Array.isArray(value)) {
47 a[key] = (a[key] || []).concat(value);
48 }
49 else if (typeof value === 'object') {
50 a[key] = Object.assign(a[key] || {}, value);
51 }
52 else {
53 a[key] = value;
54 }
55 });
56 return a;
57}
58exports.mergeSchema = mergeSchema;
59//# sourceMappingURL=utils.js.map
\No newline at end of file