Clean up eslint issues

This commit is contained in:
Evan Fiordeliso 2025-06-30 22:11:39 -04:00
parent ad990dae8a
commit d92ee41a91
13 changed files with 254 additions and 250 deletions

View File

@ -1,3 +0,0 @@
node_modules/
main.js

View File

@ -1,23 +0,0 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"env": { "node": true },
"plugins": [
"@typescript-eslint"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
"parserOptions": {
"sourceType": "module"
},
"rules": {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error", { "args": "none" }],
"@typescript-eslint/ban-ts-comment": "off",
"no-prototype-builtins": "off",
"@typescript-eslint/no-empty-function": "off"
}
}

60
eslint.config.mjs Normal file
View File

@ -0,0 +1,60 @@
import { defineConfig, globalIgnores } from "eslint/config";
import typescriptEslint from "@typescript-eslint/eslint-plugin";
import globals from "globals";
import tsParser from "@typescript-eslint/parser";
import path from "node:path";
import { fileURLToPath } from "node:url";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all,
});
export default defineConfig([
globalIgnores(["**/node_modules/", "dist/", "esbuild.config.mjs"]),
{
extends: compat.extends(
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
),
plugins: {
"@typescript-eslint": typescriptEslint,
},
languageOptions: {
globals: {
...globals.node,
},
parser: tsParser,
ecmaVersion: 5,
sourceType: "module",
},
rules: {
"no-unused-vars": "off",
"no-redeclare": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
args: "none",
},
],
"@typescript-eslint/ban-ts-comment": "off",
"no-prototype-builtins": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/ban-types": "off",
},
},
]);

View File

@ -7,12 +7,15 @@
"dev": "node esbuild.config.mjs",
"build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
"version": "node version-bump.mjs && git add manifest.json versions.json",
"svelte-check": "svelte-check --tsconfig tsconfig.json"
"svelte-check": "svelte-check --tsconfig tsconfig.json",
"lint": "eslint ."
},
"keywords": [],
"author": "",
"license": "MIT",
"devDependencies": {
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "^9.30.0",
"@popperjs/core": "^2.11.8",
"@types/node": "^24.0.6",
"@typescript-eslint/eslint-plugin": "5.29.0",
@ -22,6 +25,8 @@
"dotenv-expand": "^12.0.2",
"esbuild": "0.17.3",
"esbuild-svelte": "^0.9.3",
"eslint": "^9.30.0",
"globals": "^16.2.0",
"handlebars": "^4.7.8",
"lucide-svelte": "^0.525.0",
"npm-run-all": "^4.1.5",

View File

@ -8,6 +8,12 @@ importers:
.:
devDependencies:
'@eslint/eslintrc':
specifier: ^3.3.1
version: 3.3.1
'@eslint/js':
specifier: ^9.30.0
version: 9.30.0
'@popperjs/core':
specifier: ^2.11.8
version: 2.11.8
@ -16,10 +22,10 @@ importers:
version: 24.0.6
'@typescript-eslint/eslint-plugin':
specifier: 5.29.0
version: 5.29.0(@typescript-eslint/parser@5.29.0(eslint@8.57.1)(typescript@5.0.4))(eslint@8.57.1)(typescript@5.0.4)
version: 5.29.0(@typescript-eslint/parser@5.29.0(eslint@9.30.0)(typescript@5.0.4))(eslint@9.30.0)(typescript@5.0.4)
'@typescript-eslint/parser':
specifier: 5.29.0
version: 5.29.0(eslint@8.57.1)(typescript@5.0.4)
version: 5.29.0(eslint@9.30.0)(typescript@5.0.4)
builtin-modules:
specifier: 3.3.0
version: 3.3.0
@ -35,6 +41,12 @@ importers:
esbuild-svelte:
specifier: ^0.9.3
version: 0.9.3(esbuild@0.17.3)(svelte@5.34.8)
eslint:
specifier: ^9.30.0
version: 9.30.0
globals:
specifier: ^16.2.0
version: 16.2.0
handlebars:
specifier: ^4.7.8
version: 4.7.8
@ -226,26 +238,57 @@ packages:
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
'@eslint/eslintrc@2.1.4':
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
'@eslint/config-array@0.21.0':
resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/js@8.57.1':
resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
'@eslint/config-helpers@0.3.0':
resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@humanwhocodes/config-array@0.13.0':
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
engines: {node: '>=10.10.0'}
deprecated: Use @eslint/config-array instead
'@eslint/core@0.14.0':
resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/core@0.15.1':
resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/eslintrc@3.3.1':
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/js@9.30.0':
resolution: {integrity: sha512-Wzw3wQwPvc9sHM+NjakWTcPx11mbZyiYHuwWa/QfZ7cIRX7WK54PSk7bdyXDaoaopUcMatv1zaQvOAAO8hCdww==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.6':
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/plugin-kit@0.3.3':
resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
engines: {node: '>=18.18.0'}
'@humanfs/node@0.16.6':
resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
engines: {node: '>=18.18.0'}
'@humanwhocodes/module-importer@1.0.1':
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
'@humanwhocodes/object-schema@2.0.3':
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
deprecated: Use @eslint/object-schema instead
'@humanwhocodes/retry@0.3.1':
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
engines: {node: '>=18.18'}
'@humanwhocodes/retry@0.4.3':
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
@ -443,9 +486,6 @@ packages:
resolution: {integrity: sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
'@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@ -459,10 +499,6 @@ packages:
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
@ -616,10 +652,6 @@ packages:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
dotenv-expand@12.0.2:
resolution: {integrity: sha512-lXpXz2ZE1cea1gL4sz2Ipj8y4PiVjytYr3Ij0SWoms1PGxIv7m2CRKuRuCRtHdVuvM/hNJPMxt5PbhboNC4dPQ==}
engines: {node: '>=12'}
@ -687,9 +719,9 @@ packages:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines: {node: '>=8.0.0'}
eslint-scope@7.2.2:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
eslint-scope@8.4.0:
resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-utils@3.0.0:
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
@ -705,18 +737,26 @@ packages:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
eslint@8.57.1:
resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
eslint-visitor-keys@4.2.1:
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint@9.30.0:
resolution: {integrity: sha512-iN/SiPxmQu6EVkf+m1qpBxzUhE12YqFLOSySuOyVLJLEF9nzTf+h/1AJYc1JWzCnktggeNrjvQGLngDzXirU6g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
jiti: '*'
peerDependenciesMeta:
jiti:
optional: true
esm-env@1.2.2:
resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
espree@10.4.0:
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
esquery@1.6.0:
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
@ -765,9 +805,9 @@ packages:
picomatch:
optional: true
file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
file-entry-cache@8.0.0:
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines: {node: '>=16.0.0'}
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
@ -777,9 +817,9 @@ packages:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
flat-cache@3.2.0:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
flat-cache@4.0.1:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
flatted@3.3.3:
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
@ -788,9 +828,6 @@ packages:
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
engines: {node: '>= 0.4'}
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
@ -824,13 +861,13 @@ packages:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
globals@14.0.0:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'}
globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
globals@16.2.0:
resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==}
engines: {node: '>=18'}
globalthis@1.0.4:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
@ -847,9 +884,6 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
handlebars@4.7.8:
resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
engines: {node: '>=0.4.7'}
@ -904,13 +938,6 @@ packages:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
internal-slot@1.1.0:
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: '>= 0.4'}
@ -982,10 +1009,6 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
is-reference@3.0.3:
resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
@ -1151,9 +1174,6 @@ packages:
'@codemirror/state': ^6.0.0
'@codemirror/view': ^6.0.0
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
@ -1182,10 +1202,6 @@ packages:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
path-key@2.0.1:
resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
engines: {node: '>=4'}
@ -1277,11 +1293,6 @@ packages:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
@ -1412,10 +1423,6 @@ packages:
resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
engines: {node: '>= 0.4'}
strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
@ -1494,9 +1501,6 @@ packages:
resolution: {integrity: sha512-TF+8irl7rpj3+fpaLuPRX5BqReTAqckp0Fumxa/mCeK3fo0/MnBb9W/Z2bLwtqj3C3r5Lm6NKIAw7YrgIv1Fwg==}
engines: {node: '>=18'}
text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@ -1517,10 +1521,6 @@ packages:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
type-fest@0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
typed-array-buffer@1.0.3:
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
engines: {node: '>= 0.4'}
@ -1595,9 +1595,6 @@ packages:
wordwrap@1.0.0:
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
@ -1689,19 +1686,37 @@ snapshots:
'@esbuild/win32-x64@0.17.3':
optional: true
'@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)':
'@eslint-community/eslint-utils@4.7.0(eslint@9.30.0)':
dependencies:
eslint: 8.57.1
eslint: 9.30.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
'@eslint/eslintrc@2.1.4':
'@eslint/config-array@0.21.0':
dependencies:
'@eslint/object-schema': 2.1.6
debug: 4.4.1
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
'@eslint/config-helpers@0.3.0': {}
'@eslint/core@0.14.0':
dependencies:
'@types/json-schema': 7.0.15
'@eslint/core@0.15.1':
dependencies:
'@types/json-schema': 7.0.15
'@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
debug: 4.4.1
espree: 9.6.1
globals: 13.24.0
espree: 10.4.0
globals: 14.0.0
ignore: 5.3.2
import-fresh: 3.3.1
js-yaml: 4.1.0
@ -1710,19 +1725,27 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@eslint/js@8.57.1': {}
'@eslint/js@9.30.0': {}
'@humanwhocodes/config-array@0.13.0':
'@eslint/object-schema@2.1.6': {}
'@eslint/plugin-kit@0.3.3':
dependencies:
'@humanwhocodes/object-schema': 2.0.3
debug: 4.4.1
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
'@eslint/core': 0.15.1
levn: 0.4.1
'@humanfs/core@0.19.1': {}
'@humanfs/node@0.16.6':
dependencies:
'@humanfs/core': 0.19.1
'@humanwhocodes/retry': 0.3.1
'@humanwhocodes/module-importer@1.0.1': {}
'@humanwhocodes/object-schema@2.0.3': {}
'@humanwhocodes/retry@0.3.1': {}
'@humanwhocodes/retry@0.4.3': {}
'@jridgewell/gen-mapping@0.3.8':
dependencies:
@ -1838,14 +1861,14 @@ snapshots:
dependencies:
'@types/estree': 1.0.8
'@typescript-eslint/eslint-plugin@5.29.0(@typescript-eslint/parser@5.29.0(eslint@8.57.1)(typescript@5.0.4))(eslint@8.57.1)(typescript@5.0.4)':
'@typescript-eslint/eslint-plugin@5.29.0(@typescript-eslint/parser@5.29.0(eslint@9.30.0)(typescript@5.0.4))(eslint@9.30.0)(typescript@5.0.4)':
dependencies:
'@typescript-eslint/parser': 5.29.0(eslint@8.57.1)(typescript@5.0.4)
'@typescript-eslint/parser': 5.29.0(eslint@9.30.0)(typescript@5.0.4)
'@typescript-eslint/scope-manager': 5.29.0
'@typescript-eslint/type-utils': 5.29.0(eslint@8.57.1)(typescript@5.0.4)
'@typescript-eslint/utils': 5.29.0(eslint@8.57.1)(typescript@5.0.4)
'@typescript-eslint/type-utils': 5.29.0(eslint@9.30.0)(typescript@5.0.4)
'@typescript-eslint/utils': 5.29.0(eslint@9.30.0)(typescript@5.0.4)
debug: 4.4.1
eslint: 8.57.1
eslint: 9.30.0
functional-red-black-tree: 1.0.1
ignore: 5.3.2
regexpp: 3.2.0
@ -1856,13 +1879,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@5.29.0(eslint@8.57.1)(typescript@5.0.4)':
'@typescript-eslint/parser@5.29.0(eslint@9.30.0)(typescript@5.0.4)':
dependencies:
'@typescript-eslint/scope-manager': 5.29.0
'@typescript-eslint/types': 5.29.0
'@typescript-eslint/typescript-estree': 5.29.0(typescript@5.0.4)
debug: 4.4.1
eslint: 8.57.1
eslint: 9.30.0
optionalDependencies:
typescript: 5.0.4
transitivePeerDependencies:
@ -1873,11 +1896,11 @@ snapshots:
'@typescript-eslint/types': 5.29.0
'@typescript-eslint/visitor-keys': 5.29.0
'@typescript-eslint/type-utils@5.29.0(eslint@8.57.1)(typescript@5.0.4)':
'@typescript-eslint/type-utils@5.29.0(eslint@9.30.0)(typescript@5.0.4)':
dependencies:
'@typescript-eslint/utils': 5.29.0(eslint@8.57.1)(typescript@5.0.4)
'@typescript-eslint/utils': 5.29.0(eslint@9.30.0)(typescript@5.0.4)
debug: 4.4.1
eslint: 8.57.1
eslint: 9.30.0
tsutils: 3.21.0(typescript@5.0.4)
optionalDependencies:
typescript: 5.0.4
@ -1900,15 +1923,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@5.29.0(eslint@8.57.1)(typescript@5.0.4)':
'@typescript-eslint/utils@5.29.0(eslint@9.30.0)(typescript@5.0.4)':
dependencies:
'@types/json-schema': 7.0.15
'@typescript-eslint/scope-manager': 5.29.0
'@typescript-eslint/types': 5.29.0
'@typescript-eslint/typescript-estree': 5.29.0(typescript@5.0.4)
eslint: 8.57.1
eslint: 9.30.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0(eslint@8.57.1)
eslint-utils: 3.0.0(eslint@9.30.0)
transitivePeerDependencies:
- supports-color
- typescript
@ -1918,8 +1941,6 @@ snapshots:
'@typescript-eslint/types': 5.29.0
eslint-visitor-keys: 3.4.3
'@ungap/structured-clone@1.3.0': {}
acorn-jsx@5.3.2(acorn@8.15.0):
dependencies:
acorn: 8.15.0
@ -1933,8 +1954,6 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
ansi-regex@5.0.1: {}
ansi-styles@3.2.1:
dependencies:
color-convert: 1.9.3
@ -2094,10 +2113,6 @@ snapshots:
dependencies:
path-type: 4.0.0
doctrine@3.0.0:
dependencies:
esutils: 2.0.3
dotenv-expand@12.0.2:
dependencies:
dotenv: 16.6.1
@ -2234,70 +2249,69 @@ snapshots:
esrecurse: 4.3.0
estraverse: 4.3.0
eslint-scope@7.2.2:
eslint-scope@8.4.0:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
eslint-utils@3.0.0(eslint@8.57.1):
eslint-utils@3.0.0(eslint@9.30.0):
dependencies:
eslint: 8.57.1
eslint: 9.30.0
eslint-visitor-keys: 2.1.0
eslint-visitor-keys@2.1.0: {}
eslint-visitor-keys@3.4.3: {}
eslint@8.57.1:
eslint-visitor-keys@4.2.1: {}
eslint@9.30.0:
dependencies:
'@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1)
'@eslint-community/eslint-utils': 4.7.0(eslint@9.30.0)
'@eslint-community/regexpp': 4.12.1
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.57.1
'@humanwhocodes/config-array': 0.13.0
'@eslint/config-array': 0.21.0
'@eslint/config-helpers': 0.3.0
'@eslint/core': 0.14.0
'@eslint/eslintrc': 3.3.1
'@eslint/js': 9.30.0
'@eslint/plugin-kit': 0.3.3
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
'@ungap/structured-clone': 1.3.0
'@humanwhocodes/retry': 0.4.3
'@types/estree': 1.0.8
'@types/json-schema': 7.0.15
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
debug: 4.4.1
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
espree: 10.4.0
esquery: 1.6.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
file-entry-cache: 8.0.0
find-up: 5.0.0
glob-parent: 6.0.2
globals: 13.24.0
graphemer: 1.4.0
ignore: 5.3.2
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
minimatch: 3.1.2
natural-compare: 1.4.0
optionator: 0.9.4
strip-ansi: 6.0.1
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
esm-env@1.2.2: {}
espree@9.6.1:
espree@10.4.0:
dependencies:
acorn: 8.15.0
acorn-jsx: 5.3.2(acorn@8.15.0)
eslint-visitor-keys: 3.4.3
eslint-visitor-keys: 4.2.1
esquery@1.6.0:
dependencies:
@ -2339,9 +2353,9 @@ snapshots:
optionalDependencies:
picomatch: 4.0.2
file-entry-cache@6.0.1:
file-entry-cache@8.0.0:
dependencies:
flat-cache: 3.2.0
flat-cache: 4.0.1
fill-range@7.1.1:
dependencies:
@ -2352,11 +2366,10 @@ snapshots:
locate-path: 6.0.0
path-exists: 4.0.0
flat-cache@3.2.0:
flat-cache@4.0.1:
dependencies:
flatted: 3.3.3
keyv: 4.5.4
rimraf: 3.0.2
flatted@3.3.3: {}
@ -2364,8 +2377,6 @@ snapshots:
dependencies:
is-callable: 1.2.7
fs.realpath@1.0.0: {}
function-bind@1.1.2: {}
function.prototype.name@1.1.8:
@ -2413,18 +2424,9 @@ snapshots:
dependencies:
is-glob: 4.0.3
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 3.1.2
once: 1.4.0
path-is-absolute: 1.0.1
globals@14.0.0: {}
globals@13.24.0:
dependencies:
type-fest: 0.20.2
globals@16.2.0: {}
globalthis@1.0.4:
dependencies:
@ -2444,8 +2446,6 @@ snapshots:
graceful-fs@4.2.11: {}
graphemer@1.4.0: {}
handlebars@4.7.8:
dependencies:
minimist: 1.2.8
@ -2492,13 +2492,6 @@ snapshots:
imurmurhash@0.1.4: {}
inflight@1.0.6:
dependencies:
once: 1.4.0
wrappy: 1.0.2
inherits@2.0.4: {}
internal-slot@1.1.0:
dependencies:
es-errors: 1.3.0
@ -2575,8 +2568,6 @@ snapshots:
is-number@7.0.0: {}
is-path-inside@3.0.3: {}
is-reference@3.0.3:
dependencies:
'@types/estree': 1.0.8
@ -2742,10 +2733,6 @@ snapshots:
'@types/codemirror': 5.60.8
moment: 2.29.4
once@1.4.0:
dependencies:
wrappy: 1.0.2
optionator@0.9.4:
dependencies:
deep-is: 0.1.4
@ -2780,8 +2767,6 @@ snapshots:
path-exists@4.0.0: {}
path-is-absolute@1.0.1: {}
path-key@2.0.1: {}
path-key@3.1.1: {}
@ -2860,10 +2845,6 @@ snapshots:
reusify@1.1.0: {}
rimraf@3.0.2:
dependencies:
glob: 7.2.3
run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3
@ -3027,10 +3008,6 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.1.1
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
strip-bom@3.0.0: {}
strip-json-comments@3.1.1: {}
@ -3089,8 +3066,6 @@ snapshots:
magic-string: 0.30.17
zimmerframe: 1.1.2
text-table@0.2.0: {}
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@ -3108,8 +3083,6 @@ snapshots:
dependencies:
prelude-ls: 1.2.1
type-fest@0.20.2: {}
typed-array-buffer@1.0.3:
dependencies:
call-bound: 1.0.4
@ -3221,8 +3194,6 @@ snapshots:
wordwrap@1.0.0: {}
wrappy@1.0.2: {}
yocto-queue@0.1.0: {}
zimmerframe@1.1.2: {}

View File

@ -6,7 +6,7 @@ import {
Notice,
TFile,
} from "obsidian";
import { Command, EditorCheckCommand } from "./Command";
import { EditorCheckCommand } from "./Command";
import type { BookTrackerPluginSettings } from "@ui/settings";
import { ReadingProgressModal } from "@ui/modals";
import type { ReadingLog } from "@utils/ReadingLog";

View File

@ -5,7 +5,7 @@ import {
type MarkdownFileInfo,
type MarkdownView,
} from "obsidian";
import { Command, EditorCheckCommand } from "./Command";
import { EditorCheckCommand } from "./Command";
import type { BookTrackerPluginSettings } from "@ui/settings";
import type { ReadingLog } from "@utils/ReadingLog";
import { TO_BE_READ_STATE } from "@src/const";

View File

@ -16,6 +16,7 @@ export class SearchGoodreadsCommand extends Command {
async callback() {
let results: SearchResult[];
try {
// eslint-disable-next-line prefer-const
results = await GoodreadsSearchModal.createAndOpen(
this.app,
this.goodreads
@ -39,6 +40,7 @@ export class SearchGoodreadsCommand extends Command {
let book: Book;
try {
// eslint-disable-next-line prefer-const
book = await this.goodreads.getBookByLegacyId(
selectedResult.legacyId
);

View File

@ -96,17 +96,9 @@ interface Series {
webUrl: string;
}
interface Work {
__typename: "Work";
id: string;
legacyId: number;
bestBook: Ref;
// ...Book
}
interface Query {
__typename: "Query";
[key: string]: any;
[key: string]: unknown;
}
interface NextData {
@ -114,7 +106,7 @@ interface NextData {
pageProps: {
apolloState: {
ROOT_QUERY: Query;
[key: string]: any;
[key: string]: unknown;
};
params: Record<string, string>;
query: Record<string, string>;
@ -140,7 +132,7 @@ export class Goodreads {
const url = "https://www.goodreads.com/book/show/" + legacyId;
const res = await requestUrl({ url });
const doc = new DOMParser().parseFromString(res.text, "text/html");
let nextDataRaw = doc.getElementById("__NEXT_DATA__")?.textContent;
const nextDataRaw = doc.getElementById("__NEXT_DATA__")?.textContent;
if (typeof nextDataRaw !== "string") {
throw new Error("Unable to find next data script in the document.");
}
@ -159,7 +151,7 @@ export class Goodreads {
];
const authors = contributorEdges
.filter((edge) => edge.role === "Author")
.map<Contributor>((edge) => apolloState[edge.node.__ref])
.map((edge) => apolloState[edge.node.__ref] as Contributor)
.map<Author>((contributor) => ({
id: contributor.id,
legacyId: contributor.legacyId,
@ -210,11 +202,10 @@ export class Goodreads {
const res = await requestUrl({ url });
const doc = new DOMParser().parseFromString(res.text, "text/html");
return Array.from(
doc.querySelectorAll(
"table.tableList tr[itemtype='http://schema.org/Book']"
)
).map<SearchResult>((el) => {
const searchResults: SearchResult[] = [];
doc.querySelectorAll(
"table.tableList tr[itemtype='http://schema.org/Book']"
).forEach((el) => {
const legacyId = parseInt(
el.querySelector("div.u-anchorTarget")?.id ?? "",
10
@ -257,7 +248,7 @@ export class Goodreads {
const coverImageUrl =
el.querySelector("img.bookCover")?.getAttribute("src") || "";
return {
searchResults.push({
legacyId,
title,
authors,
@ -266,7 +257,8 @@ export class Goodreads {
publicationYear,
editionCount,
coverImageUrl,
};
});
});
return searchResults;
}
}

View File

@ -137,7 +137,7 @@ export default class BookTrackerPlugin extends Plugin {
title: book.title,
authors: book.authors.map((a) => a.name).join(", "),
})
.replace(/[/\:*?<>|""]/g, "");
.replace(/[/:*?<>|""]/g, "");
const data: Record<string, unknown> = { book };

View File

@ -1,5 +1,5 @@
import BookTrackerPlugin from "@src/main";
import { App, PluginSettingTab } from "obsidian";
import { PluginSettingTab } from "obsidian";
import BookTrackerSettingTabView from "./BookTrackerSettingTabView.svelte";
import { mount, unmount } from "svelte";

View File

@ -7,7 +7,7 @@ export class Storage {
private readonly plugin: BookTrackerPlugin
) {}
private readonly baseDir = this.plugin.manifest.dir!!;
private readonly baseDir = this.plugin.manifest.dir!;
private getFilePath(filename: string): string {
return normalizePath(`${this.baseDir}/${filename}`.replace(/\/$/, ""));
}
@ -33,7 +33,7 @@ export class Storage {
await this.app.vault.adapter.write(filePath, content);
}
public async listFiles(subdir: string = ""): Promise<string[]> {
public async listFiles(subdir = ""): Promise<string[]> {
const files = await this.app.vault.adapter.list(
this.getFilePath(subdir)
);

View File

@ -41,7 +41,7 @@ export class Templater {
public async renderTemplateFile(
filePath: string,
data: Record<string, any>
data: Record<string, unknown>
): Promise<string | null> {
const templateContent = await this.getTemplateContent(filePath);
if (!templateContent) return null;