modernize misskey-reversi to target the same ES and TS standards as the rest of the app

This commit is contained in:
Hazelnoot 2025-10-05 23:58:38 -04:00
parent 5e873f5e1f
commit 7f2c3e244d
6 changed files with 83 additions and 39 deletions

View file

@ -61,7 +61,7 @@ function buildDts() {
return execa(
'tsc',
[
'--project', 'tsconfig.json',
'--project', 'tsconfig.game.json',
'--outDir', 'built',
'--declaration', 'true',
'--emitDeclarationOnly', 'true',

View file

@ -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,
},

View file

@ -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": {

View file

@ -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/**/*"
]
}

View file

@ -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" }
]
}

View file

@ -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"
]
}