dtsgenerator 2.0.0 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/SupportedFeatures.md +1 -0
- package/ast.js +18 -0
- package/dist/core/dtsGenerator.js +17 -4
- package/dist/core/dtsGenerator.js.map +1 -1
- package/dist/core/referenceResolver.d.ts +1 -0
- package/dist/core/referenceResolver.js +31 -6
- package/dist/core/referenceResolver.js.map +1 -1
- package/dist/jsonPointer.d.ts +1 -0
- package/dist/jsonPointer.js +4 -0
- package/dist/jsonPointer.js.map +1 -1
- package/dist/utils.js +5 -2
- package/dist/utils.js.map +1 -1
- package/geojson.json +353 -0
- package/openapi.json +1607 -0
- package/package.json +15 -14
- package/src/core/dtsGenerator.js +327 -0
- package/src/core/dtsGenerator.js.map +1 -0
- package/src/core/dtsGenerator.ts +16 -4
- package/src/core/index.js +41 -0
- package/src/core/index.js.map +1 -0
- package/src/core/jsonSchema.js +371 -0
- package/src/core/jsonSchema.js.map +1 -0
- package/src/core/jsonSchemaDraft04.d.ts +1 -0
- package/src/core/jsonSchemaDraft07.d.ts +1 -0
- package/src/core/openApiV2.js +2 -0
- package/src/core/openApiV2.js.map +1 -0
- package/src/core/referenceResolver.js +199 -0
- package/src/core/referenceResolver.js.map +1 -0
- package/src/core/referenceResolver.ts +20 -6
- package/src/core/schemaConvertor.js +285 -0
- package/src/core/schemaConvertor.js.map +1 -0
- package/src/core/schemaId.js +51 -0
- package/src/core/schemaId.js.map +1 -0
- package/src/core/typeNameConvertor.js +43 -0
- package/src/core/typeNameConvertor.js.map +1 -0
- package/src/core/utils.js +58 -0
- package/src/core/utils.js.map +1 -0
- package/src/core/writeProcessor.js +130 -0
- package/src/core/writeProcessor.js.map +1 -0
- package/src/jsonPointer.ts +4 -0
- package/src/utils.ts +5 -2
- package/tsconfig.json +2 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var JsonPointer = tslib_1.__importStar(require("../jsonPointer"));
|
|
5
|
+
var schemaId_1 = tslib_1.__importDefault(require("./schemaId"));
|
|
6
|
+
var typeNameConvertor_1 = require("./typeNameConvertor");
|
|
7
|
+
function parseSchema(content, url) {
|
|
8
|
+
var _a = selectSchemaType(content), type = _a.type, openApiVersion = _a.openApiVersion;
|
|
9
|
+
if (url != null) {
|
|
10
|
+
setId(type, content, url);
|
|
11
|
+
}
|
|
12
|
+
var id = getId(type, content);
|
|
13
|
+
return {
|
|
14
|
+
type: type,
|
|
15
|
+
openApiVersion: openApiVersion,
|
|
16
|
+
id: id ? new schemaId_1.default(id) : schemaId_1.default.empty,
|
|
17
|
+
content: content,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
exports.parseSchema = parseSchema;
|
|
21
|
+
function getSubSchema(rootSchema, pointer, id) {
|
|
22
|
+
var content = JsonPointer.get(rootSchema.content, JsonPointer.parse(pointer));
|
|
23
|
+
if (id == null) {
|
|
24
|
+
var subId = getId(rootSchema.type, content);
|
|
25
|
+
var getParentIds_1 = function (s, result) {
|
|
26
|
+
result.push(s.id.getAbsoluteId());
|
|
27
|
+
return s.rootSchema == null ? result : getParentIds_1(s.rootSchema, result);
|
|
28
|
+
};
|
|
29
|
+
if (subId) {
|
|
30
|
+
id = new schemaId_1.default(subId, getParentIds_1(rootSchema, []));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
id = new schemaId_1.default(pointer, getParentIds_1(rootSchema, []));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
type: rootSchema.type,
|
|
38
|
+
id: id,
|
|
39
|
+
content: content,
|
|
40
|
+
rootSchema: rootSchema,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
exports.getSubSchema = getSubSchema;
|
|
44
|
+
function getId(type, content) {
|
|
45
|
+
return content[getIdPropertyName(type)];
|
|
46
|
+
}
|
|
47
|
+
exports.getId = getId;
|
|
48
|
+
function setId(type, content, id) {
|
|
49
|
+
var key = getIdPropertyName(type);
|
|
50
|
+
if (content[key] == null) {
|
|
51
|
+
content[key] = id;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function getIdPropertyName(type) {
|
|
55
|
+
switch (type) {
|
|
56
|
+
case 'Draft04': return 'id';
|
|
57
|
+
case 'Draft07': return '$id';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function searchAllSubSchema(schema, onFoundSchema, onFoundReference) {
|
|
61
|
+
var walkArray = function (array, paths, parentIds) {
|
|
62
|
+
if (array == null) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
array.forEach(function (item, index) {
|
|
66
|
+
walk(item, paths.concat(index.toString()), parentIds);
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
var walkObject = function (obj, paths, parentIds) {
|
|
70
|
+
if (obj == null) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
Object.keys(obj).forEach(function (key) {
|
|
74
|
+
var sub = obj[key];
|
|
75
|
+
if (sub != null) {
|
|
76
|
+
walk(sub, paths.concat(key), parentIds);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
var walkMaybeArray = function (item, paths, parentIds) {
|
|
81
|
+
if (Array.isArray(item)) {
|
|
82
|
+
walkArray(item, paths, parentIds);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
walk(item, paths, parentIds);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
var walk = function (s, paths, parentIds) {
|
|
89
|
+
if (s == null || typeof s !== 'object') {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
var id = getId(schema.type, s);
|
|
93
|
+
if (id && typeof id === 'string') {
|
|
94
|
+
var schemaId = new schemaId_1.default(id, parentIds);
|
|
95
|
+
var subSchema = {
|
|
96
|
+
type: schema.type,
|
|
97
|
+
id: schemaId,
|
|
98
|
+
content: s,
|
|
99
|
+
rootSchema: schema,
|
|
100
|
+
};
|
|
101
|
+
onFoundSchema(subSchema);
|
|
102
|
+
parentIds = parentIds.concat([schemaId.getAbsoluteId()]);
|
|
103
|
+
}
|
|
104
|
+
if (typeof s.$ref === 'string') {
|
|
105
|
+
var schemaId = new schemaId_1.default(s.$ref, parentIds);
|
|
106
|
+
s.$ref = schemaId.getAbsoluteId();
|
|
107
|
+
onFoundReference(schemaId);
|
|
108
|
+
}
|
|
109
|
+
walkArray(s.allOf, paths.concat('allOf'), parentIds);
|
|
110
|
+
walkArray(s.anyOf, paths.concat('anyOf'), parentIds);
|
|
111
|
+
walkArray(s.oneOf, paths.concat('oneOf'), parentIds);
|
|
112
|
+
walk(s.not, paths.concat('not'), parentIds);
|
|
113
|
+
walkMaybeArray(s.items, paths.concat('items'), parentIds);
|
|
114
|
+
walk(s.additionalItems, paths.concat('additionalItems'), parentIds);
|
|
115
|
+
walk(s.additionalProperties, paths.concat('additionalProperties'), parentIds);
|
|
116
|
+
walkObject(s.definitions, paths.concat('definitions'), parentIds);
|
|
117
|
+
walkObject(s.properties, paths.concat('properties'), parentIds);
|
|
118
|
+
walkObject(s.patternProperties, paths.concat('patternProperties'), parentIds);
|
|
119
|
+
walkMaybeArray(s.dependencies, paths.concat('dependencies'), parentIds);
|
|
120
|
+
if (schema.type === 'Draft07') {
|
|
121
|
+
if ('propertyNames' in s) {
|
|
122
|
+
walk(s.propertyNames, paths.concat('propertyNames'), parentIds);
|
|
123
|
+
walk(s.contains, paths.concat('contains'), parentIds);
|
|
124
|
+
walk(s.if, paths.concat('if'), parentIds);
|
|
125
|
+
walk(s.then, paths.concat('then'), parentIds);
|
|
126
|
+
walk(s.else, paths.concat('else'), parentIds);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
function searchOpenApiSubSchema(openApi) {
|
|
131
|
+
function createId(paths) {
|
|
132
|
+
return '#/' + paths.join('/');
|
|
133
|
+
}
|
|
134
|
+
function convertKeyToTypeName(key) {
|
|
135
|
+
return typeNameConvertor_1.normalizeTypeName(key.replace(/[\/}]/g, '').replace(/{/, '$'));
|
|
136
|
+
}
|
|
137
|
+
function setSubIdToAnyObject(f, obj, keys) {
|
|
138
|
+
if (obj == null) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
Object.keys(obj).forEach(function (key) {
|
|
142
|
+
var item = obj[key];
|
|
143
|
+
f(item, keys.concat(convertKeyToTypeName(key)));
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
// for OpenAPI
|
|
147
|
+
var setSubIdToParameterObject = function (obj, keys) { return setSubIdToAnyObject(setSubIdToParameter, obj, keys); };
|
|
148
|
+
function setSubIdToParameter(param, keys) {
|
|
149
|
+
if ('schema' in param) {
|
|
150
|
+
setSubId(param.schema, keys.concat(param.name));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function setSubIdToParameters(array, keys) {
|
|
154
|
+
if (array == null) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
var map = new Map();
|
|
158
|
+
array.forEach(function (item) {
|
|
159
|
+
if ('schema' in item) {
|
|
160
|
+
setSubIdToParameter(item, keys);
|
|
161
|
+
var work = map.get(item.in);
|
|
162
|
+
if (work == null) {
|
|
163
|
+
work = [];
|
|
164
|
+
map.set(item.in, work);
|
|
165
|
+
}
|
|
166
|
+
work.push(item);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
addParameterSchema(map, keys);
|
|
170
|
+
}
|
|
171
|
+
function addParameterSchema(input, keys) {
|
|
172
|
+
var e_1, _a;
|
|
173
|
+
try {
|
|
174
|
+
for (var input_1 = tslib_1.__values(input), input_1_1 = input_1.next(); !input_1_1.done; input_1_1 = input_1.next()) {
|
|
175
|
+
var _b = tslib_1.__read(input_1_1.value, 2), key = _b[0], params = _b[1];
|
|
176
|
+
var _c = tslib_1.__read(buildParameterSchema(key, params, keys), 2), paths = _c[0], obj = _c[1];
|
|
177
|
+
setSubId(obj, paths);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
181
|
+
finally {
|
|
182
|
+
try {
|
|
183
|
+
if (input_1_1 && !input_1_1.done && (_a = input_1.return)) _a.call(input_1);
|
|
184
|
+
}
|
|
185
|
+
finally { if (e_1) throw e_1.error; }
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function buildParameterSchema(inType, params, keys) {
|
|
189
|
+
var paths = keys.slice(0, keys.length - 1).concat(inType + 'Parameters');
|
|
190
|
+
var properties = {};
|
|
191
|
+
params.forEach(function (item) {
|
|
192
|
+
properties[item.name] = { $ref: createId(keys.concat(item.name)) };
|
|
193
|
+
});
|
|
194
|
+
return [paths, {
|
|
195
|
+
id: createId(paths),
|
|
196
|
+
type: 'object',
|
|
197
|
+
properties: properties,
|
|
198
|
+
required: params.filter(function (item) { return item.required === true; }).map(function (item) { return item.name; }),
|
|
199
|
+
}];
|
|
200
|
+
}
|
|
201
|
+
/// for OpenAPI V2 only
|
|
202
|
+
var setSubIdToResponsesV2 = function (responses, keys) { return setSubIdToAnyObject(setSubIdToResponseV2, responses, keys); };
|
|
203
|
+
function setSubIdToResponseV2(response, keys) {
|
|
204
|
+
if (response == null) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if ('schema' in response) {
|
|
208
|
+
var s = response.schema;
|
|
209
|
+
if (s != null && s.type === 'file') {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
setSubId(s, keys);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function setSubIdToOperationV2(ops, keys) {
|
|
216
|
+
if (ops == null) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
var operationId = ops.operationId;
|
|
220
|
+
if (operationId) {
|
|
221
|
+
keys = [keys[0], convertKeyToTypeName(operationId)];
|
|
222
|
+
}
|
|
223
|
+
setSubIdToParameters(ops.parameters, keys.concat('parameters'));
|
|
224
|
+
setSubIdToResponsesV2(ops.responses, keys.concat('responses'));
|
|
225
|
+
}
|
|
226
|
+
var setSubIdToPathsV2 = function (paths, keys) { return setSubIdToAnyObject(setSubIdToPathItemV2, paths, keys); };
|
|
227
|
+
function setSubIdToPathItemV2(pathItem, keys) {
|
|
228
|
+
setSubIdToParameters(pathItem.parameters, keys.concat('parameters'));
|
|
229
|
+
setSubIdToOperationV2(pathItem.get, keys.concat('get'));
|
|
230
|
+
setSubIdToOperationV2(pathItem.put, keys.concat('put'));
|
|
231
|
+
setSubIdToOperationV2(pathItem.post, keys.concat('post'));
|
|
232
|
+
setSubIdToOperationV2(pathItem.delete, keys.concat('delete'));
|
|
233
|
+
setSubIdToOperationV2(pathItem.options, keys.concat('options'));
|
|
234
|
+
setSubIdToOperationV2(pathItem.head, keys.concat('head'));
|
|
235
|
+
setSubIdToOperationV2(pathItem.patch, keys.concat('patch'));
|
|
236
|
+
}
|
|
237
|
+
/// for OpenAPI V3 only
|
|
238
|
+
function setSubIdToMediaTypes(types, keys) {
|
|
239
|
+
if (types == null) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
var mime = 'application/json';
|
|
243
|
+
var mt = types[mime];
|
|
244
|
+
if (mt != null) {
|
|
245
|
+
setSubId(mt.schema, keys);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
var setSubIdToRequestBodies = function (bodys, keys) { return setSubIdToAnyObject(setSubIdToRequestBody, bodys, keys); };
|
|
249
|
+
function setSubIdToRequestBody(body, keys) {
|
|
250
|
+
if (body == null) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if ('content' in body) {
|
|
254
|
+
setSubIdToMediaTypes(body.content, keys);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
var setSubIdToResponsesV3 = function (responses, keys) { return setSubIdToAnyObject(setSubIdToResponseV3, responses, keys); };
|
|
258
|
+
function setSubIdToResponseV3(response, keys) {
|
|
259
|
+
if (response == null) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if ('content' in response) {
|
|
263
|
+
setSubIdToMediaTypes(response.content, keys);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
function setSubIdToOperationV3(ops, keys) {
|
|
267
|
+
if (ops == null) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
var operationId = ops.operationId;
|
|
271
|
+
if (operationId) {
|
|
272
|
+
keys = [keys[0], convertKeyToTypeName(operationId)];
|
|
273
|
+
}
|
|
274
|
+
setSubIdToParameters(ops.parameters, keys.concat('parameters'));
|
|
275
|
+
setSubIdToRequestBody(ops.requestBody, keys.concat('requestBody'));
|
|
276
|
+
setSubIdToResponsesV3(ops.responses, keys.concat('responses'));
|
|
277
|
+
}
|
|
278
|
+
var setSubIdToPathsV3 = function (paths, keys) { return setSubIdToAnyObject(setSubIdToPathItemV3, paths, keys); };
|
|
279
|
+
function setSubIdToPathItemV3(pathItem, keys) {
|
|
280
|
+
setSubIdToParameters(pathItem.parameters, keys.concat('parameters'));
|
|
281
|
+
setSubIdToOperationV3(pathItem.get, keys.concat('get'));
|
|
282
|
+
setSubIdToOperationV3(pathItem.put, keys.concat('put'));
|
|
283
|
+
setSubIdToOperationV3(pathItem.post, keys.concat('post'));
|
|
284
|
+
setSubIdToOperationV3(pathItem.delete, keys.concat('delete'));
|
|
285
|
+
setSubIdToOperationV3(pathItem.options, keys.concat('options'));
|
|
286
|
+
setSubIdToOperationV3(pathItem.head, keys.concat('head'));
|
|
287
|
+
setSubIdToOperationV3(pathItem.patch, keys.concat('patch'));
|
|
288
|
+
setSubIdToOperationV3(pathItem.trace, keys.concat('trace'));
|
|
289
|
+
}
|
|
290
|
+
function setSubIdToObject(obj, paths) {
|
|
291
|
+
if (obj == null) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
Object.keys(obj).forEach(function (key) {
|
|
295
|
+
var sub = obj[key];
|
|
296
|
+
setSubId(sub, paths.concat(key));
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
function setSubId(s, paths) {
|
|
300
|
+
if (typeof s !== 'object') {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (typeof s.$ref === 'string') {
|
|
304
|
+
var schemaId = new schemaId_1.default(s.$ref);
|
|
305
|
+
s.$ref = schemaId.getAbsoluteId();
|
|
306
|
+
onFoundReference(schemaId);
|
|
307
|
+
}
|
|
308
|
+
var id = createId(paths);
|
|
309
|
+
setId(schema.type, s, id);
|
|
310
|
+
walk(s, paths, []);
|
|
311
|
+
}
|
|
312
|
+
if ('swagger' in openApi) {
|
|
313
|
+
setSubIdToObject(openApi.definitions, ['definitions']);
|
|
314
|
+
setSubIdToParameterObject(openApi.parameters, ['parameters']);
|
|
315
|
+
setSubIdToResponsesV2(openApi.responses, ['responses']);
|
|
316
|
+
setSubIdToPathsV2(openApi.paths, ['paths']);
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
if (openApi.components) {
|
|
320
|
+
var components = openApi.components;
|
|
321
|
+
setSubIdToObject(components.schemas, ['components', 'schemas']);
|
|
322
|
+
setSubIdToResponsesV3(components.responses, ['components', 'responses']);
|
|
323
|
+
setSubIdToParameterObject(components.parameters, ['components', 'parameters']);
|
|
324
|
+
setSubIdToRequestBodies(components.requestBodies, ['components', 'requestBodies']);
|
|
325
|
+
}
|
|
326
|
+
if (openApi.paths) {
|
|
327
|
+
setSubIdToPathsV3(openApi.paths, ['paths']);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
if (schema.openApiVersion != null) {
|
|
332
|
+
var obj = schema.content;
|
|
333
|
+
searchOpenApiSubSchema(obj);
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
walk(schema.content, ['#'], []);
|
|
337
|
+
}
|
|
338
|
+
exports.searchAllSubSchema = searchAllSubSchema;
|
|
339
|
+
function selectSchemaType(content) {
|
|
340
|
+
if (content.$schema) {
|
|
341
|
+
var schema = content.$schema;
|
|
342
|
+
var match = schema.match(/http\:\/\/json-schema\.org\/draft-(\d+)\/schema#?/);
|
|
343
|
+
if (match) {
|
|
344
|
+
var version = Number(match[1]);
|
|
345
|
+
if (version <= 4) {
|
|
346
|
+
return { type: 'Draft04' };
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
return { type: 'Draft07' };
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
if (content.swagger === '2.0') {
|
|
354
|
+
return {
|
|
355
|
+
type: 'Draft04',
|
|
356
|
+
openApiVersion: 2,
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
if (content.openapi) {
|
|
360
|
+
var openapi = content.openapi;
|
|
361
|
+
if (/^3\.\d+\.\d+$/.test(openapi)) {
|
|
362
|
+
return {
|
|
363
|
+
type: 'Draft07',
|
|
364
|
+
openApiVersion: 3,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
// fallback to old version JSON Schema
|
|
369
|
+
return { type: 'Draft04' };
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=jsonSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonSchema.js","sourceRoot":"","sources":["jsonSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openApiV2.js","sourceRoot":"","sources":["openApiV2.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
require("cross-fetch/polyfill");
|
|
5
|
+
var debug_1 = tslib_1.__importDefault(require("debug"));
|
|
6
|
+
var utils_1 = require("../utils");
|
|
7
|
+
var jsonSchema_1 = require("./jsonSchema");
|
|
8
|
+
var schemaId_1 = tslib_1.__importDefault(require("./schemaId"));
|
|
9
|
+
var debug = debug_1.default('dtsgen');
|
|
10
|
+
var ReferenceResolver = /** @class */ (function () {
|
|
11
|
+
function ReferenceResolver() {
|
|
12
|
+
this.schemaCache = new Map();
|
|
13
|
+
this.referenceCache = new Map();
|
|
14
|
+
}
|
|
15
|
+
ReferenceResolver.prototype.dereference = function (refId) {
|
|
16
|
+
var result = this.referenceCache.get(refId);
|
|
17
|
+
if (result == null) {
|
|
18
|
+
throw new Error('Target reference is not found: ' + refId);
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
};
|
|
22
|
+
ReferenceResolver.prototype.getAllRegisteredSchema = function () {
|
|
23
|
+
return this.schemaCache.values();
|
|
24
|
+
};
|
|
25
|
+
ReferenceResolver.prototype.resolve = function () {
|
|
26
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
27
|
+
var e_1, _a, error, _b, _c, _d, key, schema, id, fileId, result, refSchema, e_2, rootSchema, targetSchema, e_1_1;
|
|
28
|
+
return tslib_1.__generator(this, function (_e) {
|
|
29
|
+
switch (_e.label) {
|
|
30
|
+
case 0:
|
|
31
|
+
debug("resolve reference: reference schema count=" + this.referenceCache.size + ".");
|
|
32
|
+
error = [];
|
|
33
|
+
_e.label = 1;
|
|
34
|
+
case 1:
|
|
35
|
+
_e.trys.push([1, 10, 11, 12]);
|
|
36
|
+
_b = tslib_1.__values(this.referenceCache.entries()), _c = _b.next();
|
|
37
|
+
_e.label = 2;
|
|
38
|
+
case 2:
|
|
39
|
+
if (!!_c.done) return [3 /*break*/, 9];
|
|
40
|
+
_d = tslib_1.__read(_c.value, 2), key = _d[0], schema = _d[1];
|
|
41
|
+
if (schema != null) {
|
|
42
|
+
return [3 /*break*/, 8];
|
|
43
|
+
}
|
|
44
|
+
id = new schemaId_1.default(key);
|
|
45
|
+
fileId = id.getFileId();
|
|
46
|
+
result = this.schemaCache.get(id.getAbsoluteId());
|
|
47
|
+
if (!(result == null)) return [3 /*break*/, 7];
|
|
48
|
+
refSchema = this.schemaCache.get(fileId);
|
|
49
|
+
debug("get from schema cache, fileId=" + fileId + ", exists=" + (refSchema != null) + ", " + id.getAbsoluteId());
|
|
50
|
+
if (!(refSchema == null && id.isFetchable())) return [3 /*break*/, 6];
|
|
51
|
+
_e.label = 3;
|
|
52
|
+
case 3:
|
|
53
|
+
_e.trys.push([3, 5, , 6]);
|
|
54
|
+
debug("fetch remote schema: id=[" + fileId + "].");
|
|
55
|
+
return [4 /*yield*/, this.registerRemoteSchema(fileId)];
|
|
56
|
+
case 4:
|
|
57
|
+
_e.sent();
|
|
58
|
+
return [3 /*break*/, 6];
|
|
59
|
+
case 5:
|
|
60
|
+
e_2 = _e.sent();
|
|
61
|
+
error.push("Fail to fetch the $ref target: " + id.getAbsoluteId() + ", " + e_2);
|
|
62
|
+
return [3 /*break*/, 8];
|
|
63
|
+
case 6:
|
|
64
|
+
result = this.schemaCache.get(id.getAbsoluteId());
|
|
65
|
+
_e.label = 7;
|
|
66
|
+
case 7:
|
|
67
|
+
debug("resolve reference: ref=[" + id.getAbsoluteId() + "]");
|
|
68
|
+
if (result != null) {
|
|
69
|
+
this.referenceCache.set(id.getAbsoluteId(), result);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
if (id.existsJsonPointerHash()) {
|
|
73
|
+
rootSchema = this.searchParentSchema(id);
|
|
74
|
+
if (rootSchema == null) {
|
|
75
|
+
error.push("The $ref targets root is not found: " + id.getAbsoluteId());
|
|
76
|
+
return [3 /*break*/, 8];
|
|
77
|
+
}
|
|
78
|
+
targetSchema = jsonSchema_1.getSubSchema(rootSchema, id.getJsonPointerHash(), id);
|
|
79
|
+
this.addSchema(targetSchema);
|
|
80
|
+
this.registerSchema(targetSchema);
|
|
81
|
+
this.referenceCache.set(id.getAbsoluteId(), targetSchema);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
error.push("The $ref target is not found: " + id.getAbsoluteId());
|
|
85
|
+
return [3 /*break*/, 8];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
_e.label = 8;
|
|
89
|
+
case 8:
|
|
90
|
+
_c = _b.next();
|
|
91
|
+
return [3 /*break*/, 2];
|
|
92
|
+
case 9: return [3 /*break*/, 12];
|
|
93
|
+
case 10:
|
|
94
|
+
e_1_1 = _e.sent();
|
|
95
|
+
e_1 = { error: e_1_1 };
|
|
96
|
+
return [3 /*break*/, 12];
|
|
97
|
+
case 11:
|
|
98
|
+
try {
|
|
99
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
100
|
+
}
|
|
101
|
+
finally { if (e_1) throw e_1.error; }
|
|
102
|
+
return [7 /*endfinally*/];
|
|
103
|
+
case 12:
|
|
104
|
+
if (error.length > 0) {
|
|
105
|
+
throw new Error(error.join('\n'));
|
|
106
|
+
}
|
|
107
|
+
return [2 /*return*/];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
ReferenceResolver.prototype.searchParentSchema = function (id) {
|
|
113
|
+
var e_3, _a;
|
|
114
|
+
var fileId = id.getFileId();
|
|
115
|
+
var rootSchema = this.schemaCache.get(fileId);
|
|
116
|
+
if (rootSchema != null) {
|
|
117
|
+
return rootSchema;
|
|
118
|
+
}
|
|
119
|
+
var key = id.getAbsoluteId();
|
|
120
|
+
try {
|
|
121
|
+
for (var _b = tslib_1.__values(this.schemaCache.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
122
|
+
var k = _c.value;
|
|
123
|
+
if (key.startsWith(k)) {
|
|
124
|
+
var s = this.schemaCache.get(k);
|
|
125
|
+
if (s != null && s.rootSchema != null) {
|
|
126
|
+
return s.rootSchema;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
132
|
+
finally {
|
|
133
|
+
try {
|
|
134
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
135
|
+
}
|
|
136
|
+
finally { if (e_3) throw e_3.error; }
|
|
137
|
+
}
|
|
138
|
+
return;
|
|
139
|
+
};
|
|
140
|
+
ReferenceResolver.prototype.registerRemoteSchema = function (url) {
|
|
141
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
142
|
+
var res, body, content, schema;
|
|
143
|
+
return tslib_1.__generator(this, function (_a) {
|
|
144
|
+
switch (_a.label) {
|
|
145
|
+
case 0: return [4 /*yield*/, fetch(url)];
|
|
146
|
+
case 1:
|
|
147
|
+
res = _a.sent();
|
|
148
|
+
return [4 /*yield*/, res.text()];
|
|
149
|
+
case 2:
|
|
150
|
+
body = _a.sent();
|
|
151
|
+
if (!res.ok) {
|
|
152
|
+
throw new Error("Error on fetch from url(" + url + "): " + res.status + ", " + body);
|
|
153
|
+
}
|
|
154
|
+
content = utils_1.parseFileContent(body, url);
|
|
155
|
+
schema = jsonSchema_1.parseSchema(content, url);
|
|
156
|
+
this.registerSchema(schema);
|
|
157
|
+
return [2 /*return*/];
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
ReferenceResolver.prototype.registerSchema = function (schema) {
|
|
163
|
+
var _this = this;
|
|
164
|
+
debug("register schema: schemaId=[" + schema.id.getAbsoluteId() + "].");
|
|
165
|
+
jsonSchema_1.searchAllSubSchema(schema, function (subSchema) {
|
|
166
|
+
_this.addSchema(subSchema);
|
|
167
|
+
}, function (refId) {
|
|
168
|
+
_this.addReference(refId);
|
|
169
|
+
});
|
|
170
|
+
};
|
|
171
|
+
ReferenceResolver.prototype.addSchema = function (schema) {
|
|
172
|
+
var id = schema.id;
|
|
173
|
+
var key = id.getAbsoluteId();
|
|
174
|
+
if (!this.schemaCache.has(key)) {
|
|
175
|
+
debug(" add schema: id=" + key);
|
|
176
|
+
this.schemaCache.set(key, schema);
|
|
177
|
+
if (schema.rootSchema == null) {
|
|
178
|
+
var fileId = id.getFileId();
|
|
179
|
+
if (!this.schemaCache.has(fileId)) {
|
|
180
|
+
this.schemaCache.set(fileId, schema);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
ReferenceResolver.prototype.addReference = function (refId) {
|
|
186
|
+
if (!this.referenceCache.has(refId.getAbsoluteId())) {
|
|
187
|
+
debug(" add reference: id=" + refId.getAbsoluteId());
|
|
188
|
+
this.referenceCache.set(refId.getAbsoluteId(), undefined);
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
ReferenceResolver.prototype.clear = function () {
|
|
192
|
+
debug('clear resolver cache.');
|
|
193
|
+
this.schemaCache.clear();
|
|
194
|
+
this.referenceCache.clear();
|
|
195
|
+
};
|
|
196
|
+
return ReferenceResolver;
|
|
197
|
+
}());
|
|
198
|
+
exports.default = ReferenceResolver;
|
|
199
|
+
//# sourceMappingURL=referenceResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referenceResolver.js","sourceRoot":"","sources":["referenceResolver.ts"],"names":[],"mappings":"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"}
|