@proteinjs/reflection-build 1.0.3 → 1.0.5

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 (149) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/modules/typescript-parser/.appveyor.yml +22 -0
  3. package/dist/modules/typescript-parser/DeclarationIndex.d.ts +217 -0
  4. package/dist/modules/typescript-parser/DeclarationIndex.js +441 -0
  5. package/dist/modules/typescript-parser/LICENSE +21 -0
  6. package/dist/modules/typescript-parser/Node.d.ts +23 -0
  7. package/dist/modules/typescript-parser/Node.js +2 -0
  8. package/dist/modules/typescript-parser/README.md +51 -0
  9. package/dist/modules/typescript-parser/SymbolSpecifier.d.ts +22 -0
  10. package/dist/modules/typescript-parser/SymbolSpecifier.js +28 -0
  11. package/dist/modules/typescript-parser/TypescriptParser.d.ts +68 -0
  12. package/dist/modules/typescript-parser/TypescriptParser.js +191 -0
  13. package/dist/modules/typescript-parser/clonable/Clonable.d.ts +17 -0
  14. package/dist/modules/typescript-parser/clonable/Clonable.js +2 -0
  15. package/dist/modules/typescript-parser/code-generators/TypescriptCodeGenerator.d.ts +39 -0
  16. package/dist/modules/typescript-parser/code-generators/TypescriptCodeGenerator.js +66 -0
  17. package/dist/modules/typescript-parser/code-generators/TypescriptGenerationOptions.d.ts +69 -0
  18. package/dist/modules/typescript-parser/code-generators/TypescriptGenerationOptions.js +9 -0
  19. package/dist/modules/typescript-parser/code-generators/typescript-generators/accessorDeclaration.d.ts +11 -0
  20. package/dist/modules/typescript-parser/code-generators/typescript-generators/accessorDeclaration.js +34 -0
  21. package/dist/modules/typescript-parser/code-generators/typescript-generators/externalModuleImport.d.ts +11 -0
  22. package/dist/modules/typescript-parser/code-generators/typescript-generators/externalModuleImport.js +15 -0
  23. package/dist/modules/typescript-parser/code-generators/typescript-generators/methodDeclaration.d.ts +11 -0
  24. package/dist/modules/typescript-parser/code-generators/typescript-generators/methodDeclaration.js +23 -0
  25. package/dist/modules/typescript-parser/code-generators/typescript-generators/namedImport.d.ts +11 -0
  26. package/dist/modules/typescript-parser/code-generators/typescript-generators/namedImport.js +94 -0
  27. package/dist/modules/typescript-parser/code-generators/typescript-generators/namespaceImport.d.ts +11 -0
  28. package/dist/modules/typescript-parser/code-generators/typescript-generators/namespaceImport.js +15 -0
  29. package/dist/modules/typescript-parser/code-generators/typescript-generators/parameterDeclaration.d.ts +9 -0
  30. package/dist/modules/typescript-parser/code-generators/typescript-generators/parameterDeclaration.js +14 -0
  31. package/dist/modules/typescript-parser/code-generators/typescript-generators/propertyDeclaration.d.ts +11 -0
  32. package/dist/modules/typescript-parser/code-generators/typescript-generators/propertyDeclaration.js +18 -0
  33. package/dist/modules/typescript-parser/code-generators/typescript-generators/stringImport.d.ts +11 -0
  34. package/dist/modules/typescript-parser/code-generators/typescript-generators/stringImport.js +15 -0
  35. package/dist/modules/typescript-parser/code-generators/typescript-generators/symbolSpecifier.d.ts +9 -0
  36. package/dist/modules/typescript-parser/code-generators/typescript-generators/symbolSpecifier.js +14 -0
  37. package/dist/modules/typescript-parser/code-generators/typescript-generators/variableDeclaration.d.ts +9 -0
  38. package/dist/modules/typescript-parser/code-generators/typescript-generators/variableDeclaration.js +14 -0
  39. package/dist/modules/typescript-parser/declarations/AccessorDeclaration.d.ts +40 -0
  40. package/dist/modules/typescript-parser/declarations/AccessorDeclaration.js +45 -0
  41. package/dist/modules/typescript-parser/declarations/ClassDeclaration.d.ts +34 -0
  42. package/dist/modules/typescript-parser/declarations/ClassDeclaration.js +26 -0
  43. package/dist/modules/typescript-parser/declarations/ConstructorDeclaration.d.ts +18 -0
  44. package/dist/modules/typescript-parser/declarations/ConstructorDeclaration.js +20 -0
  45. package/dist/modules/typescript-parser/declarations/Declaration.d.ts +215 -0
  46. package/dist/modules/typescript-parser/declarations/Declaration.js +2 -0
  47. package/dist/modules/typescript-parser/declarations/DeclarationInfo.d.ts +13 -0
  48. package/dist/modules/typescript-parser/declarations/DeclarationInfo.js +17 -0
  49. package/dist/modules/typescript-parser/declarations/DeclarationVisibility.d.ts +18 -0
  50. package/dist/modules/typescript-parser/declarations/DeclarationVisibility.js +22 -0
  51. package/dist/modules/typescript-parser/declarations/DefaultDeclaration.d.ts +21 -0
  52. package/dist/modules/typescript-parser/declarations/DefaultDeclaration.js +28 -0
  53. package/dist/modules/typescript-parser/declarations/EnumDeclaration.d.ts +16 -0
  54. package/dist/modules/typescript-parser/declarations/EnumDeclaration.js +20 -0
  55. package/dist/modules/typescript-parser/declarations/FunctionDeclaration.d.ts +23 -0
  56. package/dist/modules/typescript-parser/declarations/FunctionDeclaration.js +25 -0
  57. package/dist/modules/typescript-parser/declarations/InterfaceDeclaration.d.ts +27 -0
  58. package/dist/modules/typescript-parser/declarations/InterfaceDeclaration.js +24 -0
  59. package/dist/modules/typescript-parser/declarations/MethodDeclaration.d.ts +28 -0
  60. package/dist/modules/typescript-parser/declarations/MethodDeclaration.js +29 -0
  61. package/dist/modules/typescript-parser/declarations/ModuleDeclaration.d.ts +15 -0
  62. package/dist/modules/typescript-parser/declarations/ModuleDeclaration.js +19 -0
  63. package/dist/modules/typescript-parser/declarations/ParameterDeclaration.d.ts +33 -0
  64. package/dist/modules/typescript-parser/declarations/ParameterDeclaration.js +54 -0
  65. package/dist/modules/typescript-parser/declarations/PropertyDeclaration.d.ts +20 -0
  66. package/dist/modules/typescript-parser/declarations/PropertyDeclaration.js +23 -0
  67. package/dist/modules/typescript-parser/declarations/TypeAliasDeclaration.d.ts +19 -0
  68. package/dist/modules/typescript-parser/declarations/TypeAliasDeclaration.js +22 -0
  69. package/dist/modules/typescript-parser/declarations/VariableDeclaration.d.ts +19 -0
  70. package/dist/modules/typescript-parser/declarations/VariableDeclaration.js +22 -0
  71. package/dist/modules/typescript-parser/declarations/index.d.ts +16 -0
  72. package/dist/modules/typescript-parser/declarations/index.js +19 -0
  73. package/dist/modules/typescript-parser/errors/NotGeneratableYetError.d.ts +11 -0
  74. package/dist/modules/typescript-parser/errors/NotGeneratableYetError.js +17 -0
  75. package/dist/modules/typescript-parser/exports/AllExport.d.ts +14 -0
  76. package/dist/modules/typescript-parser/exports/AllExport.js +18 -0
  77. package/dist/modules/typescript-parser/exports/AssignedExport.d.ts +26 -0
  78. package/dist/modules/typescript-parser/exports/AssignedExport.js +38 -0
  79. package/dist/modules/typescript-parser/exports/Export.d.ts +10 -0
  80. package/dist/modules/typescript-parser/exports/Export.js +2 -0
  81. package/dist/modules/typescript-parser/exports/NamedExport.d.ts +16 -0
  82. package/dist/modules/typescript-parser/exports/NamedExport.js +18 -0
  83. package/dist/modules/typescript-parser/exports/index.d.ts +4 -0
  84. package/dist/modules/typescript-parser/exports/index.js +7 -0
  85. package/dist/modules/typescript-parser/imports/ExternalModuleImport.d.ts +25 -0
  86. package/dist/modules/typescript-parser/imports/ExternalModuleImport.js +33 -0
  87. package/dist/modules/typescript-parser/imports/Import.d.ts +43 -0
  88. package/dist/modules/typescript-parser/imports/Import.js +2 -0
  89. package/dist/modules/typescript-parser/imports/NamedImport.d.ts +29 -0
  90. package/dist/modules/typescript-parser/imports/NamedImport.js +38 -0
  91. package/dist/modules/typescript-parser/imports/NamespaceImport.d.ts +24 -0
  92. package/dist/modules/typescript-parser/imports/NamespaceImport.js +32 -0
  93. package/dist/modules/typescript-parser/imports/StringImport.d.ts +23 -0
  94. package/dist/modules/typescript-parser/imports/StringImport.js +31 -0
  95. package/dist/modules/typescript-parser/imports/index.d.ts +5 -0
  96. package/dist/modules/typescript-parser/imports/index.js +8 -0
  97. package/dist/modules/typescript-parser/index.d.ts +12 -0
  98. package/dist/modules/typescript-parser/index.js +14 -0
  99. package/dist/modules/typescript-parser/node-parser/changes/parseType.d.ts +14 -0
  100. package/dist/modules/typescript-parser/node-parser/changes/parseType.js +35 -0
  101. package/dist/modules/typescript-parser/node-parser/class-parser.d.ts +30 -0
  102. package/dist/modules/typescript-parser/node-parser/class-parser.js +143 -0
  103. package/dist/modules/typescript-parser/node-parser/enum-parser.d.ts +10 -0
  104. package/dist/modules/typescript-parser/node-parser/enum-parser.js +18 -0
  105. package/dist/modules/typescript-parser/node-parser/export-parser.d.ts +10 -0
  106. package/dist/modules/typescript-parser/node-parser/export-parser.js +58 -0
  107. package/dist/modules/typescript-parser/node-parser/function-parser.d.ts +33 -0
  108. package/dist/modules/typescript-parser/node-parser/function-parser.js +101 -0
  109. package/dist/modules/typescript-parser/node-parser/identifier-parser.d.ts +10 -0
  110. package/dist/modules/typescript-parser/node-parser/identifier-parser.js +81 -0
  111. package/dist/modules/typescript-parser/node-parser/import-parser.d.ts +10 -0
  112. package/dist/modules/typescript-parser/node-parser/import-parser.js +54 -0
  113. package/dist/modules/typescript-parser/node-parser/index.d.ts +0 -0
  114. package/dist/modules/typescript-parser/node-parser/index.js +11 -0
  115. package/dist/modules/typescript-parser/node-parser/interface-parser.d.ts +11 -0
  116. package/dist/modules/typescript-parser/node-parser/interface-parser.js +57 -0
  117. package/dist/modules/typescript-parser/node-parser/module-parser.d.ts +12 -0
  118. package/dist/modules/typescript-parser/node-parser/module-parser.js +23 -0
  119. package/dist/modules/typescript-parser/node-parser/parse-utilities.d.ts +55 -0
  120. package/dist/modules/typescript-parser/node-parser/parse-utilities.js +96 -0
  121. package/dist/modules/typescript-parser/node-parser/traverse-ast.d.ts +1 -0
  122. package/dist/modules/typescript-parser/node-parser/traverse-ast.js +14 -0
  123. package/dist/modules/typescript-parser/node-parser/type-alias-parser.d.ts +10 -0
  124. package/dist/modules/typescript-parser/node-parser/type-alias-parser.js +20 -0
  125. package/dist/modules/typescript-parser/node-parser/variable-parser.d.ts +11 -0
  126. package/dist/modules/typescript-parser/node-parser/variable-parser.js +30 -0
  127. package/dist/modules/typescript-parser/package-lock.json +16793 -0
  128. package/dist/modules/typescript-parser/package.json +55 -0
  129. package/dist/modules/typescript-parser/resources/File.d.ts +45 -0
  130. package/dist/modules/typescript-parser/resources/File.js +58 -0
  131. package/dist/modules/typescript-parser/resources/Module.d.ts +35 -0
  132. package/dist/modules/typescript-parser/resources/Module.js +50 -0
  133. package/dist/modules/typescript-parser/resources/Namespace.d.ts +35 -0
  134. package/dist/modules/typescript-parser/resources/Namespace.js +50 -0
  135. package/dist/modules/typescript-parser/resources/Resource.d.ts +64 -0
  136. package/dist/modules/typescript-parser/resources/Resource.js +2 -0
  137. package/dist/modules/typescript-parser/resources/index.d.ts +4 -0
  138. package/dist/modules/typescript-parser/resources/index.js +7 -0
  139. package/dist/modules/typescript-parser/type-guards/TypescriptGuards.d.ts +153 -0
  140. package/dist/modules/typescript-parser/type-guards/TypescriptGuards.js +213 -0
  141. package/dist/modules/typescript-parser/type-guards/TypescriptHeroGuards.d.ts +26 -0
  142. package/dist/modules/typescript-parser/type-guards/TypescriptHeroGuards.js +36 -0
  143. package/dist/modules/typescript-parser/utilities/PathHelpers.d.ts +22 -0
  144. package/dist/modules/typescript-parser/utilities/PathHelpers.js +42 -0
  145. package/dist/modules/typescript-parser/utilities/StringTemplate.d.ts +9 -0
  146. package/dist/modules/typescript-parser/utilities/StringTemplate.js +21 -0
  147. package/dist/src/runBuild.js +0 -0
  148. package/dist/src/runWatch.js +0 -0
  149. package/package.json +3 -3
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // export * from './class-parser';
3
+ // export * from './enum-parser';
4
+ // export * from './export-parser';
5
+ // export * from './function-parser';
6
+ // export * from './identifier-parser';
7
+ // export * from './import-parser';
8
+ // export * from './interface-parser';
9
+ // export * from './module-parser';
10
+ // export * from './type-alias-parser';
11
+ // export * from './variable-parser';
@@ -0,0 +1,11 @@
1
+ import { InterfaceDeclaration } from 'typescript';
2
+ import { Resource } from '../resources/Resource';
3
+ /**
4
+ * Parses an interface node into its declaration.
5
+ * Calculates the property and method defintions of the interface as well.
6
+ *
7
+ * @export
8
+ * @param {Resource} resource
9
+ * @param {InterfaceDeclaration} node
10
+ */
11
+ export declare function parseInterface(resource: Resource, node: InterfaceDeclaration): void;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseInterface = void 0;
4
+ const typescript_1 = require("typescript");
5
+ const DefaultDeclaration_1 = require("../declarations/DefaultDeclaration");
6
+ const InterfaceDeclaration_1 = require("../declarations/InterfaceDeclaration");
7
+ const MethodDeclaration_1 = require("../declarations/MethodDeclaration");
8
+ const PropertyDeclaration_1 = require("../declarations/PropertyDeclaration");
9
+ const TypescriptGuards_1 = require("../type-guards/TypescriptGuards");
10
+ const function_parser_1 = require("./function-parser");
11
+ const parse_utilities_1 = require("./parse-utilities");
12
+ const parseType_1 = require("./changes/parseType");
13
+ /**
14
+ * Parses an interface node into its declaration.
15
+ * Calculates the property and method defintions of the interface as well.
16
+ *
17
+ * @export
18
+ * @param {Resource} resource
19
+ * @param {InterfaceDeclaration} node
20
+ */
21
+ function parseInterface(resource, node) {
22
+ const name = node.name ? node.name.text : parse_utilities_1.getDefaultResourceIdentifier(resource);
23
+ const interfaceDeclaration = new InterfaceDeclaration_1.InterfaceDeclaration(name, parse_utilities_1.isNodeExported(node), node.getStart(), node.getEnd());
24
+ if (parse_utilities_1.isNodeDefaultExported(node)) {
25
+ interfaceDeclaration.isExported = false;
26
+ resource.declarations.push(new DefaultDeclaration_1.DefaultDeclaration(interfaceDeclaration.name, resource));
27
+ }
28
+ if (node.members) {
29
+ node.members.forEach((o) => {
30
+ if (TypescriptGuards_1.isPropertySignature(o)) {
31
+ interfaceDeclaration.properties.push(new PropertyDeclaration_1.PropertyDeclaration(o.name.text, 2 /* Public */, parse_utilities_1.getNodeType(o.type), !!o.questionToken, parse_utilities_1.containsModifier(o, typescript_1.SyntaxKind.StaticKeyword), o.getStart(), o.getEnd()));
32
+ }
33
+ else if (TypescriptGuards_1.isMethodSignature(o)) {
34
+ const method = new MethodDeclaration_1.MethodDeclaration(o.name.text, true, 2 /* Public */, parse_utilities_1.getNodeType(o.type), !!o.questionToken, parse_utilities_1.containsModifier(o, typescript_1.SyntaxKind.StaticKeyword), parse_utilities_1.containsModifier(o, typescript_1.SyntaxKind.AsyncKeyword), o.getStart(), o.getEnd());
35
+ method.parameters = function_parser_1.parseMethodParams(o);
36
+ interfaceDeclaration.methods.push(method);
37
+ }
38
+ });
39
+ }
40
+ if (node.typeParameters) {
41
+ interfaceDeclaration.typeParameters = node.typeParameters.map(param => param.getText());
42
+ }
43
+ if (node.heritageClauses) {
44
+ for (const heritageClause of node.heritageClauses) {
45
+ if (heritageClause.token == typescript_1.SyntaxKind.ExtendsKeyword) {
46
+ for (let heritageType of heritageClause.getChildren()) {
47
+ const expressionText = heritageType.getText().trim();
48
+ if (expressionText == 'extends')
49
+ continue;
50
+ interfaceDeclaration.extends.push(parseType_1.parseTypeAndParameters(expressionText));
51
+ }
52
+ }
53
+ }
54
+ }
55
+ resource.declarations.push(interfaceDeclaration);
56
+ }
57
+ exports.parseInterface = parseInterface;
@@ -0,0 +1,12 @@
1
+ import { ModuleDeclaration } from 'typescript';
2
+ import { Resource } from '../resources/Resource';
3
+ /**
4
+ * Parse a module to its declaration. Create a new namespace or module declaration and return it to
5
+ * be used as the new "container".
6
+ *
7
+ * @export
8
+ * @param {Resource} resource
9
+ * @param {ModuleDeclaration} node
10
+ * @returns {Resource}
11
+ */
12
+ export declare function parseModule(resource: Resource, node: ModuleDeclaration): Resource;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseModule = void 0;
4
+ const typescript_1 = require("typescript");
5
+ const Module_1 = require("../resources/Module");
6
+ const Namespace_1 = require("../resources/Namespace");
7
+ /**
8
+ * Parse a module to its declaration. Create a new namespace or module declaration and return it to
9
+ * be used as the new "container".
10
+ *
11
+ * @export
12
+ * @param {Resource} resource
13
+ * @param {ModuleDeclaration} node
14
+ * @returns {Resource}
15
+ */
16
+ function parseModule(resource, node) {
17
+ const newResource = (node.flags & typescript_1.NodeFlags.Namespace) === typescript_1.NodeFlags.Namespace ?
18
+ new Namespace_1.Namespace(node.name.text, node.getStart(), node.getEnd()) :
19
+ new Module_1.Module(node.name.text, node.getStart(), node.getEnd());
20
+ resource.resources.push(newResource);
21
+ return newResource;
22
+ }
23
+ exports.parseModule = parseModule;
@@ -0,0 +1,55 @@
1
+ import { Node, SyntaxKind, TypeNode } from 'typescript';
2
+ import { DeclarationVisibility } from '../declarations/DeclarationVisibility';
3
+ import { Resource } from '../resources/Resource';
4
+ /**
5
+ * Checks if the given typescript node has the exported flag.
6
+ * (e.g. export class Foobar).
7
+ *
8
+ * @export
9
+ * @param {Node} node
10
+ * @returns {boolean}
11
+ */
12
+ export declare function isNodeExported(node: Node): boolean;
13
+ /**
14
+ * Checks if the given typescript node has the default flag.
15
+ * (e.g. export default class Foobar).
16
+ *
17
+ * @export
18
+ * @param {Node} node
19
+ * @returns {boolean}
20
+ */
21
+ export declare function isNodeDefaultExported(node: Node): boolean;
22
+ /**
23
+ * Returns the type text (type information) for a given node.
24
+ *
25
+ * @export
26
+ * @param {(TypeNode | undefined)} node
27
+ * @returns {(string | undefined)}
28
+ */
29
+ export declare function getNodeType(node: TypeNode | undefined): string | undefined;
30
+ /**
31
+ * Checks if a node contains a certain modifier (of a given kind)
32
+ *
33
+ * @export
34
+ * @param {Node} node
35
+ * @param {SyntaxKind} modifierKind
36
+ * @returns {boolean}
37
+ */
38
+ export declare function containsModifier(node: Node, modifierKind: SyntaxKind): boolean;
39
+ /**
40
+ * Returns the enum value (visibility) of a node.
41
+ *
42
+ * @export
43
+ * @param {Node} node
44
+ * @returns {(DeclarationVisibility | undefined)}
45
+ */
46
+ export declare function getNodeVisibility(node: Node): DeclarationVisibility | undefined;
47
+ /**
48
+ * Function that calculates the default name of a resource.
49
+ * This is used when a default export has no name (i.e. export class {}).
50
+ *
51
+ * @export
52
+ * @param {TsResource} resource
53
+ * @returns {string}
54
+ */
55
+ export declare function getDefaultResourceIdentifier(resource: Resource): string;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultResourceIdentifier = exports.getNodeVisibility = exports.containsModifier = exports.getNodeType = exports.isNodeDefaultExported = exports.isNodeExported = void 0;
4
+ const typescript_1 = require("typescript");
5
+ const File_1 = require("../resources/File");
6
+ /**
7
+ * Checks if the given typescript node has the exported flag.
8
+ * (e.g. export class Foobar).
9
+ *
10
+ * @export
11
+ * @param {Node} node
12
+ * @returns {boolean}
13
+ */
14
+ function isNodeExported(node) {
15
+ const flags = typescript_1.getCombinedModifierFlags(node);
16
+ return (flags & typescript_1.ModifierFlags.Export) === typescript_1.ModifierFlags.Export;
17
+ }
18
+ exports.isNodeExported = isNodeExported;
19
+ /**
20
+ * Checks if the given typescript node has the default flag.
21
+ * (e.g. export default class Foobar).
22
+ *
23
+ * @export
24
+ * @param {Node} node
25
+ * @returns {boolean}
26
+ */
27
+ function isNodeDefaultExported(node) {
28
+ const flags = typescript_1.getCombinedModifierFlags(node);
29
+ return (flags & typescript_1.ModifierFlags.Default) === typescript_1.ModifierFlags.Default;
30
+ }
31
+ exports.isNodeDefaultExported = isNodeDefaultExported;
32
+ /**
33
+ * Returns the type text (type information) for a given node.
34
+ *
35
+ * @export
36
+ * @param {(TypeNode | undefined)} node
37
+ * @returns {(string | undefined)}
38
+ */
39
+ function getNodeType(node) {
40
+ return node ? node.getText() : undefined;
41
+ }
42
+ exports.getNodeType = getNodeType;
43
+ /**
44
+ * Checks if a node contains a certain modifier (of a given kind)
45
+ *
46
+ * @export
47
+ * @param {Node} node
48
+ * @param {SyntaxKind} modifierKind
49
+ * @returns {boolean}
50
+ */
51
+ function containsModifier(node, modifierKind) {
52
+ if (!node.modifiers)
53
+ return false;
54
+ return node.modifiers.some(mod => mod.kind === modifierKind);
55
+ }
56
+ exports.containsModifier = containsModifier;
57
+ /**
58
+ * Returns the enum value (visibility) of a node.
59
+ *
60
+ * @export
61
+ * @param {Node} node
62
+ * @returns {(DeclarationVisibility | undefined)}
63
+ */
64
+ function getNodeVisibility(node) {
65
+ if (!node.modifiers) {
66
+ return undefined;
67
+ }
68
+ for (const modifier of node.modifiers) {
69
+ switch (modifier.kind) {
70
+ case typescript_1.SyntaxKind.PublicKeyword:
71
+ return 2 /* Public */;
72
+ case typescript_1.SyntaxKind.ProtectedKeyword:
73
+ return 1 /* Protected */;
74
+ case typescript_1.SyntaxKind.PrivateKeyword:
75
+ return 0 /* Private */;
76
+ default:
77
+ break;
78
+ }
79
+ }
80
+ }
81
+ exports.getNodeVisibility = getNodeVisibility;
82
+ /**
83
+ * Function that calculates the default name of a resource.
84
+ * This is used when a default export has no name (i.e. export class {}).
85
+ *
86
+ * @export
87
+ * @param {TsResource} resource
88
+ * @returns {string}
89
+ */
90
+ function getDefaultResourceIdentifier(resource) {
91
+ if (resource instanceof File_1.File && resource.isWorkspaceFile) {
92
+ return resource.parsedPath.name;
93
+ }
94
+ return resource.identifier;
95
+ }
96
+ exports.getDefaultResourceIdentifier = getDefaultResourceIdentifier;
@@ -0,0 +1 @@
1
+ export declare function traverseAst(root: Node, visit: (node: Node) => void, skipContents?: (node: Node) => boolean): void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.traverseAst = void 0;
4
+ function traverseAst(root, visit, skipContents) {
5
+ const stack = root.getChildren();
6
+ for (let node = stack.shift(); node !== undefined; node = stack.shift()) {
7
+ visit(node);
8
+ if (skipContents && skipContents(node)) {
9
+ continue;
10
+ }
11
+ stack.unshift(...node.getChildren());
12
+ }
13
+ }
14
+ exports.traverseAst = traverseAst;
@@ -0,0 +1,10 @@
1
+ import { TypeAliasDeclaration } from 'typescript';
2
+ import { Resource } from '../resources/Resource';
3
+ /**
4
+ * Parses a type alias into the declaration.
5
+ *
6
+ * @export
7
+ * @param {Resource} resource
8
+ * @param {TypeAliasDeclaration} node
9
+ */
10
+ export declare function parseTypeAlias(resource: Resource, node: TypeAliasDeclaration): void;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseTypeAlias = void 0;
4
+ const TypeAliasDeclaration_1 = require("../declarations/TypeAliasDeclaration");
5
+ const parse_utilities_1 = require("./parse-utilities");
6
+ const parseType_1 = require("./changes/parseType");
7
+ /**
8
+ * Parses a type alias into the declaration.
9
+ *
10
+ * @export
11
+ * @param {Resource} resource
12
+ * @param {TypeAliasDeclaration} node
13
+ */
14
+ function parseTypeAlias(resource, node) {
15
+ let typeParameters = [];
16
+ if (node.typeParameters)
17
+ typeParameters = node.typeParameters.map(param => param.getText());
18
+ resource.declarations.push(new TypeAliasDeclaration_1.TypeAliasDeclaration(node.name.text, parse_utilities_1.isNodeExported(node), typeParameters, parseType_1.parseType(node), node.getStart(), node.getEnd()));
19
+ }
20
+ exports.parseTypeAlias = parseTypeAlias;
@@ -0,0 +1,11 @@
1
+ import { VariableStatement } from 'typescript';
2
+ import { CallableDeclaration } from '../declarations/Declaration';
3
+ import { Resource } from '../resources/Resource';
4
+ /**
5
+ * Parse a variable. Information such as "is the variable const" are calculated here.
6
+ *
7
+ * @export
8
+ * @param {(Resource | CallableDeclaration)} parent
9
+ * @param {VariableStatement} node
10
+ */
11
+ export declare function parseVariable(parent: Resource | CallableDeclaration, node: VariableStatement): void;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseVariable = void 0;
4
+ const typescript_1 = require("typescript");
5
+ const VariableDeclaration_1 = require("../declarations/VariableDeclaration");
6
+ const TypescriptHeroGuards_1 = require("../type-guards/TypescriptHeroGuards");
7
+ const parse_utilities_1 = require("./parse-utilities");
8
+ const parseType_1 = require("./changes/parseType");
9
+ /**
10
+ * Parse a variable. Information such as "is the variable const" are calculated here.
11
+ *
12
+ * @export
13
+ * @param {(Resource | CallableDeclaration)} parent
14
+ * @param {VariableStatement} node
15
+ */
16
+ function parseVariable(parent, node) {
17
+ const isConst = node.declarationList.getChildren().some(o => o.kind === typescript_1.SyntaxKind.ConstKeyword);
18
+ if (node.declarationList && node.declarationList.declarations) {
19
+ node.declarationList.declarations.forEach((o) => {
20
+ const declaration = new VariableDeclaration_1.VariableDeclaration(o.name.getText(), isConst, parse_utilities_1.isNodeExported(node), parseType_1.parseType(o), node.getStart(), node.getEnd());
21
+ if (TypescriptHeroGuards_1.isCallableDeclaration(parent)) {
22
+ parent.variables.push(declaration);
23
+ }
24
+ else {
25
+ parent.declarations.push(declaration);
26
+ }
27
+ });
28
+ }
29
+ }
30
+ exports.parseVariable = parseVariable;