feat: migrated packages to ts

This commit is contained in:
Haoyu Xu
2025-05-02 02:27:42 +08:00
parent 0af0c785d4
commit 8f6f537c81
111 changed files with 3166 additions and 1155 deletions

View File

@@ -3,6 +3,9 @@ import react from 'eslint-plugin-react'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import baseConfig from '@aklive2d/eslint-config'
import { tsConfig } from '@aklive2d/eslint-config'
import tseslint from 'typescript-eslint'
import globals from 'globals'
/** @type {import('eslint').Config} */
export default [
@@ -27,4 +30,21 @@ export default [
],
},
},
...tsConfig,
{
files: ['**/*.js', '**/*.ts'],
languageOptions: {
ecmaVersion: 2022,
globals: {
...globals.browser,
},
},
rules: {
'no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
'@typescript-eslint/no-unused-vars': [
'error',
{ argsIgnorePattern: '^_' },
],
},
},
]

View File

@@ -5,9 +5,9 @@
"type": "module",
"scripts": {
"dev:directory": "vite --clearScreen false",
"build": "mode=build node runner.js",
"build": "mode=build bun runner.ts",
"preview:directory": "vite preview",
"lint": "eslint \"src/**/*.js\" \"src/**/*.jsx\" && stylelint \"src/**/*.css\" \"src/**/*.scss\" && prettier --check ."
"lint": "eslint && stylelint \"src/**/*.css\" \"src/**/*.scss\" && prettier --check ."
},
"dependencies": {
"react": "^19.0.0",
@@ -28,6 +28,11 @@
"@aklive2d/module": "workspace:*",
"@aklive2d/prettier-config": "workspace:*"
},
"peerDependencies": {
"globals": ">=16.0.0",
"typescript-eslint": ">=8.31.1",
"typescript": ">=5.8.2"
},
"devDependencies": {
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",

View File

@@ -1,11 +1,15 @@
import path from 'node:path'
import { DIST_DIR } from '@aklive2d/showcase'
import { build as viteBuild } from 'vite'
import { envParser } from '@aklive2d/libs'
import { envParser, file } from '@aklive2d/libs'
const build = async (namesToBuild) => {
const build = async (namesToBuild: string[]) => {
if (!namesToBuild.length) {
// skip as directory can only build
// when all operators are built
await viteBuild()
const releaseDir = path.resolve(DIST_DIR)
file.rmdir(releaseDir)
}
}
@@ -18,7 +22,7 @@ async function main() {
default: [],
},
})
await build(name)
await build(name as string[])
}
main()

View File

@@ -192,7 +192,7 @@ export default function Home() {
>
{officialUpdate.dates
.reduce((acc, cur) => {
const op = officialUpdate[cur]
const op = officialUpdate.info[cur]
return [...acc, ...op]
}, [])
.slice(

View File

@@ -0,0 +1,25 @@
{
"compilerOptions": {
"target": "ES2024",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ES2024", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
},
"include": ["**/*"],
"exclude": ["spine-ts/**/*"]
}

View File

@@ -8,12 +8,12 @@ import { copyDirectoryData } from '@aklive2d/vite-helpers'
// https://vite.dev/config/
export default defineConfig(async () => {
const dataDir = path.resolve(import.meta.dirname, config.dir_name.data)
const publicDir = path.resolve(showcaseDirs.DIST_DIR)
await copyDirectoryData({ dataDir, publicDir })
const releaseDir = path.resolve(showcaseDirs.DIST_DIR)
await copyDirectoryData({ dataDir, publicDir: releaseDir })
return {
envDir: dataDir,
plugins: [react()],
publicDir,
publicDir: releaseDir,
resolve: {
alias: {
'@': path.resolve('./src'),
@@ -22,7 +22,12 @@ export default defineConfig(async () => {
},
build: {
emptyOutDir: false,
outDir: publicDir,
outDir: path.resolve(
import.meta.dirname,
'..',
'..',
config.dir_name.dist
),
rollupOptions: {
output: {
entryFileNames: `${config.directory.assets_dir}/[name]-[hash:8].js`,

View File

@@ -1,18 +1,15 @@
import eslint from '@eslint/js'
import { tsConfig } from '@aklive2d/eslint-config'
import tseslint from 'typescript-eslint'
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
import globals from 'globals'
/** @type {import('eslint').Config} */
export default tseslint.config(
eslint.configs.recommended,
tseslint.configs.recommended,
eslintPluginPrettierRecommended,
...tsConfig,
{
ignores: ['dist', 'spine-ts'],
},
{
files: ['**/*.{js,jsx}', '**/*.{ts,tsx}'],
files: ['**/*.js', '**/*.ts'],
languageOptions: {
ecmaVersion: 2022,
globals: {

View File

@@ -1,3 +1,4 @@
import { Player } from './src/player.ts'
import { Player, PlayerConfig } from './src/player.ts'
export { Player }
export type { PlayerConfig }

View File

@@ -6,13 +6,15 @@
"scripts": {
"lint": "eslint && prettier --check ."
},
"peerDependencies": {
"globals": ">=16.0.0",
"typescript-eslint": ">=8.31.1",
"typescript": ">=5.8.2"
},
"devDependencies": {
"@aklive2d/postcss-config": "workspace:*",
"@aklive2d/prettier-config": "workspace:*",
"@aklive2d/stylelint-config": "workspace:*",
"eslint-plugin-prettier": "^5.2.6",
"globals": "^16.0.0",
"typescript": "^5.8.3",
"typescript-eslint": "^8.31.1"
"@aklive2d/eslint-config": "workspace:*"
}
}

View File

@@ -1,3 +1,29 @@
import baseConfig from '@aklive2d/eslint-config'
import { tsConfig } from '@aklive2d/eslint-config'
import tseslint from 'typescript-eslint'
import globals from 'globals'
/** @type {import('eslint').Config} */
export default [...baseConfig, { ignores: ['src/libs/*'] }]
export default tseslint.config(
...baseConfig,
...tsConfig,
{
ignores: ['dist', 'spine-ts'],
},
{
files: ['**/*.js', '**/*.ts'],
languageOptions: {
ecmaVersion: 2022,
globals: {
...globals.browser,
},
},
rules: {
'no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
'@typescript-eslint/no-unused-vars': [
'error',
{ argsIgnorePattern: '^_' },
],
},
}
)

View File

@@ -12,5 +12,5 @@ export const DIST_DIR = path.resolve(
import.meta.dirname,
'..',
'..',
config.dir_name.dist
config.app.showcase.release
)

View File

@@ -3,12 +3,17 @@
"private": true,
"version": "0.0.0",
"type": "module",
"main": "index.js",
"main": "index.ts",
"scripts": {
"dev:showcase": "vite --clearScreen false",
"build": "mode=build node runner.js",
"build": "mode=build bun runner.ts",
"preview:showcase": "vite preview",
"lint": "eslint \"src/**/*.js\" && stylelint \"**/*.css\" && prettier --check ."
"lint": "eslint && prettier --check ."
},
"peerDependencies": {
"globals": ">=16.0.0",
"typescript-eslint": ">=8.31.1",
"typescript": ">=5.8.2"
},
"devDependencies": {
"vite": "^6.1.5",

View File

@@ -5,7 +5,7 @@ import { envParser, file } from '@aklive2d/libs'
import { copyShowcaseData, copyProjectJSON } from '@aklive2d/vite-helpers'
import * as dirs from './index.js'
const build = async (namesToBuild) => {
const build = async (namesToBuild: string[]) => {
const names = !namesToBuild.length ? Object.keys(operators) : namesToBuild
console.log('Generating assets for', names.length, 'operators')
for (const name of names) {
@@ -32,7 +32,7 @@ async function main() {
default: [],
},
})
await build(name)
await build(name as string[])
}
main()

View File

@@ -0,0 +1,25 @@
{
"compilerOptions": {
"target": "ES2024",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ES2024", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
},
"include": ["**/*"],
"exclude": ["spine-ts/**/*"]
}