Skip to content

Commit

Permalink
Add JSDocThrowsTag.
Browse files Browse the repository at this point in the history
  • Loading branch information
dsherret committed Mar 19, 2023
1 parent 58bcd53 commit 407d8cc
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 1 deletion.
13 changes: 13 additions & 0 deletions deno/ts_morph.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4044,6 +4044,8 @@ export declare class Node<NodeType extends ts.Node = ts.Node> {
static isJSDocPropertyLikeTag<T extends Node>(node: T | undefined): node is JSDocPropertyLikeTag & JSDocPropertyLikeTagExtensionType & T;
/** Gets if the node is a JSDocTag. */
static isJSDocTag(node: Node | undefined): node is JSDocTag;
/** Gets if the node is a JSDocThrowsTag. */
static isJSDocThrowsTag(node: Node | undefined): node is JSDocThrowsTag;
/** Gets if the node is a JSDocType. */
static isJSDocType(node: Node | undefined): node is JSDocType;
/** Gets if the node is a JSDocTypeExpressionableTag. */
Expand Down Expand Up @@ -4795,6 +4797,16 @@ export declare class JSDocThisTag extends JSDocThisTagBase<ts.JSDocThisTag> {
getParentOrThrow(message?: string | (() => string)): NonNullable<NodeParentType<ts.JSDocThisTag>>;
}

declare const JSDocThrowsTagBase: Constructor<JSDocTypeExpressionableTag> & typeof JSDocTag;

/** JS doc return tag node. */
export declare class JSDocThrowsTag extends JSDocThrowsTagBase<ts.JSDocThrowsTag> {
/** @inheritdoc **/
getParent(): NodeParentType<ts.JSDocThrowsTag>;
/** @inheritdoc **/
getParentOrThrow(message?: string | (() => string)): NonNullable<NodeParentType<ts.JSDocThrowsTag>>;
}

/** JS doc type node. */
export declare class JSDocType<T extends ts.JSDocType = ts.JSDocType> extends TypeNode<T> {
}
Expand Down Expand Up @@ -6312,6 +6324,7 @@ export interface ImplementedKindToNodeMappings {
[SyntaxKind.JSDocPublicTag]: JSDocPublicTag;
[SyntaxKind.JSDocReturnTag]: JSDocReturnTag;
[SyntaxKind.JSDocReadonlyTag]: JSDocReadonlyTag;
[SyntaxKind.JSDocThrowsTag]: JSDocThrowsTag;
[SyntaxKind.JSDocOverloadTag]: JSDocOverloadTag;
[SyntaxKind.JSDocSatisfiesTag]: JSDocSatisfiesTag;
[SyntaxKind.JSDocSeeTag]: JSDocSeeTag;
Expand Down
12 changes: 11 additions & 1 deletion deno/ts_morph.js

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions packages/ts-morph/lib/ts-morph.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4044,6 +4044,8 @@ export declare class Node<NodeType extends ts.Node = ts.Node> {
static isJSDocPropertyLikeTag<T extends Node>(node: T | undefined): node is JSDocPropertyLikeTag & JSDocPropertyLikeTagExtensionType & T;
/** Gets if the node is a JSDocTag. */
static isJSDocTag(node: Node | undefined): node is JSDocTag;
/** Gets if the node is a JSDocThrowsTag. */
static isJSDocThrowsTag(node: Node | undefined): node is JSDocThrowsTag;
/** Gets if the node is a JSDocType. */
static isJSDocType(node: Node | undefined): node is JSDocType;
/** Gets if the node is a JSDocTypeExpressionableTag. */
Expand Down Expand Up @@ -4795,6 +4797,16 @@ export declare class JSDocThisTag extends JSDocThisTagBase<ts.JSDocThisTag> {
getParentOrThrow(message?: string | (() => string)): NonNullable<NodeParentType<ts.JSDocThisTag>>;
}

declare const JSDocThrowsTagBase: Constructor<JSDocTypeExpressionableTag> & typeof JSDocTag;

/** JS doc return tag node. */
export declare class JSDocThrowsTag extends JSDocThrowsTagBase<ts.JSDocThrowsTag> {
/** @inheritdoc **/
getParent(): NodeParentType<ts.JSDocThrowsTag>;
/** @inheritdoc **/
getParentOrThrow(message?: string | (() => string)): NonNullable<NodeParentType<ts.JSDocThrowsTag>>;
}

/** JS doc type node. */
export declare class JSDocType<T extends ts.JSDocType = ts.JSDocType> extends TypeNode<T> {
}
Expand Down Expand Up @@ -6312,6 +6324,7 @@ export interface ImplementedKindToNodeMappings {
[SyntaxKind.JSDocPublicTag]: JSDocPublicTag;
[SyntaxKind.JSDocReturnTag]: JSDocReturnTag;
[SyntaxKind.JSDocReadonlyTag]: JSDocReadonlyTag;
[SyntaxKind.JSDocThrowsTag]: JSDocThrowsTag;
[SyntaxKind.JSDocOverloadTag]: JSDocOverloadTag;
[SyntaxKind.JSDocSatisfiesTag]: JSDocSatisfiesTag;
[SyntaxKind.JSDocSeeTag]: JSDocSeeTag;
Expand Down
7 changes: 7 additions & 0 deletions packages/ts-morph/src/compiler/ast/common/Node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3001,6 +3001,7 @@ export class Node<NodeType extends ts.Node = ts.Node> {
case SyntaxKind.JSDocSeeTag:
case SyntaxKind.JSDocTemplateTag:
case SyntaxKind.JSDocThisTag:
case SyntaxKind.JSDocThrowsTag:
case SyntaxKind.JSDocTypedefTag:
case SyntaxKind.JSDocTypeTag:
case SyntaxKind.JSDocTag:
Expand All @@ -3017,6 +3018,11 @@ export class Node<NodeType extends ts.Node = ts.Node> {
/** Gets if the node is a JSDocThisTag. */
static readonly isJSDocThisTag: (node: compiler.Node | undefined) => node is compiler.JSDocThisTag = Node.is(SyntaxKind.JSDocThisTag);

/** Gets if the node is a JSDocThrowsTag. */
static isJSDocThrowsTag(node: compiler.Node | undefined): node is compiler.JSDocThrowsTag {
return node?.getKind() === SyntaxKind.JSDocThrowsTag;
}

/** Gets if the node is a JSDocType. */
static isJSDocType(node: compiler.Node | undefined): node is compiler.JSDocType {
switch (node?.getKind()) {
Expand Down Expand Up @@ -3049,6 +3055,7 @@ export class Node<NodeType extends ts.Node = ts.Node> {
case SyntaxKind.JSDocSatisfiesTag:
case SyntaxKind.JSDocSeeTag:
case SyntaxKind.JSDocThisTag:
case SyntaxKind.JSDocThrowsTag:
return true;
default:
return false;
Expand Down
10 changes: 10 additions & 0 deletions packages/ts-morph/src/compiler/ast/doc/JSDocThrowsTag.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { ts } from "@ts-morph/common";
import { JSDocTypeExpressionableTag } from "./base";
import { JSDocTag } from "./JSDocTag";

export const JSDocThrowsTagBase = JSDocTypeExpressionableTag(JSDocTag);
/**
* JS doc return tag node.
*/
export class JSDocThrowsTag extends JSDocThrowsTagBase<ts.JSDocThrowsTag> {
}
1 change: 1 addition & 0 deletions packages/ts-morph/src/compiler/ast/doc/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export * from "./JSDocTagInfo";
export * from "./JSDocTemplateTag";
export * from "./JSDocText";
export * from "./JSDocThisTag";
export * from "./JSDocThrowsTag";
export * from "./JSDocType";
export * from "./JSDocTypedefTag";
export * from "./JSDocTypeExpression";
Expand Down
1 change: 1 addition & 0 deletions packages/ts-morph/src/compiler/ast/kindToNodeMappings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ export interface ImplementedKindToNodeMappings {
[SyntaxKind.JSDocPublicTag]: compiler.JSDocPublicTag;
[SyntaxKind.JSDocReturnTag]: compiler.JSDocReturnTag;
[SyntaxKind.JSDocReadonlyTag]: compiler.JSDocReadonlyTag;
[SyntaxKind.JSDocThrowsTag]: compiler.JSDocThrowsTag;
[SyntaxKind.JSDocOverloadTag]: compiler.JSDocOverloadTag;
[SyntaxKind.JSDocSatisfiesTag]: compiler.JSDocSatisfiesTag;
[SyntaxKind.JSDocSeeTag]: compiler.JSDocSeeTag;
Expand Down
1 change: 1 addition & 0 deletions packages/ts-morph/src/factories/kindToWrapperMappings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ export const kindToWrapperMappings: { [key: number]: unknown } = {
[SyntaxKind.JSDocPublicTag]: compiler.JSDocPublicTag,
[SyntaxKind.JSDocReturnTag]: compiler.JSDocReturnTag,
[SyntaxKind.JSDocReadonlyTag]: compiler.JSDocReadonlyTag,
[SyntaxKind.JSDocThrowsTag]: compiler.JSDocThrowsTag,
[SyntaxKind.JSDocOverloadTag]: compiler.JSDocOverloadTag,
[SyntaxKind.JSDocSatisfiesTag]: compiler.JSDocSatisfiesTag,
[SyntaxKind.JSDocSeeTag]: compiler.JSDocSeeTag,
Expand Down

0 comments on commit 407d8cc

Please sign in to comment.