From 4a9f582ad8fdc95e1ad6ff2a2c22b6337c69118b Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Thu, 2 Jan 2025 17:01:39 -0600 Subject: [PATCH] Migrate to bun and eslint. --- .gitignore | 1 + bun.lockb | Bin 0 -> 92985 bytes eslint.config.mjs | 54 ++++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 29 ------------------------- package.json | 7 ++++-- tsconfig.json | 2 +- 6 files changed, 61 insertions(+), 32 deletions(-) create mode 100755 bun.lockb create mode 100644 eslint.config.mjs delete mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index b46e1b5..c01143a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ dist/ *.sw? +.lvimrc diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..2a53d04cc09af891f7475bf05c9da714d519e449 GIT binary patch literal 92985 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 V`vZFH07Ak1$iZ&8`9Jud{|6z7)u;df literal 0 HcmV?d00001 diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..0d3cf6b --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,54 @@ +import importPlugin from 'eslint-plugin-import' +import tsParser from '@typescript-eslint/parser' +import eslintJs from '@eslint/js' +import eslintTs from 'typescript-eslint' + +const tsFiles = ['src/**/*.ts'] + +const customTypescriptConfig = { + files: tsFiles, + plugins: { + import: importPlugin, + 'import/parsers': tsParser, + }, + languageOptions: { + parser: tsParser, + parserOptions: { + project: './tsconfig.json', + }, + }, + settings: { + 'import/parsers': { + '@typescript-eslint/parser': ['.ts'], + }, + }, + rules: { + 'linebreak-style': ['error', 'unix'], + quotes: ['error', 'single', { avoidEscape: true }], + }, +} + +const recommendedTypeScriptConfigs = [ + ...eslintTs.configs.recommended.map((config) => ({ + ...config, + files: tsFiles, + })), + ...eslintTs.configs.stylistic.map((config) => ({ + ...config, + files: tsFiles, + })), +] + +export default [ + { + ignores: [ + 'docs/*', + 'build/*', + 'lib/*', + 'dist/*', + ], + }, // global ignores + eslintJs.configs.recommended, + ...recommendedTypeScriptConfigs, + customTypescriptConfig, +] diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index c41a9de..0000000 --- a/package-lock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@jdbernard/logging", - "version": "1.1.5", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@jdbernard/logging", - "version": "1.1.4", - "license": "GPL-3.0", - "devDependencies": { - "typescript": "^5.0.4" - } - }, - "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - } - } -} diff --git a/package.json b/package.json index 81082fa..a9d9f19 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ ], "scripts": { "build": "tsc", - "prepare": "npm run build", + "prepare": "bun run build", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { @@ -23,6 +23,9 @@ "author": "Jonathan Bernard", "license": "GPL-3.0", "devDependencies": { - "typescript": "^5.0.4" + "@typescript-eslint/parser": "^8.19.0", + "eslint-plugin-import": "^2.31.0", + "typescript": "^5.0.4", + "typescript-eslint": "^8.19.0" } } diff --git a/tsconfig.json b/tsconfig.json index c2fe667..68a7856 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "module": "commonjs", - "target": "es6", + "target": "es2016", "declaration": true, "outDir": "./dist", "strict": true,