commit 3d7135aa714b524cc395af022908f9418457fea6 Author: Alexander Zinn Date: Sat Oct 25 16:31:03 2025 -0400 Initial Commit 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..0ca8d2a --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +package-lock=false +save-exact=true diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..a45fd52 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +24 diff --git a/bunfig.toml b/bunfig.toml new file mode 100644 index 0000000..87cd753 --- /dev/null +++ b/bunfig.toml @@ -0,0 +1,17 @@ +telemetry = false + +[install] +optional = true +dev = true +peer = true +production = true +exact = true +auto = "auto" +registry = "https://registry.npmjs.org" +linker = "hoisted" + +[install.scopes] +"@techniker-me" = "https://npm.techniker.me" + +[install.lockfle] +save = false diff --git a/eslint.config.ts b/eslint.config.ts new file mode 100644 index 0000000..3448d84 --- /dev/null +++ b/eslint.config.ts @@ -0,0 +1,35 @@ +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..c48e142 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "platform-ts", + "module": "index.ts", + "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.13.0", + "@eslint/js": "9.38.0", + "@eslint/json": "0.13.2", + "@eslint/markdown": "7.5.0", + "@types/bun": "latest", + "eslint": "9.38.0", + "globals": "16.4.0", + "jiti": "2.6.1", + "prettier": "3.6.2", + "typescript-eslint": "8.46.2" + }, + "peerDependencies": { + "typescript": "5.9.3" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..bfa0fea --- /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, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +}