From ab34b614dd258d18db375ed7cd5b8230b876472a Mon Sep 17 00:00:00 2001 From: Alexander Zinn Date: Fri, 21 Nov 2025 02:38:36 -0500 Subject: [PATCH] Initial Commit * Initialize project with essential configuration files including ** .gitignore ** .npmrc ** .nvmrc ** .prettierrc ** bunfig.toml ** eslint.config.ts ** package.json ** README.md ** tsconfig.json --- .gitignore | 34 ++++++++++++++++++++++++++++++++++ .npmrc | 3 +++ .nvmrc | 0 .prettierrc | 12 ++++++++++++ README.md | 1 + bunfig.toml | 8 ++++++++ eslint.config.ts | 15 +++++++++++++++ package.json | 28 ++++++++++++++++++++++++++++ tsconfig.json | 29 +++++++++++++++++++++++++++++ 9 files changed, 130 insertions(+) create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .nvmrc create mode 100644 .prettierrc create mode 100644 README.md create mode 100644 bunfig.toml create mode 100644 eslint.config.ts create mode 100644 package.json create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a14702c --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# dependencies (bun install) +node_modules + +# output +out +dist +*.tgz + +# code coverage +coverage +*.lcov + +# logs +logs +_.log +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# caches +.eslintcache +.cache +*.tsbuildinfo + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..ba4055d --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +package-lock=false +save-exact=true +@techniker-me:registry=https://npm.techniker.me diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..e69de29 diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..5e87b44 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,12 @@ +{ + "arrowParens": "avoid", + "bracketSameLine": true, + "bracketSpacing": false, + "printWidth": 180, + "semi": true, + "singleAttributePerLine": false, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "none", + "useTabs": false +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..a3ec39a --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# speedtest diff --git a/bunfig.toml b/bunfig.toml new file mode 100644 index 0000000..be17e90 --- /dev/null +++ b/bunfig.toml @@ -0,0 +1,8 @@ +[install] +exact = true + +[install.lockfile] +save = false + +[install.scopes] +"@techniker-me" = "https://npm.techniker.me" diff --git a/eslint.config.ts b/eslint.config.ts new file mode 100644 index 0000000..900f136 --- /dev/null +++ b/eslint.config.ts @@ -0,0 +1,15 @@ +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 css from '@eslint/css'; +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: ['**/*.md'], plugins: {markdown}, language: 'markdown/commonmark', extends: ['markdown/recommended']}, + {files: ['**/*.css'], plugins: {css}, language: 'css/css', extends: ['css/recommended']} +]); diff --git a/package.json b/package.json new file mode 100644 index 0000000..a6a9c3b --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "speedtest", + "version": "0.0.0", + "author": "Alexander Zinn", + "type": "module", + "private": true, + "scripts": { + "format": "prettier --write .", + "lint": "eslint --max-warnings 0 './src'", + "prelint:fix": "bun run format", + "lint:fix": "eslint --fix './src'" + }, + "devDependencies": { + "@eslint/css": "0.14.1", + "@eslint/js": "9.39.1", + "@eslint/json": "0.14.0", + "@eslint/markdown": "7.5.1", + "@types/bun": "latest", + "eslint": "9.39.1", + "globals": "16.5.0", + "jiti": "2.6.1", + "prettier": "3.6.2", + "typescript-eslint": "8.47.0" + }, + "dependencies": { + "@techniker-me/logger": "0.0.15" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..5365ad0 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + // Environment setup & latest features + "lib": ["ESNext"], + "target": "ESNext", + "module": "Preserve", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "noUnusedParameters": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noPropertyAccessFromIndexSignature": false + } +}