@microsoft/type2docfx 1.3.1-dev.1150659.0
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/LICENSE +201 -0
- package/README.md +56 -0
- package/dist/cli.js +23 -0
- package/dist/cli.js.map +1 -0
- package/dist/common/constants.js +10 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/error.js +29 -0
- package/dist/common/error.js.map +1 -0
- package/dist/common/regex.js +5 -0
- package/dist/common/regex.js.map +1 -0
- package/dist/converters/accessor.js +65 -0
- package/dist/converters/accessor.js.map +1 -0
- package/dist/converters/base.js +406 -0
- package/dist/converters/base.js.map +1 -0
- package/dist/converters/context.js +48 -0
- package/dist/converters/context.js.map +1 -0
- package/dist/converters/converter.js +44 -0
- package/dist/converters/converter.js.map +1 -0
- package/dist/converters/empty.js +29 -0
- package/dist/converters/empty.js.map +1 -0
- package/dist/converters/enum.js +43 -0
- package/dist/converters/enum.js.map +1 -0
- package/dist/converters/method.js +57 -0
- package/dist/converters/method.js.map +1 -0
- package/dist/converters/module.js +43 -0
- package/dist/converters/module.js.map +1 -0
- package/dist/converters/property.js +59 -0
- package/dist/converters/property.js.map +1 -0
- package/dist/converters/type.js +70 -0
- package/dist/converters/type.js.map +1 -0
- package/dist/helpers/linkConvertHelper.js +85 -0
- package/dist/helpers/linkConvertHelper.js.map +1 -0
- package/dist/helpers/toSdpConvertHelper.js +371 -0
- package/dist/helpers/toSdpConvertHelper.js.map +1 -0
- package/dist/idResolver.js +131 -0
- package/dist/idResolver.js.map +1 -0
- package/dist/interfaces/ReferenceMapping.js +3 -0
- package/dist/interfaces/ReferenceMapping.js.map +1 -0
- package/dist/interfaces/SDPYamlModel.js +3 -0
- package/dist/interfaces/SDPYamlModel.js.map +1 -0
- package/dist/interfaces/TocItem.js +3 -0
- package/dist/interfaces/TocItem.js.map +1 -0
- package/dist/interfaces/TypeDocModel.js +3 -0
- package/dist/interfaces/TypeDocModel.js.map +1 -0
- package/dist/interfaces/UidMapping.js +3 -0
- package/dist/interfaces/UidMapping.js.map +1 -0
- package/dist/interfaces/YamlModel.js +3 -0
- package/dist/interfaces/YamlModel.js.map +1 -0
- package/dist/main.js +163 -0
- package/dist/main.js.map +1 -0
- package/dist/moduleGenerator.js +34 -0
- package/dist/moduleGenerator.js.map +1 -0
- package/dist/packageGenerator.js +35 -0
- package/dist/packageGenerator.js.map +1 -0
- package/dist/parser.js +66 -0
- package/dist/parser.js.map +1 -0
- package/dist/postTransformer.js +186 -0
- package/dist/postTransformer.js.map +1 -0
- package/dist/tocGenerator.js +81 -0
- package/dist/tocGenerator.js.map +1 -0
- package/jest.config.js +6 -0
- package/package.json +56 -0
- package/tsconfig.json +16 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.convertToTypeSDP = exports.convertToSDP = exports.mergeElementsToPackageSDP = exports.getAllUids = void 0;
|
|
15
|
+
var prettier = require("prettier");
|
|
16
|
+
function getAllUids(elements) {
|
|
17
|
+
var allUid = elements
|
|
18
|
+
.map(function (item) {
|
|
19
|
+
return item.items.map(function (m) {
|
|
20
|
+
return flattenYamlModelToUidArray(m);
|
|
21
|
+
}).reduce(function (a, b) { return a.concat(b); }, []);
|
|
22
|
+
})
|
|
23
|
+
.reduce(function (a, b) { return a.concat(b); }, []);
|
|
24
|
+
return Array.from(new Set(allUid));
|
|
25
|
+
}
|
|
26
|
+
exports.getAllUids = getAllUids;
|
|
27
|
+
function flattenYamlModelToUidArray(model) {
|
|
28
|
+
var result = [model.uid];
|
|
29
|
+
if (model.children && model.children.length > 0) {
|
|
30
|
+
var childern = model.children
|
|
31
|
+
.map(function (child) {
|
|
32
|
+
if (typeof child === "string") {
|
|
33
|
+
return [child];
|
|
34
|
+
}
|
|
35
|
+
return flattenYamlModelToUidArray(child);
|
|
36
|
+
})
|
|
37
|
+
.reduce(function (a, b) { return a.concat(b); }, []);
|
|
38
|
+
result = result.concat(childern);
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
function mergeElementsToPackageSDP(elements, allUids) {
|
|
43
|
+
var packageModel = null;
|
|
44
|
+
if (elements && elements.length) {
|
|
45
|
+
packageModel = {
|
|
46
|
+
uid: null,
|
|
47
|
+
name: null,
|
|
48
|
+
summary: "",
|
|
49
|
+
type: "package",
|
|
50
|
+
};
|
|
51
|
+
elements.forEach(function (element) {
|
|
52
|
+
switch (element.type) {
|
|
53
|
+
case "class":
|
|
54
|
+
if (!packageModel.classes) {
|
|
55
|
+
packageModel.classes = [];
|
|
56
|
+
}
|
|
57
|
+
packageModel.classes.push(element.uid);
|
|
58
|
+
break;
|
|
59
|
+
case "interface":
|
|
60
|
+
if (!packageModel.interfaces) {
|
|
61
|
+
packageModel.interfaces = [];
|
|
62
|
+
}
|
|
63
|
+
packageModel.interfaces.push(element.uid);
|
|
64
|
+
break;
|
|
65
|
+
case "enum":
|
|
66
|
+
if (!packageModel.enums) {
|
|
67
|
+
packageModel.enums = [];
|
|
68
|
+
}
|
|
69
|
+
packageModel.enums.push(element.uid);
|
|
70
|
+
break;
|
|
71
|
+
case "type alias":
|
|
72
|
+
if (!packageModel.typeAliases) {
|
|
73
|
+
packageModel.typeAliases = [];
|
|
74
|
+
}
|
|
75
|
+
packageModel.typeAliases.push(element.uid);
|
|
76
|
+
break;
|
|
77
|
+
case "function":
|
|
78
|
+
if (!packageModel.functions) {
|
|
79
|
+
packageModel.functions = [];
|
|
80
|
+
}
|
|
81
|
+
packageModel.functions.push(convertToFunctionSDP(element, allUids));
|
|
82
|
+
break;
|
|
83
|
+
default:
|
|
84
|
+
console.log("[warning] not applied type(package): ", element.type);
|
|
85
|
+
}
|
|
86
|
+
// (packageModel.children as string[]).push(element.uid);
|
|
87
|
+
if (!packageModel.uid && element.package) {
|
|
88
|
+
packageModel.uid = element.package;
|
|
89
|
+
packageModel.name = element.package;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return packageModel;
|
|
94
|
+
}
|
|
95
|
+
exports.mergeElementsToPackageSDP = mergeElementsToPackageSDP;
|
|
96
|
+
function convertToModule(transfomredClass, allUids, baseModel) {
|
|
97
|
+
var item = transfomredClass.items[0];
|
|
98
|
+
var module = __assign(__assign({}, baseModel), { uid: item.uid, name: item.name, type: "module", package: item.package, summary: tryMakeXrefRight(item.summary, allUids) });
|
|
99
|
+
if (item.previewState) {
|
|
100
|
+
module.previewState = item.previewState;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
delete module.previewState;
|
|
104
|
+
}
|
|
105
|
+
// add own sub items to target type
|
|
106
|
+
for (var i = 1; i < transfomredClass.items.length; i++) {
|
|
107
|
+
var ele = transfomredClass.items[i];
|
|
108
|
+
switch (ele.type) {
|
|
109
|
+
case "property":
|
|
110
|
+
if (!module.properties) {
|
|
111
|
+
module.properties = [];
|
|
112
|
+
}
|
|
113
|
+
module.properties.push(convertToFunctionSDP(ele, allUids));
|
|
114
|
+
break;
|
|
115
|
+
case "function":
|
|
116
|
+
if (!module.functions) {
|
|
117
|
+
module.functions = [];
|
|
118
|
+
}
|
|
119
|
+
module.functions.push(convertToFunctionSDP(ele, allUids));
|
|
120
|
+
break;
|
|
121
|
+
default:
|
|
122
|
+
console.log("[warning] not applied type(module): ", ele.type);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return module;
|
|
126
|
+
}
|
|
127
|
+
function convertToSDP(transfomredClass, allTransfomredClasses, allUids) {
|
|
128
|
+
var element = transfomredClass.items[0];
|
|
129
|
+
switch (element.type) {
|
|
130
|
+
case "class":
|
|
131
|
+
case "interface":
|
|
132
|
+
return {
|
|
133
|
+
model: convertToTypeSDP(transfomredClass, element.type === "class", allUids),
|
|
134
|
+
type: "Type",
|
|
135
|
+
};
|
|
136
|
+
case "enum":
|
|
137
|
+
if (transfomredClass.items.length < 2) {
|
|
138
|
+
console.log("[warning] enum " + element.uid + "/" + element.name + " does not have fields");
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
model: convertToEnumSDP(transfomredClass, allUids),
|
|
143
|
+
type: "Enum",
|
|
144
|
+
};
|
|
145
|
+
case "type alias":
|
|
146
|
+
return {
|
|
147
|
+
model: convertToTypeAliasSDP(element, allUids),
|
|
148
|
+
type: "TypeAlias",
|
|
149
|
+
};
|
|
150
|
+
case "module":
|
|
151
|
+
var moduleChildren_1 = [];
|
|
152
|
+
allTransfomredClasses
|
|
153
|
+
.filter(function (value) {
|
|
154
|
+
var uid = value.items[0].uid;
|
|
155
|
+
return element.children.indexOf(uid) !== -1;
|
|
156
|
+
})
|
|
157
|
+
.forEach(function (item) {
|
|
158
|
+
moduleChildren_1.push(item.items[0]);
|
|
159
|
+
});
|
|
160
|
+
return {
|
|
161
|
+
model: convertToModule(transfomredClass, allUids, mergeElementsToPackageSDP(moduleChildren_1, allUids)),
|
|
162
|
+
type: "Package",
|
|
163
|
+
};
|
|
164
|
+
default:
|
|
165
|
+
console.log("not applied type: ", element.type);
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.convertToSDP = convertToSDP;
|
|
170
|
+
function convertToEnumSDP(transfomredClass, allUids) {
|
|
171
|
+
var element = transfomredClass.items[0];
|
|
172
|
+
var fields = [];
|
|
173
|
+
for (var i = 1; i < transfomredClass.items.length; i++) {
|
|
174
|
+
var ele = transfomredClass.items[i];
|
|
175
|
+
var field = {
|
|
176
|
+
name: ele.name,
|
|
177
|
+
uid: ele.uid,
|
|
178
|
+
package: ele.package,
|
|
179
|
+
summary: tryMakeXrefRight(ele.summary, allUids),
|
|
180
|
+
};
|
|
181
|
+
if (ele.numericValue !== null && !isNaN(ele.numericValue)) {
|
|
182
|
+
field.numericValue = ele.numericValue;
|
|
183
|
+
}
|
|
184
|
+
fields.push(field);
|
|
185
|
+
}
|
|
186
|
+
var result = __assign(__assign({}, convertCommonYamlModel(element, allUids)), { fields: fields });
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
function convertToTypeAliasSDP(element, allUids) {
|
|
190
|
+
return __assign(__assign({}, convertCommonYamlModel(element, allUids)), { syntax: format(element.syntax.content) });
|
|
191
|
+
}
|
|
192
|
+
function format(content) {
|
|
193
|
+
try {
|
|
194
|
+
return prettier.format(content, { semi: false, parser: "babel" });
|
|
195
|
+
}
|
|
196
|
+
catch (_a) {
|
|
197
|
+
return content;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function convertToTypeSDP(transfomredClass, isClass, allUids) {
|
|
201
|
+
var element = transfomredClass.items[0];
|
|
202
|
+
var constructors = [];
|
|
203
|
+
var properties = [];
|
|
204
|
+
var inheritedProperties = [];
|
|
205
|
+
var methods = [];
|
|
206
|
+
var inheritedMethods = [];
|
|
207
|
+
for (var i = 1; i < transfomredClass.items.length; i++) {
|
|
208
|
+
var ele = transfomredClass.items[i];
|
|
209
|
+
var item = convertCommonYamlModel(ele, allUids);
|
|
210
|
+
if (ele.type === "constructor") {
|
|
211
|
+
// interface does not have constructor
|
|
212
|
+
isClass && constructors.push(item);
|
|
213
|
+
}
|
|
214
|
+
else if (ele.type === "property") {
|
|
215
|
+
if (ele.inherited) {
|
|
216
|
+
inheritedProperties.push(item);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
properties.push(item);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else if (ele.type === "method") {
|
|
223
|
+
if (ele.inherited) {
|
|
224
|
+
inheritedMethods.push(item);
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
methods.push(item);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
console.log("[warning] " + ele.uid + "#" + ele.name + " is not applied sub type " + ele.type + " for type yaml");
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
var result = __assign(__assign({}, convertCommonYamlModel(element, allUids)), { type: isClass ? "class" : "interface" });
|
|
235
|
+
if (constructors.length > 0) {
|
|
236
|
+
result.constructors = constructors;
|
|
237
|
+
}
|
|
238
|
+
if (properties.length > 0) {
|
|
239
|
+
result.properties = properties;
|
|
240
|
+
}
|
|
241
|
+
if (inheritedProperties.length > 0) {
|
|
242
|
+
result.inheritedProperties = inheritedProperties;
|
|
243
|
+
}
|
|
244
|
+
if (inheritedMethods.length > 0) {
|
|
245
|
+
result.inheritedMethods = inheritedMethods;
|
|
246
|
+
}
|
|
247
|
+
if (methods.length > 0) {
|
|
248
|
+
result.methods = methods;
|
|
249
|
+
}
|
|
250
|
+
if (element.extends) {
|
|
251
|
+
result.extends = convertSelfTypeToXref(element.extends.name);
|
|
252
|
+
}
|
|
253
|
+
return result;
|
|
254
|
+
}
|
|
255
|
+
exports.convertToTypeSDP = convertToTypeSDP;
|
|
256
|
+
function convertToFunctionSDP(element, allUids) {
|
|
257
|
+
var model = convertCommonYamlModel(element, allUids);
|
|
258
|
+
// don't need these fields
|
|
259
|
+
delete model.fullName;
|
|
260
|
+
delete model.inheritanceDescription;
|
|
261
|
+
return model;
|
|
262
|
+
}
|
|
263
|
+
function convertCommonYamlModel(element, allUids) {
|
|
264
|
+
var _a;
|
|
265
|
+
var result = {
|
|
266
|
+
name: element.name,
|
|
267
|
+
uid: element.uid,
|
|
268
|
+
package: element.package,
|
|
269
|
+
summary: tryMakeXrefRight(element.summary, allUids),
|
|
270
|
+
};
|
|
271
|
+
if (element.fullName) {
|
|
272
|
+
result.fullName = element.fullName;
|
|
273
|
+
}
|
|
274
|
+
// because mustache meet same variable in different level
|
|
275
|
+
// such as: { "pre": true, "list": [{}]}
|
|
276
|
+
// if item in list wants to use pre but the pre is not assigned, it will use outer pre field.
|
|
277
|
+
// so, there need to set below variable explict
|
|
278
|
+
if (element.remarks) {
|
|
279
|
+
result.remarks = tryMakeXrefRight(element.remarks, allUids);
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
result.remarks = "";
|
|
283
|
+
}
|
|
284
|
+
if (element.previewState) {
|
|
285
|
+
result.previewState = element.previewState;
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
delete result.previewState;
|
|
289
|
+
}
|
|
290
|
+
if (element.deprecated) {
|
|
291
|
+
result.isDeprecated = true;
|
|
292
|
+
result.customDeprecatedMessage = tryMakeXrefRight(element.deprecated.content, allUids);
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
result.isDeprecated = false;
|
|
296
|
+
}
|
|
297
|
+
if (element.syntax) {
|
|
298
|
+
result.syntax = {};
|
|
299
|
+
var syntax = element.syntax;
|
|
300
|
+
result.syntax.content = syntax.content;
|
|
301
|
+
if (syntax.parameters && syntax.parameters.length > 0) {
|
|
302
|
+
(_a = syntax.parameters) === null || _a === void 0 ? void 0 : _a.forEach(function (it) {
|
|
303
|
+
delete it.optional;
|
|
304
|
+
});
|
|
305
|
+
// type(return, parameters) when type is self class, we will change it to xref
|
|
306
|
+
result.syntax.parameters = syntax.parameters.map(function (it) {
|
|
307
|
+
return __assign(__assign({}, it), { description: tryMakeXrefRight(it.description, allUids), type: convertSelfTypeToXref(escapeMarkdown(it.type[0])) });
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
if (syntax.return) {
|
|
311
|
+
result.syntax.return = {
|
|
312
|
+
description: tryMakeXrefRight(syntax.return.description, allUids),
|
|
313
|
+
type: convertSelfTypeToXref(escapeMarkdown(syntax.return.type[0])),
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
if (element.inheritanceDescription) {
|
|
317
|
+
result.inheritanceDescription = tryMakeXrefRight(element.inheritanceDescription, allUids);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return result;
|
|
321
|
+
}
|
|
322
|
+
function escapeMarkdown(name) {
|
|
323
|
+
// eg: [key: string]: string
|
|
324
|
+
var markdownLinkRegEx = /^\s*(\[.+\]):(.+)/g;
|
|
325
|
+
return name.replace(markdownLinkRegEx, "$1\\:$2");
|
|
326
|
+
}
|
|
327
|
+
function convertSelfTypeToXref(name) {
|
|
328
|
+
var result = name;
|
|
329
|
+
// parse < >
|
|
330
|
+
result = result.replace(/</g, "<").replace(/>/g, ">");
|
|
331
|
+
var uidRegEx = /(@?[\w\d\-/]+\.[\w\d\-\./]+)/g;
|
|
332
|
+
return result.replace(uidRegEx, "<xref uid=\"$1\" />");
|
|
333
|
+
}
|
|
334
|
+
var xrefRegex = /(?<start>[<(]xref:)(?<uid>.*?)(?<end>[>)])/g;
|
|
335
|
+
function tryMakeXrefRight(content, uids) {
|
|
336
|
+
var result = content;
|
|
337
|
+
// because we will leave xref:xx if xx is not in uids
|
|
338
|
+
var re;
|
|
339
|
+
while ((re = xrefRegex.exec(result))) {
|
|
340
|
+
var name = re.groups.uid;
|
|
341
|
+
var replaced = re.groups.start + convertToRealXrefName(name, uids) + re.groups.end;
|
|
342
|
+
result = result.replace(re[0], replaced);
|
|
343
|
+
}
|
|
344
|
+
return result;
|
|
345
|
+
}
|
|
346
|
+
function convertToRealXrefName(name, uids) {
|
|
347
|
+
// find all matches
|
|
348
|
+
var matches = uids.filter(function (uid) {
|
|
349
|
+
return uid.endsWith(name);
|
|
350
|
+
});
|
|
351
|
+
var replaced = name;
|
|
352
|
+
if (matches.length === 1) {
|
|
353
|
+
replaced = matches[0];
|
|
354
|
+
}
|
|
355
|
+
else if (matches.length > 1) {
|
|
356
|
+
// use editdistance to find nearest one
|
|
357
|
+
var curDis = matches[0].length;
|
|
358
|
+
for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {
|
|
359
|
+
var match = matches_1[_i];
|
|
360
|
+
// matches are endswith name
|
|
361
|
+
// edit distance is prefix character length, same with match length - name length
|
|
362
|
+
var distance = match.length - name.length;
|
|
363
|
+
if (curDis > distance) {
|
|
364
|
+
curDis = distance;
|
|
365
|
+
replaced = match;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return replaced;
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=toSdpConvertHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toSdpConvertHelper.js","sourceRoot":"","sources":["../../src/helpers/toSdpConvertHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.typeToString = exports.resolveIds = void 0;
|
|
4
|
+
var regex_1 = require("./common/regex");
|
|
5
|
+
var constants_1 = require("./common/constants");
|
|
6
|
+
function resolveIds(element, uidMapping, referenceMapping) {
|
|
7
|
+
if (element.syntax) {
|
|
8
|
+
if (element.syntax.parameters) {
|
|
9
|
+
for (var _i = 0, _a = element.syntax.parameters; _i < _a.length; _i++) {
|
|
10
|
+
var p = _a[_i];
|
|
11
|
+
p.type = restoreReferences(p.type, uidMapping, referenceMapping);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
if (element.syntax.return) {
|
|
15
|
+
element.syntax.return.type = restoreReferences(element.syntax.return.type, uidMapping, referenceMapping);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (element.extends) {
|
|
19
|
+
element.extends.name = restoreReferences([element.extends.name], uidMapping, referenceMapping)[0];
|
|
20
|
+
}
|
|
21
|
+
for (var _b = 0, _c = element.children; _b < _c.length; _b++) {
|
|
22
|
+
var child = _c[_b];
|
|
23
|
+
resolveIds(child, uidMapping, referenceMapping);
|
|
24
|
+
if (constants_1.setOfTopLevelItems.has(child.type)) {
|
|
25
|
+
referenceMapping[child.uid] = "@uid:" + child.uid + "!@";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.resolveIds = resolveIds;
|
|
30
|
+
function restoreReferences(types, uidMapping, referenceMapping) {
|
|
31
|
+
var restoredTypes = restoreTypes(types, uidMapping);
|
|
32
|
+
return restoredTypes.map(function (restoreType) {
|
|
33
|
+
if (restoreType) {
|
|
34
|
+
var hasUid_1 = false;
|
|
35
|
+
var restoreTypeTrim = restoreType.replace(regex_1.uidRegex, function (match, uid) {
|
|
36
|
+
if (uid) {
|
|
37
|
+
hasUid_1 = true;
|
|
38
|
+
return uid;
|
|
39
|
+
}
|
|
40
|
+
return match;
|
|
41
|
+
});
|
|
42
|
+
if (hasUid_1 && referenceMapping[restoreTypeTrim] !== null) {
|
|
43
|
+
referenceMapping[restoreTypeTrim] = restoreType;
|
|
44
|
+
}
|
|
45
|
+
return restoreTypeTrim;
|
|
46
|
+
}
|
|
47
|
+
return restoreType;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function restoreTypes(types, uidMapping) {
|
|
51
|
+
if (types) {
|
|
52
|
+
return types.map(function (t) { return restoreType(t, uidMapping); });
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
function restoreType(type, uidMapping) {
|
|
57
|
+
if (typeof (type) === 'string') {
|
|
58
|
+
return type;
|
|
59
|
+
}
|
|
60
|
+
if (type.reflectedType) {
|
|
61
|
+
type.reflectedType.key = restoreType(type.reflectedType.key, uidMapping);
|
|
62
|
+
type.reflectedType.value = restoreType(type.reflectedType.value, uidMapping);
|
|
63
|
+
}
|
|
64
|
+
else if (type.genericType) {
|
|
65
|
+
type.genericType.inner = type.genericType.inner.map(function (t) { return restoreType(t, uidMapping); });
|
|
66
|
+
type.genericType.outter = restoreType(type.genericType.outter, uidMapping);
|
|
67
|
+
}
|
|
68
|
+
if (type.unionType) {
|
|
69
|
+
type.unionType.types = type.unionType.types.map(function (t) { return restoreType(t, uidMapping); });
|
|
70
|
+
}
|
|
71
|
+
else if (type.intersectionType) {
|
|
72
|
+
type.intersectionType.types = type.intersectionType.types.map(function (t) { return restoreType(t, uidMapping); });
|
|
73
|
+
}
|
|
74
|
+
else if (type.arrayType) {
|
|
75
|
+
type.arrayType = restoreType(type.arrayType, uidMapping);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (type.typeId && uidMapping[type.typeId]) {
|
|
79
|
+
type.typeName = "@uid:" + uidMapping[type.typeId] + "!@";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return typeToString(type);
|
|
83
|
+
}
|
|
84
|
+
function typeToString(type, kind) {
|
|
85
|
+
if (!type) {
|
|
86
|
+
return 'function';
|
|
87
|
+
}
|
|
88
|
+
if (typeof (type) === 'string') {
|
|
89
|
+
if (type[0] === '@') {
|
|
90
|
+
return type;
|
|
91
|
+
}
|
|
92
|
+
else if (kind && kind !== 'Property') {
|
|
93
|
+
var t = type.split('.');
|
|
94
|
+
return t[t.length - 1];
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
return type;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (type.reflectedType) {
|
|
101
|
+
return "[key: " + typeToString(type.reflectedType.key) + "]: " + typeToString(type.reflectedType.value);
|
|
102
|
+
}
|
|
103
|
+
else if (type.genericType) {
|
|
104
|
+
return typeToString(type.genericType.outter) + "<" + (type.genericType.inner.map(function (t) { return typeToString(t); }).join(', ')) + ">";
|
|
105
|
+
}
|
|
106
|
+
else if (type.unionType) {
|
|
107
|
+
var content = type.unionType.types.map(function (t) { return typeToString(t); }).join(' | ');
|
|
108
|
+
if (type.parentType && type.parentType !== 'union') {
|
|
109
|
+
content = '(' + content + ')';
|
|
110
|
+
}
|
|
111
|
+
return content;
|
|
112
|
+
}
|
|
113
|
+
else if (type.intersectionType) {
|
|
114
|
+
var content = type.intersectionType.types.map(function (t) { return typeToString(t); }).join(' & ');
|
|
115
|
+
if (type.parentType && type.parentType !== 'intersection') {
|
|
116
|
+
content = '(' + content + ')';
|
|
117
|
+
}
|
|
118
|
+
return content;
|
|
119
|
+
}
|
|
120
|
+
else if (type.arrayType) {
|
|
121
|
+
return typeToString(type.arrayType) + "[]";
|
|
122
|
+
}
|
|
123
|
+
else if (type.tupleType) {
|
|
124
|
+
return '[' + type.tupleType.types.map(function (t) { return typeToString(t); }).join(', ') + ']';
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
return typeToString(type.typeName);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.typeToString = typeToString;
|
|
131
|
+
//# sourceMappingURL=idResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idResolver.js","sourceRoot":"","sources":["../src/idResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReferenceMapping.js","sourceRoot":"","sources":["../../src/interfaces/ReferenceMapping.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SDPYamlModel.js","sourceRoot":"","sources":["../../src/interfaces/SDPYamlModel.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TocItem.js","sourceRoot":"","sources":["../../src/interfaces/TocItem.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeDocModel.js","sourceRoot":"","sources":["../../src/interfaces/TypeDocModel.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UidMapping.js","sourceRoot":"","sources":["../../src/interfaces/UidMapping.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YamlModel.js","sourceRoot":"","sources":["../../src/interfaces/YamlModel.ts"],"names":[],"mappings":""}
|