UNPKG

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