UNPKG

2.2 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 typescript_1 = tslib_1.__importDefault(require("typescript"));
7var debug = debug_1.default('dtsgen');
8function toTSType(type, debugSource) {
9 switch (type) {
10 case 'any':
11 return typescript_1.default.SyntaxKind.AnyKeyword;
12 case 'boolean':
13 return typescript_1.default.SyntaxKind.BooleanKeyword;
14 case 'integer':
15 return typescript_1.default.SyntaxKind.NumberKeyword;
16 case 'null':
17 return typescript_1.default.SyntaxKind.NullKeyword;
18 case 'number':
19 return typescript_1.default.SyntaxKind.NumberKeyword;
20 case 'string':
21 return typescript_1.default.SyntaxKind.StringKeyword;
22 case 'undefined':
23 return typescript_1.default.SyntaxKind.UndefinedKeyword;
24 case 'object':
25 case 'array':
26 return undefined;
27 default:
28 if (debugSource) {
29 debug("toTSType: unknown type: " + JSON.stringify(debugSource, null, 2));
30 }
31 throw new Error('unknown type: ' + type);
32 }
33}
34exports.toTSType = toTSType;
35function reduceTypes(types) {
36 if (types.length < 2) {
37 return types;
38 }
39 var set = new Set(types);
40 if (set.delete('integer')) {
41 set.add('number');
42 }
43 return Array.from(set.values());
44}
45exports.reduceTypes = reduceTypes;
46function mergeSchema(a, b) {
47 Object.keys(b).forEach(function (key) {
48 var value = b[key];
49 if (a[key] != null && typeof value !== typeof a[key]) {
50 debug("mergeSchema warning: type is mismatched, key=" + key);
51 }
52 if (Array.isArray(value)) {
53 a[key] = (a[key] || []).concat(value);
54 }
55 else if (typeof value === 'object') {
56 a[key] = Object.assign(a[key] || {}, value);
57 }
58 else {
59 a[key] = value;
60 }
61 });
62 return a;
63}
64exports.mergeSchema = mergeSchema;
65//# sourceMappingURL=utils.js.map
\No newline at end of file