From fcce4fd81ecf3a6f98f22023ece8d9b980042697 Mon Sep 17 00:00:00 2001 From: Shane C Date: Tue, 23 Apr 2024 20:24:22 -0400 Subject: [PATCH] Added eslint --- bun.lockb | Bin 103147 -> 136098 bytes eslint.config.js | 43 +++++++++++++++++++++++++++++++++++++++++++ package.json | 11 ++++++++++- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 eslint.config.js diff --git a/bun.lockb b/bun.lockb index 100e759f25ef5c65bc379557e6cf0cb71b59da54..d61414342a776b22e03ff17cd3295826b78eb953 100755 GIT binary patch delta 38147 zcmeFaby!qi_dYyl1Y}SI0fix?L=mJxKqN%5KukbDR3v1S4iy9k8#|6Vc42pSfeChZ zV0U-E_d22Td>(z?@9%oQ*YEx3IT!b=y>_g<_TFp9IWwH~bcxoYW!jUR8%=gzl$~6A95keuf!tiq{nfmv<^KD45bpf;wML0D&yi9j*&=mQsNUc21q3R z6}d?{xu8g>C6N^O0@VdgLMfuzN%0A}PKumz@HN115#onblSpcVPtC~7OoB{J4L*N2 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%0DMDF&EvIijMX;;oJ`KAXc^49o-^4QPIF) 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 diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..4398c20 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,43 @@ +import js from "@eslint/js"; +import ts from 'typescript-eslint'; +import tsEslintParser from "@typescript-eslint/parser"; +import tsEslint from "@typescript-eslint/eslint-plugin"; +import globals from "globals"; + +export default ts.config( + js.configs.recommended, + ...ts.configs.recommended, + { + languageOptions: { + parser: tsEslintParser, + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020 + }, + globals: { + ...globals.browser, + ...globals.es2021, + ...globals.node, + }, + }, + plugins: { + tseslint: tsEslint, + }, + ignores: [ + ".DS_Store", + "node_modules", + "/dist", + "/cmd", + "/utils", + "/package", + "/build", + ".env", + ".env.*", + "!.env.example", + "pnpm-lock.yaml", + "package-lock.json", + "yarn.lock", + "bun.lockb", + ], + } +); \ No newline at end of file diff --git a/package.json b/package.json index 8d67554..8d1514f 100644 --- a/package.json +++ b/package.json @@ -2,13 +2,20 @@ "name": "shadow", "type": "module", "scripts": { - "dev": "bun run vite build --watch" + "dev": "bun run vite build --watch", + "lint": "eslint .", + "lint:fix": "eslint . --fix" }, "devDependencies": { "@types/bun": "latest", + "@types/eslint": "^8.56.10", + "@typescript-eslint/eslint-plugin": "^7.7.1", + "@typescript-eslint/parser": "^7.7.1", "autoprefixer": "^10.4.19", "daisyui": "^4.10.2", + "eslint": "^9.1.1", "glob": "^10.3.12", + "globals": "^15.0.0", "postcss": "^8.4.38", "tailwindcss": "^3.4.3", "ts-node": "^10.9.2", @@ -18,7 +25,9 @@ "typescript": "^5.0.0" }, "dependencies": { + "@eslint/js": "^9.1.1", "sharp": "^0.33.3", + "typescript-eslint": "^7.7.1", "vite-plugin-image-optimizer": "^1.1.7", "vitest": "^1.5.0" }