From 7f2c3e244d67ef0bf7c70290121a01202b2899fe Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Sun, 5 Oct 2025 23:58:38 -0400 Subject: [PATCH] modernize misskey-reversi to target the same ES and TS standards as the rest of the app --- packages/misskey-reversi/build.js | 2 +- packages/misskey-reversi/eslint.config.js | 23 +++++++++--- packages/misskey-reversi/package.json | 7 ++-- packages/misskey-reversi/tsconfig.game.json | 35 ++++++++++++++++++ packages/misskey-reversi/tsconfig.json | 36 +++---------------- .../misskey-reversi/tsconfig.scripts.json | 19 ++++++++++ 6 files changed, 83 insertions(+), 39 deletions(-) create mode 100644 packages/misskey-reversi/tsconfig.game.json create mode 100644 packages/misskey-reversi/tsconfig.scripts.json diff --git a/packages/misskey-reversi/build.js b/packages/misskey-reversi/build.js index 93a695e649..9db946ed8d 100644 --- a/packages/misskey-reversi/build.js +++ b/packages/misskey-reversi/build.js @@ -61,7 +61,7 @@ function buildDts() { return execa( 'tsc', [ - '--project', 'tsconfig.json', + '--project', 'tsconfig.game.json', '--outDir', 'built', '--declaration', 'true', '--emitDeclarationOnly', 'true', diff --git a/packages/misskey-reversi/eslint.config.js b/packages/misskey-reversi/eslint.config.js index a5adcb7c07..35f5ebc921 100644 --- a/packages/misskey-reversi/eslint.config.js +++ b/packages/misskey-reversi/eslint.config.js @@ -6,17 +6,30 @@ export default [ ...sharedConfig, { ignores: [ - '**/node_modules', - 'built', - '*.*', + '**/lib/', + '**/temp/', + '**/built/', + '**/coverage/', + '**/node_modules/', ], }, { - files: ['**/*.ts', '**/*.tsx'], + files: ['src/**/*.ts', 'src/**/*.tsx'], languageOptions: { parserOptions: { parser: tsParser, - project: ['./tsconfig.json'], + project: ['./tsconfig.game.json'], + sourceType: 'module', + tsconfigRootDir: import.meta.dirname, + }, + }, + }, + { + files: ['*.js', '*.ts'], + languageOptions: { + parserOptions: { + parser: tsParser, + project: ['./tsconfig.scripts.json'], sourceType: 'module', tsconfigRootDir: import.meta.dirname, }, diff --git a/packages/misskey-reversi/package.json b/packages/misskey-reversi/package.json index 16152029ec..f0d502ae13 100644 --- a/packages/misskey-reversi/package.json +++ b/packages/misskey-reversi/package.json @@ -17,8 +17,11 @@ "scripts": { "build": "node ./build.js", "watch": "nodemon -w package.json -e json --exec \"node ./build.js --watch\"", - "eslint": "eslint --quiet \"{src,test,js,@types}/**/*.{js,jsx,ts,tsx,vue}\" --cache", - "typecheck": "tsc --noEmit", + "eslint": "eslint --quiet --cache -c eslint.config.js .", + "typecheck-all": "pnpm run --no-bail typecheck:game && pnpm run --no-bail typecheck:scripts", + "typecheck": "pnpm run typecheck:game && pnpm run typecheck:scripts", + "typecheck:game": "tsc -p tsconfig.game.json --noEmit", + "typecheck:scripts": "tsc -p tsconfig.scripts.json --noEmit", "lint": "pnpm typecheck && pnpm eslint" }, "devDependencies": { diff --git a/packages/misskey-reversi/tsconfig.game.json b/packages/misskey-reversi/tsconfig.game.json new file mode 100644 index 0000000000..10434b0b27 --- /dev/null +++ b/packages/misskey-reversi/tsconfig.game.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "target": "ES2022", + "module": "nodenext", + "moduleResolution": "nodenext", + "declaration": true, + "declarationMap": true, + "sourceMap": false, + "outDir": "./built/", + "removeComments": true, + "strict": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "experimentalDecorators": true, + "noImplicitReturns": true, + "esModuleInterop": true, + "skipLibCheck": true, + "incremental": true, + "typeRoots": [ + "./node_modules/@types" + ], + "lib": [ + "ES2022", + "dom" + ] + }, + "include": [ + "./src/**/*.ts" + ], + "exclude": [ + "node_modules", + "./test/**/*" + ] +} diff --git a/packages/misskey-reversi/tsconfig.json b/packages/misskey-reversi/tsconfig.json index 39d541ef5e..c5dc2aa4de 100644 --- a/packages/misskey-reversi/tsconfig.json +++ b/packages/misskey-reversi/tsconfig.json @@ -1,35 +1,9 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "target": "ES2022", - "module": "nodenext", - "moduleResolution": "nodenext", - "declaration": true, - "declarationMap": true, - "sourceMap": false, - "outDir": "./built/", - "removeComments": true, - "strict": true, - "strictFunctionTypes": true, - "strictNullChecks": true, - "experimentalDecorators": true, - "noImplicitReturns": true, - "esModuleInterop": true, - "skipLibCheck": true, - "incremental": true, - "typeRoots": [ - "./node_modules/@types" - ], - "lib": [ - "esnext", - "dom" - ] - }, - "include": [ - "./src/**/*.ts" - ], - "exclude": [ - "node_modules", - "./test/**/*" + "files": [], + // WebStorm only reads one tsconfig per directory, so this tricks it into loading both. + "references": [ + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.game.json" } ] } diff --git a/packages/misskey-reversi/tsconfig.scripts.json b/packages/misskey-reversi/tsconfig.scripts.json new file mode 100644 index 0000000000..e001a2139d --- /dev/null +++ b/packages/misskey-reversi/tsconfig.scripts.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../shared/tsconfig.node.json", + "compilerOptions": { + "noImplicitAny": false, + "typeRoots": [ + "./node_modules/@types", + "./node_modules", + "./src/@types" + ] + }, + "include": [ + "*.ts", + "*.js" + ], + "exclude": [ + "node_modules" + ] +}