diff --git a/src/language-js/types/estree.d.ts b/src/language-js/types/estree.d.ts index eebe91957..cbfd9aaa7 100644 --- a/src/language-js/types/estree.d.ts +++ b/src/language-js/types/estree.d.ts @@ -53,14 +53,14 @@ export type Node = ExtendNode<_Node>; export type NodeMap = CreateNodeMap; export type CommentMap = CreateNodeMap; -type CreateNodeMap = { - [NodeType in InputNode["type"]]: Extract; +type CreateNodeMap = { + [NodeType in Input["type"]]: Extract; }; -type ExtendNode = InputNode extends _Node +type ExtendNode = Input extends _Node ? { - [Key in keyof InputNode]: ExtendNode; + [Key in keyof Input]: ExtendNode; } & PrettierNodeAdditionalProperties - : InputNode extends readonly (_Node | any)[] - ? ExtendNode[] - : InputNode; + : Input extends readonly any[] + ? ExtendNode[] + : Input; diff --git a/src/language-js/types/typescript-estree.ts b/src/language-js/types/typescript-estree.ts index 6ab22bd09..e6305a249 100644 --- a/src/language-js/types/typescript-estree.ts +++ b/src/language-js/types/typescript-estree.ts @@ -2,9 +2,15 @@ import type { TSESTree } from "@typescript-eslint/typescript-estree"; type NodeOrComment = TSESTree.Node | TSESTree.Comment; -type ConvertTypeToString = { - [Key in keyof Node]: Key extends "type" ? `${Node[Key]}` : Node[Key]; -}; +type ConvertTypeToString = Input extends NodeOrComment + ? { + [Key in keyof Input]: Key extends "type" + ? `${Input[Key]}` + : ConvertTypeToString; + } + : Input extends readonly any[] + ? ConvertTypeToString[] + : Input; export type Node = ConvertTypeToString; export type Comment = ConvertTypeToString;