modernize misskey-bubble-game 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:50 -04:00
parent 7f2c3e244d
commit d08bb5c82f
8 changed files with 64 additions and 52 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,33 +6,33 @@ export default [
...sharedConfig,
{
ignores: [
'**/node_modules',
'built',
'coverage',
'jest.config.ts',
'test',
'test-d',
"**/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,
},
},
},
{
ignores: [
"**/lib/",
"**/temp/",
"**/built/",
"**/coverage/",
"**/node_modules/",
"*.*",
]
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

@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { DropAndFusionGame, Mono } from './game.js';
import { DropAndFusionGame, type Mono } from './game.js';
export {
DropAndFusionGame,

View file

@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { Mono } from './game.js';
import type { Mono } from './game.js';
const NORMAL_BASE_SIZE = 32;
export const NORAML_MONOS: Mono[] = [{

View file

@ -0,0 +1,16 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "../shared/tsconfig.web.json",
"compilerOptions": {
"outDir": "./built/",
"typeRoots": [
"./node_modules/@types"
],
},
"include": [
"./src/**/*.ts"
],
"exclude": [
"node_modules"
]
}

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