Skip to content

Commit

Permalink
feat: allow typescript@5.3.0-RC as devDependency (#7821)
Browse files Browse the repository at this point in the history
* feat: allow typescript@5.3.0-beta as devDependency

* fix: no-restricted-imports.ts satisfies and assertions/attributes

* Use patch-package for api-extractor

* Review feedback on typos

* Update patch with optional chaining

* I, ah, forgot we're on Yarn 3+

* Fix lint, and update snapshots

* typescript@5.3.1-rc, and aliased interfaces

* add yarn.lock update as well

* Went back to 5.3.0-beta
  • Loading branch information
JoshuaKGoldberg committed Nov 13, 2023
1 parent c4709c2 commit b6c40b4
Show file tree
Hide file tree
Showing 145 changed files with 605 additions and 262 deletions.
46 changes: 46 additions & 0 deletions .yarn/patches/@microsoft-api-extractor-npm-7.38.0-955f1e0725.patch
@@ -0,0 +1,46 @@
diff --git a/lib/analyzer/ExportAnalyzer.js b/lib/analyzer/ExportAnalyzer.js
index 51f31b4f2f253d82adc9594faa58d8dc031957e0..1fddac54b08665f5a5a717fef740613ae921cb7a 100644
--- a/lib/analyzer/ExportAnalyzer.js
+++ b/lib/analyzer/ExportAnalyzer.js
@@ -193,7 +193,7 @@ class ExportAnalyzer {
const mode = specifier && ts.isStringLiteralLike(specifier)
? TypeScriptInternals_1.TypeScriptInternals.getModeForUsageLocation(importOrExportDeclaration.getSourceFile(), specifier)
: undefined;
- const resolvedModule = TypeScriptInternals_1.TypeScriptInternals.getResolvedModule(importOrExportDeclaration.getSourceFile(), moduleSpecifier, mode);
+ const resolvedModule = TypeScriptInternals_1.TypeScriptInternals.getResolvedModule(this._program, importOrExportDeclaration.getSourceFile(), moduleSpecifier, mode);
if (resolvedModule === undefined) {
// The TS compiler API `getResolvedModule` cannot resolve ambient modules. Thus, to match API Extractor's
// previous behavior, simply treat all ambient modules as external. This bug is tracked by
@@ -666,7 +666,7 @@ class ExportAnalyzer {
ts.isStringLiteralLike(importOrExportDeclaration.moduleSpecifier)
? TypeScriptInternals_1.TypeScriptInternals.getModeForUsageLocation(importOrExportDeclaration.getSourceFile(), importOrExportDeclaration.moduleSpecifier)
: undefined;
- const resolvedModule = TypeScriptInternals_1.TypeScriptInternals.getResolvedModule(importOrExportDeclaration.getSourceFile(), moduleSpecifier, mode);
+ const resolvedModule = TypeScriptInternals_1.TypeScriptInternals.getResolvedModule(this._program, importOrExportDeclaration.getSourceFile(), moduleSpecifier, mode);
if (resolvedModule === undefined) {
// Encountered in https://github.com/microsoft/rushstack/issues/1914.
//
diff --git a/lib/analyzer/TypeScriptInternals.js b/lib/analyzer/TypeScriptInternals.js
index ff13db7709ccf502fe202337869d4024431636c9..217c36b0303c3bf9871edabcd48fbf6e09f18561 100644
--- a/lib/analyzer/TypeScriptInternals.js
+++ b/lib/analyzer/TypeScriptInternals.js
@@ -84,10 +84,16 @@ class TypeScriptInternals {
* Retrieves the (cached) module resolution information for a module name that was exported from a SourceFile.
* The compiler populates this cache as part of analyzing the source file.
*/
- static getResolvedModule(sourceFile, moduleNameText, mode) {
+ static getResolvedModule(program, sourceFile, moduleNameText, mode) {
// Compiler internal:
- // https://github.com/microsoft/TypeScript/blob/v4.7.2/src/compiler/utilities.ts#L161
- return ts.getResolvedModule(sourceFile, moduleNameText, mode);
+ // https://github.com/microsoft/TypeScript/blob/v5.3-beta/src/compiler/types.ts#L4678
+ const result = program.getResolvedModule(
+ sourceFile,
+ moduleNameText,
+ mode
+ );
+ return result?.resolvedModule;
+
}
/**
* Gets the mode required for module resolution required with the addition of Node16/nodenext
@@ -1,8 +1,8 @@
diff --git a/lib/typescript.d.ts b/lib/typescript.d.ts
index ead6d07d8fb2af6aa74b790c9fd947f1062f6df4..f8dad7f06e74d7cfccfcd8fc9c5c7038a7fe4164 100644
index d785077fd9e4eb5959c0badb857358fad09d4d3f..54f71344b098e8d46acd8dd77638c60d505bb996 100644
--- a/lib/typescript.d.ts
+++ b/lib/typescript.d.ts
@@ -371,8 +371,8 @@ declare namespace ts {
@@ -4491,8 +4491,8 @@ declare namespace ts {
JSDocFunctionType = 324,
JSDocVariadicType = 325,
JSDocNamepathType = 326,
Expand All @@ -12,7 +12,7 @@ index ead6d07d8fb2af6aa74b790c9fd947f1062f6df4..f8dad7f06e74d7cfccfcd8fc9c5c7038
JSDocComment = 327,
JSDocText = 328,
JSDocTypeLiteral = 329,
@@ -738,6 +738,8 @@ declare namespace ts {
@@ -5066,6 +5066,8 @@ declare namespace ts {
readonly name: PropertyName;
readonly questionToken?: QuestionToken;
readonly type?: TypeNode;
Expand All @@ -21,7 +21,7 @@ index ead6d07d8fb2af6aa74b790c9fd947f1062f6df4..f8dad7f06e74d7cfccfcd8fc9c5c7038
}
interface PropertyDeclaration extends ClassElement, JSDocContainer {
readonly kind: SyntaxKind.PropertyDeclaration;
@@ -763,6 +765,10 @@ declare namespace ts {
@@ -5091,6 +5093,10 @@ declare namespace ts {
readonly parent: ObjectLiteralExpression;
readonly name: PropertyName;
readonly initializer: Expression;
Expand All @@ -32,7 +32,7 @@ index ead6d07d8fb2af6aa74b790c9fd947f1062f6df4..f8dad7f06e74d7cfccfcd8fc9c5c7038
}
interface ShorthandPropertyAssignment extends ObjectLiteralElement, JSDocContainer {
readonly kind: SyntaxKind.ShorthandPropertyAssignment;
@@ -770,6 +776,12 @@ declare namespace ts {
@@ -5098,6 +5104,12 @@ declare namespace ts {
readonly name: Identifier;
readonly equalsToken?: EqualsToken;
readonly objectAssignmentInitializer?: Expression;
Expand All @@ -45,7 +45,7 @@ index ead6d07d8fb2af6aa74b790c9fd947f1062f6df4..f8dad7f06e74d7cfccfcd8fc9c5c7038
}
interface SpreadAssignment extends ObjectLiteralElement, JSDocContainer {
readonly kind: SyntaxKind.SpreadAssignment;
@@ -892,6 +904,8 @@ declare namespace ts {
@@ -5222,6 +5234,8 @@ declare namespace ts {
}
interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
readonly kind: SyntaxKind.FunctionType;
Expand All @@ -54,7 +54,7 @@ index ead6d07d8fb2af6aa74b790c9fd947f1062f6df4..f8dad7f06e74d7cfccfcd8fc9c5c7038
}
interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
readonly kind: SyntaxKind.ConstructorType;
@@ -4584,7 +4598,13 @@ declare namespace ts {
@@ -8978,7 +8992,13 @@ declare namespace ts {
function symbolName(symbol: Symbol): string;
function getNameOfJSDocTypedef(declaration: JSDocTypedefTag): Identifier | PrivateIdentifier | undefined;
function getNameOfDeclaration(declaration: Declaration | Expression | undefined): DeclarationName | undefined;
Expand All @@ -68,7 +68,7 @@ index ead6d07d8fb2af6aa74b790c9fd947f1062f6df4..f8dad7f06e74d7cfccfcd8fc9c5c7038
function getModifiers(node: HasModifiers): readonly Modifier[] | undefined;
/**
* Gets the JSDoc parameter tags for the node if present.
@@ -5110,7 +5130,13 @@ declare namespace ts {
@@ -9508,7 +9528,13 @@ declare namespace ts {
function isModuleName(node: Node): node is ModuleName;
function isBinaryOperatorToken(node: Node): node is BinaryOperatorToken;
function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T;
Expand Down
5 changes: 3 additions & 2 deletions package.json
Expand Up @@ -114,12 +114,13 @@
"ts-node": "10.7.0",
"tslint": "^6.1.3",
"tsx": "^3.12.7",
"typescript": ">=4.3.5 <5.3.0"
"typescript": ">=4.3.5 <5.4.0"
},
"resolutions": {
"@jest/create-cache-key-function": "^29",
"@jest/reporters": "^29",
"@jest/test-result": "^29",
"@microsoft/api-extractor@^7.38.0": "patch:@microsoft/api-extractor@npm%3A7.38.0#./.yarn/patches/@microsoft-api-extractor-npm-7.38.0-955f1e0725.patch",
"@swc/core-android-arm-eabi": "link:./tools/dummypkg",
"@swc/core-android-arm64": "link:./tools/dummypkg",
"@swc/core-freebsd-x64": "link:./tools/dummypkg",
Expand All @@ -140,7 +141,7 @@
"pretty-format": "^29",
"react-split-pane@^0.1.92": "patch:react-split-pane@npm%3A0.1.92#./.yarn/patches/react-split-pane-npm-0.1.92-93dbf51dff.patch",
"tsx": "^3.12.7",
"typescript": "patch:typescript@npm%3A5.2.2#./.yarn/patches/typescript-npm-5.2.2-01717e9f84.patch"
"typescript": "patch:typescript@npm%3A5.3.0-beta#./.yarn/patches/typescript-npm-5.3.0-beta-33b1e90865.patch"
},
"packageManager": "yarn@3.6.4"
}
2 changes: 1 addition & 1 deletion packages/ast-spec/package.json
Expand Up @@ -47,7 +47,7 @@
"@babel/core": "*",
"@babel/eslint-parser": "*",
"@babel/parser": "*",
"@microsoft/api-extractor": "^7.36.1",
"@microsoft/api-extractor": "^7.38.0",
"glob": "*",
"jest": "29.7.0",
"jest-diff": "^29.6.2",
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Expand Up @@ -12,8 +12,16 @@ export interface ExportAllDeclaration extends BaseNode {
* ```
* export * from 'mod' assert { type: 'json' };
* ```
* @deprecated -- Replaced with {@link `attributes`}.
*/
assertions: ImportAttribute[];
/**
* The attributes declared for the export.
* ```
* export * from 'mod' assert { type: 'json' };
* ```
*/
attributes: ImportAttribute[];
/**
* The name for the exported items. `null` if no name is assigned.
*/
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit b6c40b4

Please sign in to comment.