chore: implement basic build system

This commit is contained in:
2025-06-24 19:32:00 +02:00
parent e603b4972a
commit 8b3c059210
16 changed files with 1266 additions and 0 deletions

11
.editorconfig Normal file
View File

@@ -0,0 +1,11 @@
# EditorConfig is awesome: https://EditorConfig.org
root = true
[*]
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

6
.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
/node_modules/
/.turbo/
/pkgs/*/node_modules/
/pkgs/*/dist/
/pkgs/*/.turbo/

1
.prettierignore Normal file
View File

@@ -0,0 +1 @@
/pnpm-lock.yaml

3
.prettierrc.json Normal file
View File

@@ -0,0 +1,3 @@
{
"singleQuote": false
}

17
eslint.config.mjs Normal file
View File

@@ -0,0 +1,17 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import { defineConfig } from "eslint/config";
export default defineConfig([
{
files: ["**/*.{js,mjs,cjs,ts,mts,cts}"],
plugins: { js },
extends: ["js/recommended"],
},
{
files: ["**/*.{js,mjs,cjs,ts,mts,cts}"],
languageOptions: { globals: { ...globals.browser, ...globals.node } },
},
tseslint.configs.recommended,
]);

16
package.json Normal file
View File

@@ -0,0 +1,16 @@
{
"packageManager": "pnpm@10.12.1",
"scripts": {
"build": "turbo run build"
},
"dependencies": {
"@eslint/js": "^9.29.0",
"@types/node": "^24.0.4",
"eslint": "^9.29.0",
"globals": "^16.2.0",
"prettier": "^3.6.0",
"turbo": "^2.5.4",
"typescript": "^5.8.3",
"typescript-eslint": "^8.35.0"
}
}

9
pkgs/solver/package.json Normal file
View File

@@ -0,0 +1,9 @@
{
"name": "@pow-captcha/solver",
"version": "0.0.0",
"module": "dist/lib.js",
"types": "dist/lib.d.ts",
"scripts": {
"build": "tsc -p tsconfig.build.json"
}
}

3
pkgs/solver/src/lib.ts Normal file
View File

@@ -0,0 +1,3 @@
export function solve(): void {
}

View File

@@ -0,0 +1,8 @@
{
"extends": "../../tsconfig.build.json",
"compilerOptions": {
"outDir": "dist"
},
"include": ["src/**/*"],
"exclude": ["**/*.spec.ts"]
}

View File

@@ -0,0 +1,4 @@
{
"extends": "../../tsconfig.base.json",
"include": ["src/**/*"]
}

1137
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

2
pnpm-workspace.yaml Normal file
View File

@@ -0,0 +1,2 @@
packages:
- "pkgs/*"

15
tsconfig.base.json Normal file
View File

@@ -0,0 +1,15 @@
{
"compilerOptions": {
"incremental": true,
"declaration": true,
"noEmit": true,
"resolveJsonModule": true,
"strict": true,
"noUncheckedIndexedAccess": true,
/* Experimental Options */
"experimentalDecorators": true,
"emitDecoratorMetadata": false
}
}

12
tsconfig.build.json Normal file
View File

@@ -0,0 +1,12 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"incremental": false,
"noEmit": false,
"target": "es2020",
"module": "es2020",
"moduleResolution": "bundler",
"sourceMap": true,
"declarationMap": true
}
}

4
tsconfig.json Normal file
View File

@@ -0,0 +1,4 @@
{
"extends": "./tsconfig.base.json",
"include": ["**/*", ".*.js"]
}

18
turbo.json Normal file
View File

@@ -0,0 +1,18 @@
{
"$schema": "https://turbo.build/schema.json",
"tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", "tsconfig.tsbuildinfo"]
}
},
"globalDependencies": [
".eslintrc.js",
".eslintignore",
".lintstagedrc.js",
".prettierrc.yaml",
"tsconfig.base.json",
"tsconfig.build.json",
"tsconfig.json"
]
}