diff --git a/.eslintrc b/.eslintrc index 786b7e5a..92813260 100644 --- a/.eslintrc +++ b/.eslintrc @@ -7,19 +7,18 @@ "jest": true }, "parser": "@typescript-eslint/parser", - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended", - "prettier" - ], - "plugins": [ - "import" - ], "parserOptions": { "project": "tsconfig.json", "sourceType": "module" }, + "plugins": [ + "import" + ], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended" + ], "rules": { "linebreak-style": ["error", "unix"], "no-empty": 1, diff --git a/README.md b/README.md index a4607c9a..8ec7e273 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ npm install # build the dist npm run build # run the repl (this allows you to import from ./src) -npm run ts-node +npm run tsx # run the tests npm run test # lint the source code diff --git a/benches/db_1KiB.ts b/benches/db_1KiB.ts index 35cd596e..f2522c6b 100644 --- a/benches/db_1KiB.ts +++ b/benches/db_1KiB.ts @@ -2,12 +2,14 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; import crypto from 'crypto'; +import url from 'node:url'; import b from 'benny'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import DB from '@/DB'; -import { suiteCommon } from './utils'; +import { suiteCommon } from './utils/utils.js'; +import DB from '#DB.js'; const logger = new Logger('DB1KiB Bench', LogLevel.WARN, [new StreamHandler()]); +const filename = url.fileURLToPath(new URL(import.meta.url)); async function main() { const dataDir = await fs.promises.mkdtemp( @@ -18,7 +20,7 @@ async function main() { const data0 = crypto.randomBytes(0); const data1KiB = crypto.randomBytes(1024); const summary = await b.suite( - path.basename(__filename, path.extname(__filename)), + path.basename(filename, path.extname(filename)), b.add('get 1 KiB of data', async () => { await db.put('1kib', data1KiB, true); return async () => { @@ -44,8 +46,7 @@ async function main() { }); return summary; } - -if (require.main === module) { +if (process.argv[1] === url.fileURLToPath(import.meta.url)) { void main(); } diff --git a/benches/db_1MiB.ts b/benches/db_1MiB.ts index fe000678..9eabc380 100644 --- a/benches/db_1MiB.ts +++ b/benches/db_1MiB.ts @@ -2,12 +2,14 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; import crypto from 'crypto'; +import url from 'node:url'; import b from 'benny'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import DB from '@/DB'; -import { suiteCommon } from './utils'; +import { suiteCommon } from './utils/utils.js'; +import DB from '#DB.js'; const logger = new Logger('DB1MiB Bench', LogLevel.WARN, [new StreamHandler()]); +const filename = url.fileURLToPath(new URL(import.meta.url)); async function main() { const dataDir = await fs.promises.mkdtemp( @@ -18,7 +20,7 @@ async function main() { const data0 = crypto.randomBytes(0); const data1MiB = crypto.randomBytes(1024 * 1024); const summary = await b.suite( - path.basename(__filename, path.extname(__filename)), + path.basename(filename, path.extname(filename)), b.add('get 1 MiB of data', async () => { await db.put('1mib', data1MiB, true); return async () => { @@ -45,7 +47,7 @@ async function main() { return summary; } -if (require.main === module) { +if (process.argv[1] === url.fileURLToPath(import.meta.url)) { void main(); } diff --git a/benches/index.ts b/benches/index.ts index 5c96be72..fce10d30 100644 --- a/benches/index.ts +++ b/benches/index.ts @@ -2,26 +2,29 @@ import fs from 'fs'; import path from 'path'; +import url from 'node:url'; import si from 'systeminformation'; -import DB1KiB from './db_1KiB'; -import DB1MiB from './db_1MiB'; +import DB1KiB from './db_1KiB.js'; +import DB1MiB from './db_1MiB.js'; + +const dirname = url.fileURLToPath(new URL('.', import.meta.url)); async function main(): Promise { - await fs.promises.mkdir(path.join(__dirname, 'results'), { recursive: true }); + await fs.promises.mkdir(path.join(dirname, 'results'), { recursive: true }); await DB1KiB(); await DB1MiB(); const resultFilenames = await fs.promises.readdir( - path.join(__dirname, 'results'), + path.join(dirname, 'results'), ); const metricsFile = await fs.promises.open( - path.join(__dirname, 'results', 'metrics.txt'), + path.join(dirname, 'results', 'metrics.txt'), 'w', ); let concatenating = false; for (const resultFilename of resultFilenames) { if (/.+_metrics\.txt$/.test(resultFilename)) { const metricsData = await fs.promises.readFile( - path.join(__dirname, 'results', resultFilename), + path.join(dirname, 'results', resultFilename), ); if (concatenating) { await metricsFile.write('\n'); @@ -37,7 +40,7 @@ async function main(): Promise { system: 'model, manufacturer', }); await fs.promises.writeFile( - path.join(__dirname, 'results', 'system.json'), + path.join(dirname, 'results', 'system.json'), JSON.stringify(systemData, null, 2), ); } diff --git a/benches/results/db_1KiB.chart.html b/benches/results/db_1KiB.chart.html index c29540ff..25b68a2b 100644 --- a/benches/results/db_1KiB.chart.html +++ b/benches/results/db_1KiB.chart.html @@ -28,7 +28,7 @@
- +