@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.
Files changed (63) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +56 -0
  3. package/dist/cli.js +23 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/common/constants.js +10 -0
  6. package/dist/common/constants.js.map +1 -0
  7. package/dist/common/error.js +29 -0
  8. package/dist/common/error.js.map +1 -0
  9. package/dist/common/regex.js +5 -0
  10. package/dist/common/regex.js.map +1 -0
  11. package/dist/converters/accessor.js +65 -0
  12. package/dist/converters/accessor.js.map +1 -0
  13. package/dist/converters/base.js +406 -0
  14. package/dist/converters/base.js.map +1 -0
  15. package/dist/converters/context.js +48 -0
  16. package/dist/converters/context.js.map +1 -0
  17. package/dist/converters/converter.js +44 -0
  18. package/dist/converters/converter.js.map +1 -0
  19. package/dist/converters/empty.js +29 -0
  20. package/dist/converters/empty.js.map +1 -0
  21. package/dist/converters/enum.js +43 -0
  22. package/dist/converters/enum.js.map +1 -0
  23. package/dist/converters/method.js +57 -0
  24. package/dist/converters/method.js.map +1 -0
  25. package/dist/converters/module.js +43 -0
  26. package/dist/converters/module.js.map +1 -0
  27. package/dist/converters/property.js +59 -0
  28. package/dist/converters/property.js.map +1 -0
  29. package/dist/converters/type.js +70 -0
  30. package/dist/converters/type.js.map +1 -0
  31. package/dist/helpers/linkConvertHelper.js +85 -0
  32. package/dist/helpers/linkConvertHelper.js.map +1 -0
  33. package/dist/helpers/toSdpConvertHelper.js +371 -0
  34. package/dist/helpers/toSdpConvertHelper.js.map +1 -0
  35. package/dist/idResolver.js +131 -0
  36. package/dist/idResolver.js.map +1 -0
  37. package/dist/interfaces/ReferenceMapping.js +3 -0
  38. package/dist/interfaces/ReferenceMapping.js.map +1 -0
  39. package/dist/interfaces/SDPYamlModel.js +3 -0
  40. package/dist/interfaces/SDPYamlModel.js.map +1 -0
  41. package/dist/interfaces/TocItem.js +3 -0
  42. package/dist/interfaces/TocItem.js.map +1 -0
  43. package/dist/interfaces/TypeDocModel.js +3 -0
  44. package/dist/interfaces/TypeDocModel.js.map +1 -0
  45. package/dist/interfaces/UidMapping.js +3 -0
  46. package/dist/interfaces/UidMapping.js.map +1 -0
  47. package/dist/interfaces/YamlModel.js +3 -0
  48. package/dist/interfaces/YamlModel.js.map +1 -0
  49. package/dist/main.js +163 -0
  50. package/dist/main.js.map +1 -0
  51. package/dist/moduleGenerator.js +34 -0
  52. package/dist/moduleGenerator.js.map +1 -0
  53. package/dist/packageGenerator.js +35 -0
  54. package/dist/packageGenerator.js.map +1 -0
  55. package/dist/parser.js +66 -0
  56. package/dist/parser.js.map +1 -0
  57. package/dist/postTransformer.js +186 -0
  58. package/dist/postTransformer.js.map +1 -0
  59. package/dist/tocGenerator.js +81 -0
  60. package/dist/tocGenerator.js.map +1 -0
  61. package/jest.config.js +6 -0
  62. package/package.json +56 -0
  63. package/tsconfig.json +16 -0
package/dist/main.js ADDED
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = void 0;
4
+ var serializer = require("js-yaml");
5
+ var os_1 = require("os");
6
+ var path_1 = require("path");
7
+ var child_process_1 = require("child_process");
8
+ var parser_1 = require("./parser");
9
+ var postTransformer_1 = require("./postTransformer");
10
+ var tocGenerator_1 = require("./tocGenerator");
11
+ var idResolver_1 = require("./idResolver");
12
+ var constants_1 = require("./common/constants");
13
+ var context_1 = require("./converters/context");
14
+ var toSdpConvertHelper_1 = require("./helpers/toSdpConvertHelper");
15
+ var typedoc_1 = require("typedoc");
16
+ var converter_1 = require("typedoc/dist/lib/converter");
17
+ var fs_extra_1 = require("fs-extra");
18
+ var error_1 = require("./common/error");
19
+ function run(inputPath, outputPath) {
20
+ var json = null;
21
+ if (fs_extra_1.existsSync(inputPath) && fs_extra_1.lstatSync(inputPath).isDirectory()) {
22
+ // Building a folder
23
+ json = runTypeDoc(inputPath);
24
+ }
25
+ else if (fs_extra_1.existsSync(inputPath) && fs_extra_1.lstatSync(inputPath).isFile() && inputPath.endsWith('.json')) {
26
+ // Building typedoc json output
27
+ json = fs_extra_1.readJSONSync(inputPath);
28
+ }
29
+ else {
30
+ // Building an npm package spec, this could be anything `npm install` supports: a package name, a git repository, a tarball file, etc.
31
+ json = runPackage(inputPath);
32
+ }
33
+ var uidMapping = {};
34
+ // const innerClassReferenceMapping = new Map<string, string[]>();
35
+ var collection = [];
36
+ if (json) {
37
+ var context = new context_1.Context('', '', json.name, new Map());
38
+ collection = new parser_1.Parser().traverse(json, uidMapping, context);
39
+ }
40
+ if (!collection || collection.length === 0) {
41
+ console.log("Warning: nothing genereatd.");
42
+ }
43
+ var referenceMappings = [];
44
+ for (var _i = 0, collection_1 = collection; _i < collection_1.length; _i++) {
45
+ var rootElement = collection_1[_i];
46
+ var referenceMapping = {};
47
+ idResolver_1.resolveIds(rootElement, uidMapping, referenceMapping);
48
+ referenceMappings.push(referenceMapping);
49
+ }
50
+ var rootElementsForTOC = JSON.parse(JSON.stringify(collection));
51
+ var flattenElements = collection.map(function (rootElement, index) {
52
+ if (rootElement.uid.indexOf('constructor') >= 0) {
53
+ return [];
54
+ }
55
+ return postTransformer_1.postTransform(rootElement, referenceMappings[index]);
56
+ }).reduce(function (a, b) {
57
+ return a.concat(b);
58
+ }, []);
59
+ fs_extra_1.ensureDirSync(outputPath);
60
+ console.log('Yaml dump start.');
61
+ var allUids = toSdpConvertHelper_1.getAllUids(flattenElements);
62
+ // insertClassReferenceForModule(flattenElements);
63
+ var noDuplicateModels = {};
64
+ for (var _a = 0, flattenElements_1 = flattenElements; _a < flattenElements_1.length; _a++) {
65
+ var transfomredClass = flattenElements_1[_a];
66
+ // to add this to handle duplicate class and module under the same hierachy
67
+ // insertInnerClassReference(innerClassReferenceMapping, transfomredClass);
68
+ transfomredClass = JSON.parse(JSON.stringify(transfomredClass));
69
+ var content = toSdpConvertHelper_1.convertToSDP(transfomredClass, flattenElements, allUids);
70
+ var item = transfomredClass.items[0];
71
+ noDuplicateModels[item.uid] = item;
72
+ if (content) {
73
+ var filename = generateFilename(item.uid.replace(item.package + ".", ''));
74
+ console.log("Dump " + outputPath + "/" + filename + ".yml");
75
+ fs_extra_1.writeFileSync(outputPath + "/" + filename + ".yml", "" + constants_1.sdpYamlHeaderPrefix + content.type + "\n" + serializer.safeDump(content.model));
76
+ }
77
+ }
78
+ console.log('Yaml dump end.');
79
+ var yamlModels = [];
80
+ for (var key in noDuplicateModels) {
81
+ yamlModels.push(noDuplicateModels[key]);
82
+ }
83
+ if (yamlModels.length > 0) {
84
+ var packageIndex = toSdpConvertHelper_1.mergeElementsToPackageSDP(yamlModels, allUids);
85
+ fs_extra_1.writeFileSync(outputPath + "/index.yml", constants_1.sdpYamlHeaderPrefix + "Package\n" + serializer.safeDump(packageIndex));
86
+ console.log('Package index generated.');
87
+ var toc = tocGenerator_1.generateTOC(rootElementsForTOC, flattenElements[0].items[0].package);
88
+ fs_extra_1.writeFileSync(outputPath + "/toc.yml", serializer.safeDump(toc));
89
+ console.log('Toc generated.');
90
+ }
91
+ }
92
+ exports.run = run;
93
+ function generateFilename(originName) {
94
+ var filename = originName;
95
+ filename = filename.replace(/\//g, '.');
96
+ if (constants_1.alreadyExistFilename.indexOf(filename.toLowerCase()) !== -1) {
97
+ console.log("[warning] filename " + filename + " is conflict! prefix add _");
98
+ }
99
+ constants_1.alreadyExistFilename.push(filename.toLowerCase());
100
+ return filename;
101
+ }
102
+ function runTypeDoc(directory) {
103
+ var app = new typedoc_1.Application({
104
+ mode: 'Modules',
105
+ logger: 'console',
106
+ target: 'ES5',
107
+ module: 'CommonJS',
108
+ includeDeclarations: true,
109
+ ignoreCompilerErrors: true,
110
+ excludeExternals: true,
111
+ stripInternal: true,
112
+ tsconfig: path_1.join(directory, 'tsconfig.json')
113
+ });
114
+ var fileNames = app.expandInputFiles([directory]).map(function (file) { return file.replace(/\\/g, '/'); });
115
+ var rootFile = getRootFile();
116
+ if (!rootFile) {
117
+ return app.serializer.projectToObject(app.convert(fileNames));
118
+ }
119
+ if (!fs_extra_1.existsSync(rootFile)) {
120
+ throw new error_1.UserError(rootFile + " doesn't exist, which is defined in package.json.");
121
+ }
122
+ // If we have a root file to follow, only include files in the source directory that are
123
+ // transitively reachable from the root file.
124
+ //
125
+ // The following line tells typedoc to not treat files in the source directory as external.
126
+ // https://github.com/TypeStrong/typedoc/blob/v0.15.3/src/lib/converter/context.ts#L221
127
+ app.converter.on(converter_1.Converter.EVENT_BEGIN, function (context) { return context.fileNames = fileNames; });
128
+ return app.serializer.projectToObject(app.convert([rootFile]));
129
+ function getRootFile() {
130
+ var packageJsonPath = path_1.join(directory, 'package.json');
131
+ if (fs_extra_1.existsSync(packageJsonPath)) {
132
+ var _a = JSON.parse(fs_extra_1.readFileSync(packageJsonPath).toString()), types = _a.types, typings = _a.typings;
133
+ if (types || typings) {
134
+ return path_1.resolve(path_1.join(directory, types || typings));
135
+ }
136
+ }
137
+ }
138
+ }
139
+ function runPackage(inputPath) {
140
+ fs_extra_1.ensureDirSync(path_1.join(os_1.tmpdir(), 'type2docfx'));
141
+ var tempPath = fs_extra_1.mkdtempSync(path_1.join(os_1.tmpdir(), 'type2docfx', 'package-'));
142
+ fs_extra_1.ensureDirSync(tempPath);
143
+ console.log("Install package " + inputPath + " to " + tempPath);
144
+ // Copy .npmrc to our temp working directory to inherit credentials and configurations
145
+ // from the current working directory.
146
+ if (fs_extra_1.existsSync('.npmrc')) {
147
+ fs_extra_1.copyFileSync('.npmrc', tempPath + "/.npmrc");
148
+ }
149
+ try {
150
+ child_process_1.execSync("npm install " + inputPath + " --prefix " + tempPath);
151
+ }
152
+ finally {
153
+ fs_extra_1.removeSync(tempPath + "/.npmrc");
154
+ }
155
+ var dependencies = fs_extra_1.readJSONSync(path_1.join(tempPath, 'package.json')).dependencies;
156
+ var packageName = Object.keys(dependencies)[0];
157
+ var packagePath = tempPath + "/node_modules/" + packageName;
158
+ var json = runTypeDoc(packagePath);
159
+ console.log("Clean up " + tempPath);
160
+ fs_extra_1.removeSync(tempPath);
161
+ return json;
162
+ }
163
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateModules = void 0;
4
+ function generateModules(tocRoots) {
5
+ var result = [];
6
+ tocRoots.forEach(function (tocRoot) {
7
+ var root = {
8
+ items: [],
9
+ references: []
10
+ };
11
+ var moduleModel = {
12
+ uid: tocRoot.uid,
13
+ name: tocRoot.name,
14
+ summary: '',
15
+ langs: ['typeScript'],
16
+ type: 'module',
17
+ children: []
18
+ };
19
+ if (tocRoot.items && tocRoot.items.length) {
20
+ tocRoot.items.forEach(function (item) {
21
+ moduleModel.children.push(item.uid);
22
+ root.references.push({
23
+ uid: item.uid,
24
+ name: item.name
25
+ });
26
+ });
27
+ root.items.push(moduleModel);
28
+ result.push(root);
29
+ }
30
+ });
31
+ return result;
32
+ }
33
+ exports.generateModules = generateModules;
34
+ //# sourceMappingURL=moduleGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moduleGenerator.js","sourceRoot":"","sources":["../src/moduleGenerator.ts"],"names":[],"mappings":";;;AAGA,SAAgB,eAAe,CAAC,QAAmB;IAC/C,IAAI,MAAM,GAAW,EAAE,CAAC;IAExB,QAAQ,CAAC,OAAO,CAAC,UAAA,OAAO;QACpB,IAAI,IAAI,GAAS;YACb,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,EAAE;SACjB,CAAC;QACF,IAAI,WAAW,GAAc;YACzB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAE,YAAY,CAAE;YACvB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;SACf,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;YACvC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI;gBACrB,WAAW,CAAC,QAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,IAAI,EAAE,IAAI,CAAC,IAAI;iBAClB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC;AAhCD,0CAgCC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePackage = void 0;
4
+ function generatePackage(elements) {
5
+ var root = {
6
+ items: [],
7
+ references: []
8
+ };
9
+ var packageModel = null;
10
+ if (elements && elements.length) {
11
+ packageModel = {
12
+ uid: null,
13
+ name: null,
14
+ summary: '',
15
+ children: [],
16
+ type: 'package',
17
+ langs: ['typeScript']
18
+ };
19
+ elements.forEach(function (element) {
20
+ root.references.push({
21
+ uid: element.uid,
22
+ name: element.name
23
+ });
24
+ packageModel.children.push(element.uid);
25
+ if (!packageModel.uid && element.package) {
26
+ packageModel.uid = element.package;
27
+ packageModel.name = element.package;
28
+ }
29
+ });
30
+ }
31
+ root.items.push(packageModel);
32
+ return root;
33
+ }
34
+ exports.generatePackage = generatePackage;
35
+ //# sourceMappingURL=packageGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageGenerator.js","sourceRoot":"","sources":["../src/packageGenerator.ts"],"names":[],"mappings":";;;AAEA,SAAgB,eAAe,CAAC,QAAqB;IACjD,IAAI,IAAI,GAAS;QACb,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;KACjB,CAAC;IACF,IAAI,YAAY,GAAc,IAAI,CAAC;IACnC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;QAC7B,YAAY,GAAG;YACX,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,CAAE,YAAY,CAAE;SAC1B,CAAC;QAEF,QAAQ,CAAC,OAAO,CAAC,UAAA,OAAO;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACjB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;aACrB,CAAC,CAAC;YACF,YAAY,CAAC,QAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;gBACtC,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;gBACnC,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;aACvC;QACL,CAAC,CAAC,CAAC;KACN;IACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AAChB,CAAC;AA9BD,0CA8BC"}
package/dist/parser.js ADDED
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Parser = void 0;
4
+ var converter_1 = require("./converters/converter");
5
+ var context_1 = require("./converters/context");
6
+ var Parser = /** @class */ (function () {
7
+ function Parser() {
8
+ }
9
+ Parser.prototype.traverse = function (node, uidMapping, context) {
10
+ var collection = new Array();
11
+ if (this.needIgnore(node)) {
12
+ return collection;
13
+ }
14
+ var models = new converter_1.Converter().convert(node, context);
15
+ for (var _i = 0, models_1 = models; _i < models_1.length; _i++) {
16
+ var model = models_1[_i];
17
+ uidMapping[node.id] = model.uid;
18
+ collection.push(model);
19
+ }
20
+ if (!node.children || node.children.length <= 0) {
21
+ return collection;
22
+ }
23
+ for (var _a = 0, _b = node.children; _a < _b.length; _a++) {
24
+ var child = _b[_a];
25
+ var uid = models.length > 0 ? models[0].uid : context.PackageName;
26
+ var newContext = new context_1.Context(uid, node.kindString, context.PackageName, context.References);
27
+ if (models.length > 0) {
28
+ models[0].children = [].concat(models[0].children, this.traverse(child, uidMapping, newContext));
29
+ }
30
+ else {
31
+ collection = [].concat(collection, this.traverse(child, uidMapping, newContext));
32
+ }
33
+ }
34
+ return collection;
35
+ };
36
+ Parser.prototype.needIgnore = function (node) {
37
+ if (node.name && node.name[0] === '_') {
38
+ return true;
39
+ }
40
+ if (node.flags.isPrivate || node.flags.isProtected) {
41
+ return true;
42
+ }
43
+ if (this.isInternal(node)) {
44
+ return true;
45
+ }
46
+ if (!node.flags.isExported
47
+ && node.sources
48
+ && !node.sources[0].fileName.toLowerCase().endsWith('.d.ts')) {
49
+ return true;
50
+ }
51
+ return false;
52
+ };
53
+ Parser.prototype.isInternal = function (node) {
54
+ if (node && node.comment && node.comment.tags) {
55
+ node.comment.tags.forEach(function (tag) {
56
+ if (tag.tag === 'internal') {
57
+ return true;
58
+ }
59
+ });
60
+ }
61
+ return false;
62
+ };
63
+ return Parser;
64
+ }());
65
+ exports.Parser = Parser;
66
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.insertInnerClassReference = exports.insertClassReferenceForModule = exports.postTransform = exports.insertFunctionToIndex = exports.groupOrphanFunctions = void 0;
4
+ var constants_1 = require("./common/constants");
5
+ var regex_1 = require("./common/regex");
6
+ function groupOrphanFunctions(elements) {
7
+ if (elements && elements.length) {
8
+ var mapping = {};
9
+ for (var i = 0; i < elements.length; i++) {
10
+ if (elements[i].type === 'function') {
11
+ var key = elements[i].module ? elements[i].module : 'ParentToPackage';
12
+ if (!mapping[key]) {
13
+ mapping[key] = [];
14
+ }
15
+ mapping[key].push(elements[i]);
16
+ elements.splice(i, 1);
17
+ i--;
18
+ }
19
+ }
20
+ return mapping;
21
+ }
22
+ }
23
+ exports.groupOrphanFunctions = groupOrphanFunctions;
24
+ function insertFunctionToIndex(index, functions) {
25
+ if (index && functions) {
26
+ index.items[0].children = index.items[0].children.concat(functions.map(function (f) { return f.uid; }));
27
+ index.items = index.items.concat(functions);
28
+ }
29
+ }
30
+ exports.insertFunctionToIndex = insertFunctionToIndex;
31
+ function postTransform(element, references) {
32
+ var roots = flattening(element);
33
+ for (var _i = 0, roots_1 = roots; _i < roots_1.length; _i++) {
34
+ var root = roots_1[_i];
35
+ insertReferences(root, references);
36
+ }
37
+ return roots;
38
+ }
39
+ exports.postTransform = postTransform;
40
+ function insertReferences(root, references) {
41
+ if (!references || Object.keys(references).length === 0) {
42
+ return;
43
+ }
44
+ root.references = [];
45
+ for (var key in references) {
46
+ var names = key.split('.');
47
+ var reference = {
48
+ uid: key,
49
+ name: names[names.length - 1],
50
+ 'spec.typeScript': []
51
+ };
52
+ var match = void 0;
53
+ var lastIndex = 0;
54
+ while ((match = regex_1.uidRegex.exec(references[key])) !== null) {
55
+ if (lastIndex < match.index) {
56
+ reference['spec.typeScript'].push(getReference(references[key].substring(lastIndex, match.index)));
57
+ }
58
+ lastIndex = match.index + match[0].length;
59
+ reference['spec.typeScript'].push(getReference(getItemName(match[1]), match[1]));
60
+ }
61
+ if (lastIndex < references[key].length) {
62
+ reference['spec.typeScript'].push(getReference(references[key].substring(lastIndex)));
63
+ }
64
+ root.references.push(reference);
65
+ }
66
+ }
67
+ // to add this function due to classes under modules need to be cross reference
68
+ function insertClassReferenceForModule(flattenElements) {
69
+ for (var _i = 0, flattenElements_1 = flattenElements; _i < flattenElements_1.length; _i++) {
70
+ var element = flattenElements_1[_i];
71
+ if (element.items[0].type !== 'module') {
72
+ continue;
73
+ }
74
+ if (!element.references) {
75
+ element.references = [];
76
+ continue;
77
+ }
78
+ var children = element.items[0].children;
79
+ for (var _a = 0, children_1 = children; _a < children_1.length; _a++) {
80
+ var child = children_1[_a];
81
+ var find = false;
82
+ for (var _b = 0, _c = element.references; _b < _c.length; _b++) {
83
+ var ref = _c[_b];
84
+ if (ref.uid === child) {
85
+ find = true;
86
+ break;
87
+ }
88
+ }
89
+ if (!find) {
90
+ var names = child.split('.');
91
+ var reference = {
92
+ uid: child,
93
+ name: names[names.length - 1]
94
+ };
95
+ element.references.push(reference);
96
+ }
97
+ }
98
+ }
99
+ }
100
+ exports.insertClassReferenceForModule = insertClassReferenceForModule;
101
+ function insertInnerClassReference(innerClassReferenceMapping, transfomredClass) {
102
+ if ((transfomredClass.items[0].type === 'class' || transfomredClass.items[0].type === 'interface') && innerClassReferenceMapping.has(transfomredClass.items[0].uid)) {
103
+ var reference_1 = transfomredClass.references || [];
104
+ var referencedClass = innerClassReferenceMapping.get(transfomredClass.items[0].uid);
105
+ referencedClass.forEach(function (item) {
106
+ var names = item.split('.');
107
+ var ref = {
108
+ uid: item,
109
+ name: names[names.length - 1]
110
+ };
111
+ reference_1.push(ref);
112
+ });
113
+ }
114
+ }
115
+ exports.insertInnerClassReference = insertInnerClassReference;
116
+ function getReference(name, uid) {
117
+ var reference = {
118
+ name: name,
119
+ fullName: name
120
+ };
121
+ if (uid) {
122
+ reference.uid = uid;
123
+ }
124
+ return reference;
125
+ }
126
+ function getItemName(uid) {
127
+ var tmp = uid.split('.');
128
+ return tmp[tmp.length - 1];
129
+ }
130
+ function flattening(element) {
131
+ if (!element) {
132
+ return [];
133
+ }
134
+ var result = [];
135
+ result.push({
136
+ items: [element]
137
+ });
138
+ if (element.children) {
139
+ var childrenUid = [];
140
+ var children = element.children;
141
+ children = children.sort(sortYamlModel);
142
+ for (var _i = 0, children_2 = children; _i < children_2.length; _i++) {
143
+ var child = children_2[_i];
144
+ if (child.children && child.children.length > 0) {
145
+ result = result.concat(flattening(child));
146
+ }
147
+ else if (constants_1.setOfTopLevelItems.has(child.type)) {
148
+ var resultWithoutChild = [];
149
+ resultWithoutChild.push({
150
+ items: [child]
151
+ });
152
+ result = result.concat(resultWithoutChild);
153
+ }
154
+ else {
155
+ result[0].items.push(child);
156
+ }
157
+ if (child.type !== 'module') {
158
+ childrenUid.push(child.uid);
159
+ }
160
+ }
161
+ element.children = childrenUid;
162
+ return result;
163
+ }
164
+ }
165
+ function sortYamlModel(a, b) {
166
+ if (a.numericValue !== undefined && b.numericValue !== undefined) {
167
+ return a.numericValue - b.numericValue;
168
+ }
169
+ // sort classes alphabetically, contructor first
170
+ if (b.name === constants_1.constructorName) {
171
+ return 1;
172
+ }
173
+ if (a.name === constants_1.constructorName) {
174
+ return -1;
175
+ }
176
+ var nameA = a.name.toUpperCase();
177
+ var nameB = b.name.toUpperCase();
178
+ if (nameA < nameB) {
179
+ return -1;
180
+ }
181
+ if (nameA > nameB) {
182
+ return 1;
183
+ }
184
+ return 0;
185
+ }
186
+ //# sourceMappingURL=postTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postTransformer.js","sourceRoot":"","sources":["../src/postTransformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateTOC = void 0;
4
+ var constants_1 = require("./common/constants");
5
+ function generateItems(element) {
6
+ var result;
7
+ var itemsDetails = [];
8
+ result = {
9
+ uid: element.uid,
10
+ name: element.name.split('(')[0],
11
+ items: itemsDetails
12
+ };
13
+ if (!element.children || element.children.length === 0) {
14
+ if (constants_1.setOfTopLevelItems.has(element.type)) {
15
+ return result;
16
+ }
17
+ return null;
18
+ }
19
+ var children = element.children;
20
+ if (children.length > 1) {
21
+ children = children.sort(sortTOC);
22
+ }
23
+ children.forEach(function (child) {
24
+ var items = generateItems(child);
25
+ if (items) {
26
+ itemsDetails.push(items);
27
+ }
28
+ });
29
+ return result;
30
+ }
31
+ function generateTOC(elements, packageUid) {
32
+ var itemsDetails = [];
33
+ if (elements) {
34
+ if (elements.length > 1) {
35
+ elements = elements.sort(sortTOC);
36
+ }
37
+ elements.forEach(function (element) {
38
+ var items = generateItems(element);
39
+ if (items) {
40
+ itemsDetails.push(items);
41
+ }
42
+ });
43
+ }
44
+ if (itemsDetails.length === 0) {
45
+ itemsDetails = null;
46
+ }
47
+ else {
48
+ changeTocToOverview(itemsDetails, packageUid);
49
+ }
50
+ return [{
51
+ name: packageUid,
52
+ items: itemsDetails
53
+ }];
54
+ }
55
+ exports.generateTOC = generateTOC;
56
+ function changeTocToOverview(items, uid) {
57
+ items.splice(0, 0, {
58
+ name: "Overview",
59
+ uid: uid
60
+ });
61
+ for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
62
+ var item = items_1[_i];
63
+ if (item.items && item.items.length > 0) {
64
+ var uid_1 = item.uid;
65
+ delete item.uid;
66
+ changeTocToOverview(item.items, uid_1);
67
+ }
68
+ }
69
+ }
70
+ function sortTOC(a, b) {
71
+ var nameA = a.name.toUpperCase();
72
+ var nameB = b.name.toUpperCase();
73
+ if (nameA < nameB) {
74
+ return -1;
75
+ }
76
+ if (nameA > nameB) {
77
+ return 1;
78
+ }
79
+ return 0;
80
+ }
81
+ //# sourceMappingURL=tocGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tocGenerator.js","sourceRoot":"","sources":["../src/tocGenerator.ts"],"names":[],"mappings":"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"}
package/jest.config.js ADDED
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ transform: { '^.+\\.ts?$': 'ts-jest' },
3
+ testEnvironment: 'node',
4
+ testRegex: '.*\\.(test|spec)?\\.(ts|tsx)$',
5
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
6
+ };