feat: add TypeScript configuration and initial config file

- Created a new TypeScript configuration file (tsconfig.json) with recommended settings for a Node.js environment.
- Added an initial configuration file (config.ts) to the src/config directory.
This commit is contained in:
2026-01-12 19:06:49 +03:00
parent 6e135d5e0a
commit 9ced4b518b
7 changed files with 2630 additions and 1 deletions
+71
View File
@@ -0,0 +1,71 @@
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
package-lock.json.tmp
*.tgz
# Environment files
.env
.env.*.local
.env.local
.env.test
.env.production
# Logs
logs/
*.log
jest*.log
*.out
# Runtime data
pids/
*.pid
*.seed
*.pid.lock
*.sock
# Coverage
coverage/
*.lcov
.nyc_output/
# Build / dependency output
dist/
build/
out/
.tmp/
.tmp-*
.cache/
.vite/
.parcel-cache/
.next/
.nuxt/
.serverless/
.expo/
# TypeScript
*.tsbuildinfo
# ESLint, Babel, Metro & other caches
.eslintcache
.babel.json
babel.config.js.map
# IDEs and editors
.idea/
.vscode/
*.sublime-project
*.sublime-workspace
# OS files
.DS_Store
Thumbs.db
# Misc
*.local
*.log.*
*.bak
*.swp
+4
View File
@@ -0,0 +1,4 @@
{
"tabWidth": 2,
"useTabs": false
}
+34
View File
@@ -0,0 +1,34 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import json from "@eslint/json";
import markdown from "@eslint/markdown";
import { defineConfig } from "eslint/config";
export default defineConfig([
{
files: ["**/*.{js,mjs,cjs,ts,mts,cts}"],
plugins: { js },
extends: ["js/recommended"],
languageOptions: { globals: globals.node },
},
tseslint.configs.recommended,
{
files: ["**/*.json"],
plugins: { json },
language: "json/json",
extends: ["json/recommended"],
},
{
files: ["**/*.jsonc"],
plugins: { json },
language: "json/jsonc",
extends: ["json/recommended"],
},
{
files: ["**/*.md"],
plugins: { markdown },
language: "markdown/commonmark",
extends: ["markdown/recommended"],
},
]);
+19 -1
View File
@@ -9,5 +9,23 @@
"keywords": [],
"author": "",
"license": "ISC",
"packageManager": "[email protected]"
"packageManager": "[email protected]",
"dependencies": {
"dotenv": "^17.2.3",
"express": "^5.2.1"
},
"devDependencies": {
"@eslint/js": "^9.39.2",
"@eslint/json": "^0.14.0",
"@eslint/markdown": "^7.5.1",
"@types/express": "^5.0.6",
"@types/node": "^25.0.6",
"eslint": "^9.39.2",
"globals": "^17.0.0",
"nodemon": "^3.1.11",
"prettier": "^3.7.4",
"ts-node": "^10.9.2",
"typescript": "^5.9.3",
"typescript-eslint": "^8.52.0"
}
}
+2455
View File
File diff suppressed because it is too large Load Diff
View File
+47
View File
@@ -0,0 +1,47 @@
{
// Visit https://aka.ms/tsconfig to read more about this file
"compilerOptions": {
// File Layout
"rootDir": "./src",
// "outDir": "./dist",
// Environment Settings
// See also https://aka.ms/tsconfig/module
"module": "nodenext",
"target": "esnext",
"types": [],
// For nodejs:
// "lib": ["esnext"],
// "types": ["node"],
// and npm install -D @types/node
// Other Outputs
"sourceMap": true,
"declaration": true,
"declarationMap": true,
// Stricter Typechecking Options
"noUncheckedIndexedAccess": true,
"exactOptionalPropertyTypes": true,
// Style Options
// "noImplicitReturns": true,
// "noImplicitOverride": true,
// "noUnusedLocals": true,
// "noUnusedParameters": true,
// "noFallthroughCasesInSwitch": true,
// "noPropertyAccessFromIndexSignature": true,
// Recommended Options
"strict": true,
"jsx": "react-jsx",
"verbatimModuleSyntax": true,
"isolatedModules": true,
"noUncheckedSideEffectImports": true,
"moduleDetection": "force",
"skipLibCheck": true
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}