@teambit/typescript 0.0.759 → 0.0.762

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.
@@ -77,75 +77,77 @@ async function jsDocToDocSchema(node, context) {
77
77
  const location = context.getLocation(jsDoc);
78
78
  const comment = (0, _typescript().getTextOfJSDocComment)(jsDoc.comment);
79
79
  const tags = jsDoc.tags ? await (0, _pMapSeries().default)(jsDoc.tags, tag => tagParser(tag, context)) : undefined;
80
- return new (_semanticsEntities().DocSchema)(location, comment, tags);
80
+ return new (_semanticsEntities().DocSchema)(location, jsDoc.getText(), comment, tags);
81
81
  }
82
82
 
83
83
  async function tagParser(tag, context) {
84
- let tagName = tag.tagName.getText();
85
-
84
+ // for some reason, in some cases, if `tag.getSourceFile()` is not provided to the `getText()`, it throws "Cannot read property 'text' of undefined"
86
85
  switch (tag.kind) {
87
86
  case _typescript().SyntaxKind.JSDocReturnTag:
88
87
  return returnTag(tag, context);
89
88
 
89
+ case _typescript().SyntaxKind.JSDocPropertyTag:
90
+ return propertyLikeTag(tag, context);
91
+
92
+ case _typescript().SyntaxKind.JSDocParameterTag:
93
+ return propertyLikeTag(tag, context);
94
+
90
95
  case _typescript().SyntaxKind.JSDocAugmentsTag:
91
- tagName = _semanticsEntities().TagName.augments;
96
+ return simpleTag(tag, _semanticsEntities().TagName.augments, context);
92
97
 
93
98
  case _typescript().SyntaxKind.JSDocAuthorTag:
94
- tagName = _semanticsEntities().TagName.author;
99
+ return simpleTag(tag, _semanticsEntities().TagName.author, context);
95
100
 
96
101
  case _typescript().SyntaxKind.JSDocClassTag:
97
- tagName = _semanticsEntities().TagName.class;
102
+ return simpleTag(tag, _semanticsEntities().TagName.class, context);
98
103
 
99
104
  case _typescript().SyntaxKind.JSDocCallbackTag:
100
- tagName = _semanticsEntities().TagName.callback;
105
+ return simpleTag(tag, _semanticsEntities().TagName.callback, context);
101
106
 
102
107
  case _typescript().SyntaxKind.JSDocPublicTag:
103
- tagName = _semanticsEntities().TagName.public;
108
+ return simpleTag(tag, _semanticsEntities().TagName.public, context);
104
109
 
105
110
  case _typescript().SyntaxKind.JSDocPrivateTag:
106
- tagName = _semanticsEntities().TagName.private;
111
+ return simpleTag(tag, _semanticsEntities().TagName.private, context);
107
112
 
108
113
  case _typescript().SyntaxKind.JSDocProtectedTag:
109
- tagName = _semanticsEntities().TagName.protected;
114
+ return simpleTag(tag, _semanticsEntities().TagName.protected, context);
110
115
 
111
116
  case _typescript().SyntaxKind.JSDocReadonlyTag:
112
- tagName = _semanticsEntities().TagName.readonly;
117
+ return simpleTag(tag, _semanticsEntities().TagName.readonly, context);
113
118
 
114
119
  case _typescript().SyntaxKind.JSDocOverrideTag:
115
- tagName = _semanticsEntities().TagName.override;
120
+ return simpleTag(tag, _semanticsEntities().TagName.override, context);
116
121
 
117
122
  case _typescript().SyntaxKind.JSDocDeprecatedTag:
118
- tagName = _semanticsEntities().TagName.deprecated;
123
+ return simpleTag(tag, _semanticsEntities().TagName.deprecated, context);
119
124
 
120
125
  case _typescript().SyntaxKind.JSDocSeeTag:
121
- tagName = _semanticsEntities().TagName.see;
126
+ return simpleTag(tag, _semanticsEntities().TagName.see, context);
122
127
 
123
128
  case _typescript().SyntaxKind.JSDocEnumTag:
124
- tagName = _semanticsEntities().TagName.enum;
125
-
126
- case _typescript().SyntaxKind.JSDocParameterTag:
127
- tagName = _semanticsEntities().TagName.parameter;
129
+ return simpleTag(tag, _semanticsEntities().TagName.enum, context);
128
130
 
129
131
  case _typescript().SyntaxKind.JSDocThisTag:
130
- tagName = _semanticsEntities().TagName.this;
132
+ return simpleTag(tag, _semanticsEntities().TagName.this, context);
131
133
 
132
134
  case _typescript().SyntaxKind.JSDocTypeTag:
133
- tagName = _semanticsEntities().TagName.type;
135
+ return simpleTag(tag, _semanticsEntities().TagName.type, context);
134
136
 
135
137
  case _typescript().SyntaxKind.JSDocTemplateTag:
136
- tagName = _semanticsEntities().TagName.template;
138
+ return simpleTag(tag, _semanticsEntities().TagName.template, context);
137
139
 
138
140
  case _typescript().SyntaxKind.JSDocTypedefTag:
139
- tagName = _semanticsEntities().TagName.typedef;
140
-
141
- case _typescript().SyntaxKind.JSDocPropertyTag:
142
- tagName = _semanticsEntities().TagName.property;
141
+ return simpleTag(tag, _semanticsEntities().TagName.typedef, context);
143
142
 
144
143
  case _typescript().SyntaxKind.JSDocImplementsTag:
145
- tagName = _semanticsEntities().TagName.implements;
144
+ return simpleTag(tag, _semanticsEntities().TagName.implements, context);
146
145
 
147
146
  default:
148
- return simpleTag(tag, tagName, context);
147
+ {
148
+ const tagName = tag.tagName.getText(tag.getSourceFile());
149
+ return simpleTag(tag, tagName, context);
150
+ }
149
151
  }
150
152
  }
151
153
 
@@ -157,7 +159,14 @@ async function returnTag(tag, context) {
157
159
  var _tag$typeExpression, _tag$typeExpression2;
158
160
 
159
161
  const type = (_tag$typeExpression = tag.typeExpression) !== null && _tag$typeExpression !== void 0 && _tag$typeExpression.type ? await (0, _typeNodeToSchema().typeNodeToSchema)((_tag$typeExpression2 = tag.typeExpression) === null || _tag$typeExpression2 === void 0 ? void 0 : _tag$typeExpression2.type, context) : undefined;
160
- return new (_semanticsEntities().ReturnTagSchema)(context.getLocation(tag), _semanticsEntities().TagName.return, (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
162
+ return new (_semanticsEntities().ReturnTagSchema)(context.getLocation(tag), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
163
+ }
164
+
165
+ async function propertyLikeTag(tag, context) {
166
+ var _tag$typeExpression3, _tag$typeExpression4;
167
+
168
+ const type = (_tag$typeExpression3 = tag.typeExpression) !== null && _tag$typeExpression3 !== void 0 && _tag$typeExpression3.type ? await (0, _typeNodeToSchema().typeNodeToSchema)((_tag$typeExpression4 = tag.typeExpression) === null || _tag$typeExpression4 === void 0 ? void 0 : _tag$typeExpression4.type, context) : undefined;
169
+ return new (_semanticsEntities().PropertyLikeTagSchema)(context.getLocation(tag), tag.name.getText(), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
161
170
  }
162
171
 
163
172
  //# sourceMappingURL=jsdoc-to-doc-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsDocToDocSchema","node","context","canHaveJsDoc","undefined","jsDocs","getJsDoc","length","jsDoc","location","getLocation","comment","getTextOfJSDocComment","tags","pMapSeries","tag","tagParser","DocSchema","tagName","getText","kind","SyntaxKind","JSDocReturnTag","returnTag","JSDocAugmentsTag","TagName","augments","JSDocAuthorTag","author","JSDocClassTag","class","JSDocCallbackTag","callback","JSDocPublicTag","public","JSDocPrivateTag","private","JSDocProtectedTag","protected","JSDocReadonlyTag","readonly","JSDocOverrideTag","override","JSDocDeprecatedTag","deprecated","JSDocSeeTag","see","JSDocEnumTag","enum","JSDocParameterTag","parameter","JSDocThisTag","this","JSDocTypeTag","type","JSDocTemplateTag","template","JSDocTypedefTag","typedef","JSDocPropertyTag","property","JSDocImplementsTag","implements","simpleTag","TagSchema","typeExpression","typeNodeToSchema","ReturnTagSchema","return"],"sources":["jsdoc-to-doc-schema.ts"],"sourcesContent":["/* eslint-disable no-fallthrough */\nimport { getTextOfJSDocComment, JSDocReturnTag, JSDocTag, Node, SyntaxKind } from 'typescript';\nimport { getJsDoc, canHaveJsDoc } from 'tsutils';\nimport pMapSeries from 'p-map-series';\nimport { DocSchema, ReturnTagSchema, TagName, TagSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaExtractorContext } from '../../schema-extractor-context';\nimport { typeNodeToSchema } from './type-node-to-schema';\n\nexport async function jsDocToDocSchema(node: Node, context: SchemaExtractorContext): Promise<DocSchema | undefined> {\n if (!canHaveJsDoc(node)) {\n return undefined;\n }\n const jsDocs = getJsDoc(node);\n if (!jsDocs.length) {\n return undefined;\n }\n // not sure how common it is to have multiple JSDocs. never seen it before.\n // regardless, in typescript implementation of methods like `getJSDocDeprecatedTag()`, they use the first one. (`getFirstJSDocTag()`)\n const jsDoc = jsDocs[0];\n const location = context.getLocation(jsDoc);\n const comment = getTextOfJSDocComment(jsDoc.comment);\n const tags = jsDoc.tags ? await pMapSeries(jsDoc.tags, (tag) => tagParser(tag, context)) : undefined;\n return new DocSchema(location, comment, tags);\n}\n\nasync function tagParser(tag: JSDocTag, context: SchemaExtractorContext): Promise<TagSchema> {\n let tagName: TagName | string = tag.tagName.getText();\n switch (tag.kind) {\n case SyntaxKind.JSDocReturnTag:\n return returnTag(tag as JSDocReturnTag, context);\n case SyntaxKind.JSDocAugmentsTag:\n tagName = TagName.augments;\n case SyntaxKind.JSDocAuthorTag:\n tagName = TagName.author;\n case SyntaxKind.JSDocClassTag:\n tagName = TagName.class;\n case SyntaxKind.JSDocCallbackTag:\n tagName = TagName.callback;\n case SyntaxKind.JSDocPublicTag:\n tagName = TagName.public;\n case SyntaxKind.JSDocPrivateTag:\n tagName = TagName.private;\n case SyntaxKind.JSDocProtectedTag:\n tagName = TagName.protected;\n case SyntaxKind.JSDocReadonlyTag:\n tagName = TagName.readonly;\n case SyntaxKind.JSDocOverrideTag:\n tagName = TagName.override;\n case SyntaxKind.JSDocDeprecatedTag:\n tagName = TagName.deprecated;\n case SyntaxKind.JSDocSeeTag:\n tagName = TagName.see;\n case SyntaxKind.JSDocEnumTag:\n tagName = TagName.enum;\n case SyntaxKind.JSDocParameterTag:\n tagName = TagName.parameter;\n case SyntaxKind.JSDocThisTag:\n tagName = TagName.this;\n case SyntaxKind.JSDocTypeTag:\n tagName = TagName.type;\n case SyntaxKind.JSDocTemplateTag:\n tagName = TagName.template;\n case SyntaxKind.JSDocTypedefTag:\n tagName = TagName.typedef;\n case SyntaxKind.JSDocPropertyTag:\n tagName = TagName.property;\n case SyntaxKind.JSDocImplementsTag:\n tagName = TagName.implements;\n default:\n return simpleTag(tag, tagName, context);\n }\n}\n\nfunction simpleTag(tag: JSDocTag, tagName: TagName | string, context: SchemaExtractorContext): TagSchema {\n return new TagSchema(context.getLocation(tag), tagName, getTextOfJSDocComment(tag.comment));\n}\n\nasync function returnTag(tag: JSDocReturnTag, context: SchemaExtractorContext) {\n const type = tag.typeExpression?.type ? await typeNodeToSchema(tag.typeExpression?.type, context) : undefined;\n return new ReturnTagSchema(context.getLocation(tag), TagName.return, getTextOfJSDocComment(tag.comment), type);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["jsDocToDocSchema","node","context","canHaveJsDoc","undefined","jsDocs","getJsDoc","length","jsDoc","location","getLocation","comment","getTextOfJSDocComment","tags","pMapSeries","tag","tagParser","DocSchema","getText","kind","SyntaxKind","JSDocReturnTag","returnTag","JSDocPropertyTag","propertyLikeTag","JSDocParameterTag","JSDocAugmentsTag","simpleTag","TagName","augments","JSDocAuthorTag","author","JSDocClassTag","class","JSDocCallbackTag","callback","JSDocPublicTag","public","JSDocPrivateTag","private","JSDocProtectedTag","protected","JSDocReadonlyTag","readonly","JSDocOverrideTag","override","JSDocDeprecatedTag","deprecated","JSDocSeeTag","see","JSDocEnumTag","enum","JSDocThisTag","this","JSDocTypeTag","type","JSDocTemplateTag","template","JSDocTypedefTag","typedef","JSDocImplementsTag","implements","tagName","getSourceFile","TagSchema","typeExpression","typeNodeToSchema","ReturnTagSchema","PropertyLikeTagSchema","name"],"sources":["jsdoc-to-doc-schema.ts"],"sourcesContent":["/* eslint-disable no-fallthrough */\nimport {\n getTextOfJSDocComment,\n JSDocParameterTag,\n JSDocPropertyLikeTag,\n JSDocPropertyTag,\n JSDocReturnTag,\n JSDocTag,\n Node,\n SyntaxKind,\n} from 'typescript';\nimport { getJsDoc, canHaveJsDoc } from 'tsutils';\nimport pMapSeries from 'p-map-series';\nimport {\n DocSchema,\n PropertyLikeTagSchema,\n ReturnTagSchema,\n TagName,\n TagSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaExtractorContext } from '../../schema-extractor-context';\nimport { typeNodeToSchema } from './type-node-to-schema';\n\nexport async function jsDocToDocSchema(node: Node, context: SchemaExtractorContext): Promise<DocSchema | undefined> {\n if (!canHaveJsDoc(node)) {\n return undefined;\n }\n const jsDocs = getJsDoc(node);\n if (!jsDocs.length) {\n return undefined;\n }\n // not sure how common it is to have multiple JSDocs. never seen it before.\n // regardless, in typescript implementation of methods like `getJSDocDeprecatedTag()`, they use the first one. (`getFirstJSDocTag()`)\n const jsDoc = jsDocs[0];\n const location = context.getLocation(jsDoc);\n const comment = getTextOfJSDocComment(jsDoc.comment);\n const tags = jsDoc.tags ? await pMapSeries(jsDoc.tags, (tag) => tagParser(tag, context)) : undefined;\n return new DocSchema(location, jsDoc.getText(), comment, tags);\n}\n\nasync function tagParser(tag: JSDocTag, context: SchemaExtractorContext): Promise<TagSchema> {\n // for some reason, in some cases, if `tag.getSourceFile()` is not provided to the `getText()`, it throws \"Cannot read property 'text' of undefined\"\n\n switch (tag.kind) {\n case SyntaxKind.JSDocReturnTag:\n return returnTag(tag as JSDocReturnTag, context);\n case SyntaxKind.JSDocPropertyTag:\n return propertyLikeTag(tag as JSDocPropertyTag, context);\n case SyntaxKind.JSDocParameterTag:\n return propertyLikeTag(tag as JSDocParameterTag, context);\n case SyntaxKind.JSDocAugmentsTag:\n return simpleTag(tag, TagName.augments, context);\n case SyntaxKind.JSDocAuthorTag:\n return simpleTag(tag, TagName.author, context);\n case SyntaxKind.JSDocClassTag:\n return simpleTag(tag, TagName.class, context);\n case SyntaxKind.JSDocCallbackTag:\n return simpleTag(tag, TagName.callback, context);\n case SyntaxKind.JSDocPublicTag:\n return simpleTag(tag, TagName.public, context);\n case SyntaxKind.JSDocPrivateTag:\n return simpleTag(tag, TagName.private, context);\n case SyntaxKind.JSDocProtectedTag:\n return simpleTag(tag, TagName.protected, context);\n case SyntaxKind.JSDocReadonlyTag:\n return simpleTag(tag, TagName.readonly, context);\n case SyntaxKind.JSDocOverrideTag:\n return simpleTag(tag, TagName.override, context);\n case SyntaxKind.JSDocDeprecatedTag:\n return simpleTag(tag, TagName.deprecated, context);\n case SyntaxKind.JSDocSeeTag:\n return simpleTag(tag, TagName.see, context);\n case SyntaxKind.JSDocEnumTag:\n return simpleTag(tag, TagName.enum, context);\n case SyntaxKind.JSDocThisTag:\n return simpleTag(tag, TagName.this, context);\n case SyntaxKind.JSDocTypeTag:\n return simpleTag(tag, TagName.type, context);\n case SyntaxKind.JSDocTemplateTag:\n return simpleTag(tag, TagName.template, context);\n case SyntaxKind.JSDocTypedefTag:\n return simpleTag(tag, TagName.typedef, context);\n case SyntaxKind.JSDocImplementsTag:\n return simpleTag(tag, TagName.implements, context);\n default: {\n const tagName: TagName | string = tag.tagName.getText(tag.getSourceFile());\n return simpleTag(tag, tagName, context);\n }\n }\n}\n\nfunction simpleTag(tag: JSDocTag, tagName: TagName | string, context: SchemaExtractorContext): TagSchema {\n return new TagSchema(context.getLocation(tag), tagName, getTextOfJSDocComment(tag.comment));\n}\n\nasync function returnTag(tag: JSDocReturnTag, context: SchemaExtractorContext) {\n const type = tag.typeExpression?.type ? await typeNodeToSchema(tag.typeExpression?.type, context) : undefined;\n return new ReturnTagSchema(context.getLocation(tag), getTextOfJSDocComment(tag.comment), type);\n}\n\nasync function propertyLikeTag(tag: JSDocPropertyLikeTag, context: SchemaExtractorContext) {\n const type = tag.typeExpression?.type ? await typeNodeToSchema(tag.typeExpression?.type, context) : undefined;\n return new PropertyLikeTagSchema(\n context.getLocation(tag),\n tag.name.getText(),\n getTextOfJSDocComment(tag.comment),\n type\n );\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/typescript",
3
- "version": "0.0.759",
3
+ "version": "0.0.762",
4
4
  "homepage": "https://bit.dev/teambit/typescript/typescript",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.typescript",
8
8
  "name": "typescript",
9
- "version": "0.0.759"
9
+ "version": "0.0.762"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -18,21 +18,21 @@
18
18
  "@babel/runtime": "7.12.18",
19
19
  "core-js": "^3.0.0",
20
20
  "@teambit/harmony": "0.3.3",
21
- "@teambit/compiler": "0.0.759",
21
+ "@teambit/compiler": "0.0.762",
22
22
  "@teambit/typescript.modules.ts-config-mutator": "0.0.68",
23
- "@teambit/component": "0.0.759",
24
- "@teambit/dependency-resolver": "0.0.759",
25
- "@teambit/semantics.entities.semantic-schema": "0.0.20",
23
+ "@teambit/component": "0.0.762",
24
+ "@teambit/dependency-resolver": "0.0.762",
25
+ "@teambit/semantics.entities.semantic-schema": "0.0.21",
26
26
  "@teambit/ts-server": "0.0.32",
27
- "@teambit/aspect-loader": "0.0.759",
27
+ "@teambit/aspect-loader": "0.0.762",
28
28
  "@teambit/bit-error": "0.0.394",
29
- "@teambit/builder": "0.0.759",
30
- "@teambit/isolator": "0.0.759",
31
- "@teambit/logger": "0.0.594",
32
- "@teambit/schema": "0.0.759",
33
- "@teambit/workspace": "0.0.759",
34
- "@teambit/cli": "0.0.501",
35
- "@teambit/pkg": "0.0.759"
29
+ "@teambit/builder": "0.0.762",
30
+ "@teambit/isolator": "0.0.762",
31
+ "@teambit/logger": "0.0.596",
32
+ "@teambit/schema": "0.0.762",
33
+ "@teambit/workspace": "0.0.762",
34
+ "@teambit/cli": "0.0.503",
35
+ "@teambit/pkg": "0.0.762"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/lodash": "4.14.165",
@@ -48,7 +48,7 @@
48
48
  "@teambit/typescript.aspect-docs.typescript": "0.0.138"
49
49
  },
50
50
  "peerDependencies": {
51
- "@teambit/legacy": "1.0.281",
51
+ "@teambit/legacy": "1.0.283",
52
52
  "react-dom": "^16.8.0 || ^17.0.0",
53
53
  "react": "^16.8.0 || ^17.0.0"
54
54
  },
@@ -76,7 +76,7 @@
76
76
  "react": "-"
77
77
  },
78
78
  "peerDependencies": {
79
- "@teambit/legacy": "1.0.281",
79
+ "@teambit/legacy": "1.0.283",
80
80
  "react-dom": "^16.8.0 || ^17.0.0",
81
81
  "react": "^16.8.0 || ^17.0.0"
82
82
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.759/dist/typescript.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.759/dist/typescript.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.762/dist/typescript.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.762/dist/typescript.docs.mdx')]
@@ -1,8 +1,23 @@
1
1
  /* eslint-disable no-fallthrough */
2
- import { getTextOfJSDocComment, JSDocReturnTag, JSDocTag, Node, SyntaxKind } from 'typescript';
2
+ import {
3
+ getTextOfJSDocComment,
4
+ JSDocParameterTag,
5
+ JSDocPropertyLikeTag,
6
+ JSDocPropertyTag,
7
+ JSDocReturnTag,
8
+ JSDocTag,
9
+ Node,
10
+ SyntaxKind,
11
+ } from 'typescript';
3
12
  import { getJsDoc, canHaveJsDoc } from 'tsutils';
4
13
  import pMapSeries from 'p-map-series';
5
- import { DocSchema, ReturnTagSchema, TagName, TagSchema } from '@teambit/semantics.entities.semantic-schema';
14
+ import {
15
+ DocSchema,
16
+ PropertyLikeTagSchema,
17
+ ReturnTagSchema,
18
+ TagName,
19
+ TagSchema,
20
+ } from '@teambit/semantics.entities.semantic-schema';
6
21
  import { SchemaExtractorContext } from '../../schema-extractor-context';
7
22
  import { typeNodeToSchema } from './type-node-to-schema';
8
23
 
@@ -20,54 +35,57 @@ export async function jsDocToDocSchema(node: Node, context: SchemaExtractorConte
20
35
  const location = context.getLocation(jsDoc);
21
36
  const comment = getTextOfJSDocComment(jsDoc.comment);
22
37
  const tags = jsDoc.tags ? await pMapSeries(jsDoc.tags, (tag) => tagParser(tag, context)) : undefined;
23
- return new DocSchema(location, comment, tags);
38
+ return new DocSchema(location, jsDoc.getText(), comment, tags);
24
39
  }
25
40
 
26
41
  async function tagParser(tag: JSDocTag, context: SchemaExtractorContext): Promise<TagSchema> {
27
- let tagName: TagName | string = tag.tagName.getText();
42
+ // for some reason, in some cases, if `tag.getSourceFile()` is not provided to the `getText()`, it throws "Cannot read property 'text' of undefined"
43
+
28
44
  switch (tag.kind) {
29
45
  case SyntaxKind.JSDocReturnTag:
30
46
  return returnTag(tag as JSDocReturnTag, context);
47
+ case SyntaxKind.JSDocPropertyTag:
48
+ return propertyLikeTag(tag as JSDocPropertyTag, context);
49
+ case SyntaxKind.JSDocParameterTag:
50
+ return propertyLikeTag(tag as JSDocParameterTag, context);
31
51
  case SyntaxKind.JSDocAugmentsTag:
32
- tagName = TagName.augments;
52
+ return simpleTag(tag, TagName.augments, context);
33
53
  case SyntaxKind.JSDocAuthorTag:
34
- tagName = TagName.author;
54
+ return simpleTag(tag, TagName.author, context);
35
55
  case SyntaxKind.JSDocClassTag:
36
- tagName = TagName.class;
56
+ return simpleTag(tag, TagName.class, context);
37
57
  case SyntaxKind.JSDocCallbackTag:
38
- tagName = TagName.callback;
58
+ return simpleTag(tag, TagName.callback, context);
39
59
  case SyntaxKind.JSDocPublicTag:
40
- tagName = TagName.public;
60
+ return simpleTag(tag, TagName.public, context);
41
61
  case SyntaxKind.JSDocPrivateTag:
42
- tagName = TagName.private;
62
+ return simpleTag(tag, TagName.private, context);
43
63
  case SyntaxKind.JSDocProtectedTag:
44
- tagName = TagName.protected;
64
+ return simpleTag(tag, TagName.protected, context);
45
65
  case SyntaxKind.JSDocReadonlyTag:
46
- tagName = TagName.readonly;
66
+ return simpleTag(tag, TagName.readonly, context);
47
67
  case SyntaxKind.JSDocOverrideTag:
48
- tagName = TagName.override;
68
+ return simpleTag(tag, TagName.override, context);
49
69
  case SyntaxKind.JSDocDeprecatedTag:
50
- tagName = TagName.deprecated;
70
+ return simpleTag(tag, TagName.deprecated, context);
51
71
  case SyntaxKind.JSDocSeeTag:
52
- tagName = TagName.see;
72
+ return simpleTag(tag, TagName.see, context);
53
73
  case SyntaxKind.JSDocEnumTag:
54
- tagName = TagName.enum;
55
- case SyntaxKind.JSDocParameterTag:
56
- tagName = TagName.parameter;
74
+ return simpleTag(tag, TagName.enum, context);
57
75
  case SyntaxKind.JSDocThisTag:
58
- tagName = TagName.this;
76
+ return simpleTag(tag, TagName.this, context);
59
77
  case SyntaxKind.JSDocTypeTag:
60
- tagName = TagName.type;
78
+ return simpleTag(tag, TagName.type, context);
61
79
  case SyntaxKind.JSDocTemplateTag:
62
- tagName = TagName.template;
80
+ return simpleTag(tag, TagName.template, context);
63
81
  case SyntaxKind.JSDocTypedefTag:
64
- tagName = TagName.typedef;
65
- case SyntaxKind.JSDocPropertyTag:
66
- tagName = TagName.property;
82
+ return simpleTag(tag, TagName.typedef, context);
67
83
  case SyntaxKind.JSDocImplementsTag:
68
- tagName = TagName.implements;
69
- default:
84
+ return simpleTag(tag, TagName.implements, context);
85
+ default: {
86
+ const tagName: TagName | string = tag.tagName.getText(tag.getSourceFile());
70
87
  return simpleTag(tag, tagName, context);
88
+ }
71
89
  }
72
90
  }
73
91
 
@@ -77,5 +95,15 @@ function simpleTag(tag: JSDocTag, tagName: TagName | string, context: SchemaExtr
77
95
 
78
96
  async function returnTag(tag: JSDocReturnTag, context: SchemaExtractorContext) {
79
97
  const type = tag.typeExpression?.type ? await typeNodeToSchema(tag.typeExpression?.type, context) : undefined;
80
- return new ReturnTagSchema(context.getLocation(tag), TagName.return, getTextOfJSDocComment(tag.comment), type);
98
+ return new ReturnTagSchema(context.getLocation(tag), getTextOfJSDocComment(tag.comment), type);
99
+ }
100
+
101
+ async function propertyLikeTag(tag: JSDocPropertyLikeTag, context: SchemaExtractorContext) {
102
+ const type = tag.typeExpression?.type ? await typeNodeToSchema(tag.typeExpression?.type, context) : undefined;
103
+ return new PropertyLikeTagSchema(
104
+ context.getLocation(tag),
105
+ tag.name.getText(),
106
+ getTextOfJSDocComment(tag.comment),
107
+ type
108
+ );
81
109
  }