use identifierToKeywordKind when available (TypeScript 5+)#156
use identifierToKeywordKind when available (TypeScript 5+)#156pmcelhaney wants to merge 1 commit intoajafff:masterfrom
Conversation
|
Here's a work-around until it's fixed: Install patch-package, add diff --git a/node_modules/tsutils/util/usage.js b/node_modules/tsutils/util/usage.js
index fa24e64..9818b0a 100644
--- a/node_modules/tsutils/util/usage.js
+++ b/node_modules/tsutils/util/usage.js
@@ -25,7 +25,7 @@ function getUsageDomain(node) {
const parent = node.parent;
switch (parent.kind) {
case ts.SyntaxKind.TypeReference:
- return node.originalKeywordKind !== ts.SyntaxKind.ConstKeyword ? 2 /* Type */ : undefined;
+ return ts.identifierToKeywordKind(node) !== ts.SyntaxKind.ConstKeyword ? 2 /* Type */ : undefined;
case ts.SyntaxKind.ExpressionWithTypeArguments:
return parent.parent.token === ts.SyntaxKind.ImplementsKeyword ||
parent.parent.parent.kind === ts.SyntaxKind.InterfaceDeclaration
@@ -116,7 +116,7 @@ function getDeclarationDomain(node) {
case ts.SyntaxKind.ModuleDeclaration:
return 1 /* Namespace */;
case ts.SyntaxKind.Parameter:
- if (node.parent.parent.kind === ts.SyntaxKind.IndexSignature || node.originalKeywordKind === ts.SyntaxKind.ThisKeyword)
+ if (node.parent.parent.kind === ts.SyntaxKind.IndexSignature || ts.identifierToKeywordKind(node) === ts.SyntaxKind.ThisKeyword)
return;
// falls through
case ts.SyntaxKind.BindingElement:
@@ -525,7 +525,7 @@ class UsageWalker {
case ts.SyntaxKind.Parameter:
if (node.parent.kind !== ts.SyntaxKind.IndexSignature &&
(node.name.kind !== ts.SyntaxKind.Identifier ||
- node.name.originalKeywordKind !== ts.SyntaxKind.ThisKeyword))
+ ts.identifierToKeywordKind(node.name) !== ts.SyntaxKind.ThisKeyword))
this._handleBindingName(node.name, false, false);
break;
case ts.SyntaxKind.EnumMember:
diff --git a/node_modules/tsutils/util/util.js b/node_modules/tsutils/util/util.js
index 0109fea..81aa517 100644
--- a/node_modules/tsutils/util/util.js
+++ b/node_modules/tsutils/util/util.js
@@ -37,7 +37,7 @@ function isKeywordKind(kind) {
}
exports.isKeywordKind = isKeywordKind;
function isThisParameter(parameter) {
- return parameter.name.kind === ts.SyntaxKind.Identifier && parameter.name.originalKeywordKind === ts.SyntaxKind.ThisKeyword;
+ return parameter.name.kind === ts.SyntaxKind.Identifier && ts.identifierToKeywordKind(parameter.name) === ts.SyntaxKind.ThisKeyword;
}
exports.isThisParameter = isThisParameter;
function getModifier(node, kind) { |
|
Good work! @pmcelhaney For the hotfix I had to use "postinstall" instead of "post-install". Other than that: awesome! @ajafff Can this be merged? It's preventing many people to upgrade to TS 5.2. Thanks :-) |
ca2059c to
1c27356
Compare
…eywordKind is deprecated
1c27356 to
8bd2b8b
Compare
|
this |
|
another solution would be that @pmcelhaney publish a fixed version on npm like "@pmcelhaney/tsutils" and then make a PR on the needed projects |
|
This project is dead and you are probably not affected. Short summary:
|
|
Thanks @tux21b for these details, so the issue some of us have here is linked to the fact that |
As of TypeScript 5.0,
node.originalKeywordKindis deprecated.As of TypeScript 5.2, it has been removed.
This fix uses the suggested alternative,
idenifierToKeywordKind(node)when available. So it should work with TypeScript 5 without sacrificing backwards compatibility.Fixes #155