diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..a099272 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +bun.lockb -diff diff --git a/README.md b/README.md index 98d2f99..befb778 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,12 @@ My personal website! -## Build +## Build and develop ```bash bun install --global netlify-cli bun i --ignore-scripts -netlify run +netlify dev ``` ## Environment variables diff --git a/bun.lockb b/bun.lockb index f046faa..f682579 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/eslint.config.js b/eslint.config.js deleted file mode 100644 index 28d0c25..0000000 --- a/eslint.config.js +++ /dev/null @@ -1,48 +0,0 @@ -import globals from "globals"; -import pluginReactConfig from "eslint-plugin-react/configs/recommended.js"; - -import path from "path"; -import { fileURLToPath } from "url"; -import { FlatCompat } from "@eslint/eslintrc"; -import pluginJs from "@eslint/js"; - -// mimic CommonJS variables -- not needed if using CommonJS -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); -const compat = new FlatCompat({baseDirectory: __dirname, recommendedConfig: pluginJs.configs.recommended}); - -export default [ - ...compat.extends("xo-typescript"), - pluginReactConfig, - { - files: [ - "**/*.ts", - "**/*.tsx" - ], - languageOptions: { - globals: globals.node - }, - settings: { - react: { - version: "detect" - } - }, - rules: { - quotes: "off", - "@typescript-eslint/quotes": ["error", "double"], - indent: "off", - "@typescript-eslint/indent": ["error", 2], - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/dot-notation": "off", - "react/no-unescaped-entities": "off", - }, - }, - { - ignores: [ - ".netlify/*", - "dist/*", - "*.js", - "*.cjs" - ], - } -]; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..66450c2 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,38 @@ +import pluginReactConfig from "eslint-plugin-react/configs/recommended.js"; +import react from "eslint-plugin-react"; +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import stylisticTs from '@stylistic/eslint-plugin-ts' + +/** + * Rules to consider: + * + * "@typescript-eslint/no-unsafe-assignment": "off", + * "@typescript-eslint/dot-notation": "off", + */ + +export default tseslint.config( + pluginReactConfig, + eslint.configs.recommended, + ...tseslint.configs.recommended, + { + plugins: { + "@stylistic/ts": stylisticTs, + react, + }, + rules: { + "@stylistic/ts/quotes": ["error", "double"], + "@stylistic/ts/indent": ["error", 2], + "react/no-unescaped-entities": "off", + } + }, + { + ignores: [ + ".netlify/*", + "dist/*", + "*.js", + "*.cjs", + "*.mjs", + ], + } +) diff --git a/package.json b/package.json index dfc2d5d..954f88a 100644 --- a/package.json +++ b/package.json @@ -7,35 +7,34 @@ "lint:fix": "bunx eslint . --fix" }, "dependencies": { - "@carbon/icons-react": "^11.40.0", - "@netlify/functions": "^2.6.3", + "@carbon/icons-react": "^11.52.0", + "@netlify/functions": "^2.8.2", "@octokit/rest": "^20.1.1", - "mongodb": "^6.6.0", - "osu-api-v2-js": "^1.0.3", - "react": "^19.0.0-beta-1beb73de0f-20240503", - "react-dom": "^19.0.0-beta-1beb73de0f-20240503", + "mongodb": "^6.10.0", + "osu-api-v2-js": "^1.1.0", + "react": "^19.0.0-rc-fb9a90fa48-20240614", + "react-dom": "^19.0.0-rc-fb9a90fa48-20240614", "timeago.js": "^4.0.2" }, "devDependencies": { - "@eslint/eslintrc": "^3.0.2", - "@eslint/js": "^9.1.1", - "@tailwindcss/forms": "^0.5.7", - "@types/node": "^20.10.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.13.0", + "@stylistic/eslint-plugin-ts": "^2.9.0", + "@tailwindcss/forms": "^0.5.9", + "@types/node": "^20.17.3", "@types/react": "npm:types-react@beta", "@types/react-dom": "npm:types-react-dom@beta", - "@typescript-eslint/eslint-plugin": ">=7.0.2", - "@typescript-eslint/parser": ">=7.0.2", - "@vitejs/plugin-react": "^4.2.0", - "autoprefixer": "^10.4.16", - "eslint": "8.56.0", - "eslint-config-xo-typescript": "^4.0.0", - "eslint-plugin-react": "^7.34.1", - "globals": "^15.0.0", - "postcss": "^8.4.31", + "@vitejs/plugin-react": "^4.3.3", + "autoprefixer": "^10.4.20", + "eslint": "^9.13.0", + "eslint-config-xo-typescript": "^7.0.0", + "eslint-plugin-react": "^7.37.2", + "postcss": "^8.4.47", "react-animate-height": "^3.2.3", - "tailwindcss": "^3.3.5", - "typescript": ">=5.0.0", - "vite": "^5.0.3" + "tailwindcss": "^3.4.14", + "typescript": "^5.6.3", + "typescript-eslint": "^8.12.2", + "vite": "^5.4.10" }, "type": "module" } diff --git a/tailwind.config.js b/tailwind.config.js index aa36ad3..9beafba 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,16 +1,14 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { +export default { content: [ "./src/**/*.{js,ts,jsx,tsx,mdx}" ], theme: { - extend: { - - }, + extend: { + + }, }, plugins: [ - require("@tailwindcss/forms") + ], important: false } -