Skip to content

Commit 642dd2e

Browse files
committed
Update to TS 5.0, still missing new feature support
Closes #2202
1 parent 88341e0 commit 642dd2e

File tree

8 files changed

+434
-422
lines changed

8 files changed

+434
-422
lines changed

package-lock.json

Lines changed: 396 additions & 402 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,24 @@
3131
"shiki": "^0.14.1"
3232
},
3333
"peerDependencies": {
34-
"typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x"
34+
"typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x"
3535
},
3636
"devDependencies": {
3737
"@types/lunr": "^2.3.4",
3838
"@types/marked": "^4.0.8",
3939
"@types/mocha": "^10.0.1",
4040
"@types/node": "14",
41-
"@typescript-eslint/eslint-plugin": "^5.51.0",
42-
"@typescript-eslint/parser": "^5.51.0",
41+
"@typescript-eslint/eslint-plugin": "^5.55.0",
42+
"@typescript-eslint/parser": "^5.55.0",
4343
"@typestrong/fs-fixture-builder": "github:TypeStrong/fs-fixture-builder#5a9486bc66f6e36988106685768396281f6cbc10",
44-
"c8": "^7.12.0",
45-
"esbuild": "^0.17.7",
46-
"eslint": "^8.34.0",
44+
"c8": "^7.13.0",
45+
"esbuild": "^0.17.12",
46+
"eslint": "^8.36.0",
4747
"mocha": "^10.2.0",
4848
"prettier": "2.8.4",
4949
"puppeteer": "^13.5.2",
5050
"ts-node": "^10.9.1",
51-
"typescript": "4.9.5"
51+
"typescript": "5.0.2"
5252
},
5353
"files": [
5454
"/bin",

src/lib/converter/symbols.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1021,8 +1021,11 @@ function setModifiers(
10211021
);
10221022
reflection.setFlag(
10231023
ReflectionFlag.Readonly,
1024-
hasAllFlags(symbol.checkFlags ?? 0, ts.CheckFlags.Readonly) ||
1025-
hasAllFlags(modifiers, ts.ModifierFlags.Readonly)
1024+
hasAllFlags(
1025+
// TS 4.9: symbol.checkFlags, links was introduced in 5.0
1026+
symbol.checkFlags ?? symbol.links?.checkFlags ?? 0,
1027+
ts.CheckFlags.Readonly
1028+
) || hasAllFlags(modifiers, ts.ModifierFlags.Readonly)
10261029
);
10271030
reflection.setFlag(
10281031
ReflectionFlag.Abstract,

src/lib/types/ts-internal/index.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,15 @@ declare module "typescript" {
1010
}
1111

1212
interface Symbol {
13+
// TS before 5.0
1314
// https://github.com/microsoft/TypeScript/blob/v4.1.5/src/compiler/types.ts#L4734-L4737
1415
checkFlags?: CheckFlags;
16+
17+
// TS 5.0
18+
// https://github.com/microsoft/TypeScript/blob/5.0.2/src/compiler/types.ts#L5891-L5898
19+
links?: {
20+
checkFlags: CheckFlags;
21+
};
1522
}
1623

1724
interface TypeChecker {

src/lib/utils/entry-point.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,8 @@ function getEntryPointsForPackages(
411411
return;
412412
}
413413

414+
const packageName = packageJson["name"] as string;
415+
414416
if (includeVersion && !validate({ version: String }, packageJson)) {
415417
logger.warn(
416418
`--includeVersion was specified, but "${nicePath(
@@ -420,9 +422,7 @@ function getEntryPointsForPackages(
420422
}
421423

422424
results.push({
423-
displayName:
424-
typedocPackageConfig?.displayName ??
425-
(packageJson["name"] as string),
425+
displayName: typedocPackageConfig?.displayName ?? packageName,
426426
version: includeVersion
427427
? (packageJson["version"] as string | undefined)
428428
: void 0,

src/lib/utils/package-manifest.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,18 +63,21 @@ export function extractTypedocConfigFromPackageManifest(
6363
}
6464
if (
6565
hasOwnProperty(packageJson, "typedoc") &&
66-
typeof packageJson.typedoc == "object" &&
67-
packageJson.typedoc
66+
typeof packageJson["typedoc"] == "object" &&
67+
packageJson["typedoc"]
6868
) {
6969
if (
70-
!validate(typedocPackageManifestConfigSchema, packageJson.typedoc)
70+
!validate(
71+
typedocPackageManifestConfigSchema,
72+
packageJson["typedoc"]
73+
)
7174
) {
7275
logger.error(
7376
`Typedoc config extracted from package manifest file ${packageJsonPath} is not valid`
7477
);
7578
return undefined;
7679
}
77-
return packageJson.typedoc;
80+
return packageJson["typedoc"];
7881
}
7982
return undefined;
8083
}

src/test/converter2/issues/gh2044/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export { other } from "./other";
55

66
/**
77
* @typedef {import("./other").Generic<T>} Generic
8-
* @template T
8+
* @template {string} T
99
*/
1010

1111
/**

tsconfig.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@
2121
"noUnusedLocals": true,
2222
"noUnusedParameters": true,
2323
"forceConsistentCasingInFileNames": true,
24-
"importsNotUsedAsValues": "error",
2524
// Library
2625
"preserveConstEnums": true,
2726
"declaration": true,
2827
"sourceMap": true,
29-
"isolatedModules": true,
3028
"noImplicitOverride": true,
3129
"noPropertyAccessFromIndexSignature": true,
3230
// Output
@@ -35,7 +33,14 @@
3533
"newLine": "LF",
3634
"jsx": "react",
3735
"jsxFactory": "JSX.createElement",
38-
"jsxFragmentFactory": "JSX.Fragment"
36+
"jsxFragmentFactory": "JSX.Fragment",
37+
38+
// TS 5 introduced verbatimModuleSyntax and deprecated importsNotUsedAsValues
39+
// But that flag is intentionally very unfriendly to projects emitting CommonJS
40+
// so for now, we're going to ignore that deprecation.
41+
"ignoreDeprecations": "5.0",
42+
"importsNotUsedAsValues": "error",
43+
"isolatedModules": true
3944
},
4045
"include": ["src"],
4146
"exclude": [

0 commit comments

Comments
 (0)