Skip to content
This repository was archived by the owner on May 25, 2025. It is now read-only.

Commit 01cf948

Browse files
feat: modernize, convert to ESM
BREAKING CHANGE: ^^^
1 parent ee5cd1e commit 01cf948

21 files changed

+1816
-2663
lines changed

eslint.config.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
// prettier-ignore
2-
module.exports = [
3-
...require('@naturalcycles/dev-lib/cfg/eslint.config'),
1+
import sharedConfig from '@naturalcycles/dev-lib/cfg/eslint.config.js'
2+
3+
export default [
4+
...sharedConfig,
5+
{
6+
rules: {
7+
'@typescript-eslint/consistent-type-imports': 2,
8+
},
9+
},
410
]

jest.config.js

Lines changed: 0 additions & 3 deletions
This file was deleted.

package.json

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"name": "@naturalcycles/sqlite-lib",
3+
"type": "module",
34
"scripts": {
45
"prepare": "husky",
56
"build": "dev-lib build",
@@ -9,19 +10,21 @@
910
"lbt": "dev-lib lbt"
1011
},
1112
"dependencies": {
12-
"@naturalcycles/db-lib": "^9.1.0",
13-
"@naturalcycles/js-lib": "^14.27.0",
14-
"@naturalcycles/nodejs-lib": "^13.1.3",
15-
"@types/better-sqlite3": "^7.6.0",
16-
"better-sqlite3": "^11.0.0",
17-
"sql-template-strings": "^2.2.2",
18-
"sqlite": "^5.0.1",
19-
"sqlite3": "^5.1.1"
13+
"@naturalcycles/db-lib": "^10",
14+
"@naturalcycles/js-lib": "^14",
15+
"@naturalcycles/nodejs-lib": "^13",
16+
"@types/better-sqlite3": "^7",
17+
"better-sqlite3": "^11",
18+
"sql-template-strings": "^2",
19+
"sqlite": "^5",
20+
"sqlite3": "^5"
2021
},
2122
"devDependencies": {
22-
"@naturalcycles/dev-lib": "^15.21.0",
23-
"@types/node": "^22.7.5",
24-
"jest": "^29.0.3"
23+
"@naturalcycles/dev-lib": "^17",
24+
"@types/node": "^22",
25+
"@vitest/coverage-v8": "^3",
26+
"tsx": "^4",
27+
"vitest": "^3"
2528
},
2629
"files": [
2730
"dist",
@@ -41,7 +44,7 @@
4144
"url": "https://github.com/NaturalCycles/sqlite-lib"
4245
},
4346
"engines": {
44-
"node": ">=20.13.0"
47+
"node": ">=22.12.0"
4548
},
4649
"version": "1.2.1",
4750
"description": "CommonDB implementation based on SQLite",

prettier.config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
module.exports = require('@naturalcycles/dev-lib/cfg/prettier.config')
1+
import sharedConfig from '@naturalcycles/dev-lib/cfg/prettier.config.js'
2+
3+
export default sharedConfig

scripts/generateTestTable.script.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
3-
DEBUG=nc* yarn tsn generateTestTable
3+
yarn tsx scripts/generateTestTable.script.ts
44
55
Creates ./tmp/test.sqlite
66
Fills it with 1M rows of TestItem
@@ -9,17 +9,17 @@ Not gzipped (to better test streaming)
99
*/
1010

1111
import { Readable } from 'node:stream'
12-
import { TEST_TABLE } from '@naturalcycles/db-lib/dist/testing'
12+
import { TEST_TABLE } from '@naturalcycles/db-lib/dist/testing/index.js'
1313
import { _range } from '@naturalcycles/js-lib'
1414
import {
1515
_pipeline,
1616
runScript,
1717
transformLogProgress,
1818
writableForEach,
1919
} from '@naturalcycles/nodejs-lib'
20-
import { SqliteKeyValueDB } from '../src'
21-
import { tmpDir } from '../src/test/paths.cnst'
22-
import { TestItem } from '../src/test/test.model'
20+
import { SqliteKeyValueDB } from '../src/index.js'
21+
import { tmpDir } from '../src/test/paths.cnst.js'
22+
import type { TestItem } from '../src/test/test.model.js'
2323

2424
runScript(async () => {
2525
const filename = `${tmpDir}/test.sqlite`

scripts/streamingTest.script.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
/*
22
3-
DEBUG=nc* yarn tsn streamingTest
3+
yarn tsx scripts/streamingTest.script.ts
44
55
*/
66

7-
import { TEST_TABLE } from '@naturalcycles/db-lib/dist/testing'
7+
import { TEST_TABLE } from '@naturalcycles/db-lib/dist/testing/index.js'
88
import {
99
_pipeline,
1010
runScript,
1111
transformLogProgress,
1212
writableForEach,
1313
} from '@naturalcycles/nodejs-lib'
14-
import { SqliteKeyValueDB } from '../src'
15-
import { tmpDir } from '../src/test/paths.cnst'
14+
import { SqliteKeyValueDB } from '../src/index.js'
15+
import { tmpDir } from '../src/test/paths.cnst.js'
1616

1717
runScript(async () => {
1818
const filename = `${tmpDir}/test.sqlite`

src/betterSqliteKeyValueDB.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { runCommonKeyValueDBTest, TEST_TABLE } from '@naturalcycles/db-lib/dist/testing'
2-
import { BetterSqliteKeyValueDB } from './betterSqliteKeyValueDB'
1+
import { runCommonKeyValueDBTest, TEST_TABLE } from '@naturalcycles/db-lib/dist/testing/index.js'
2+
import { afterAll, beforeAll, describe, expect, test } from 'vitest'
3+
import { BetterSqliteKeyValueDB } from './betterSqliteKeyValueDB.js'
34

45
const db = new BetterSqliteKeyValueDB({
56
filename: ':memory:',

src/betterSqliteKeyValueDB.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
import {
1+
import type {
22
CommonDBCreateOptions,
33
CommonKeyValueDB,
4-
commonKeyValueDBFullSupport,
54
IncrementTuple,
65
KeyValueDBTuple,
76
} from '@naturalcycles/db-lib'
8-
import { AppError, CommonLogger } from '@naturalcycles/js-lib'
9-
import { boldWhite, readableCreate, ReadableTyped } from '@naturalcycles/nodejs-lib'
7+
import { commonKeyValueDBFullSupport } from '@naturalcycles/db-lib'
8+
import type { CommonLogger } from '@naturalcycles/js-lib'
9+
import { AppError } from '@naturalcycles/js-lib'
10+
import type { ReadableTyped } from '@naturalcycles/nodejs-lib'
11+
import { boldWhite, readableCreate } from '@naturalcycles/nodejs-lib'
1012
import type { Database, Options } from 'better-sqlite3'
1113
import BetterSqlite3 from 'better-sqlite3'
1214

src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
export * from './betterSqliteKeyValueDB'
2-
export * from './sqlite.db'
3-
export * from './sqliteKeyValueDB'
1+
export * from './betterSqliteKeyValueDB.js'
2+
export * from './sqlite.db.js'
3+
export * from './sqliteKeyValueDB.js'

src/query.util.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { createTestItemsDBM, TEST_TABLE } from '@naturalcycles/db-lib/dist/testing'
2-
import { insertSQL } from './query.util'
1+
import { createTestItemsDBM, TEST_TABLE } from '@naturalcycles/db-lib/dist/testing/index.js'
2+
import { test } from 'vitest'
3+
import { insertSQL } from './query.util.js'
34

45
test('insertSQL', () => {
56
const items = createTestItemsDBM(3)

src/query.util.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { KeyValueDBTuple } from '@naturalcycles/db-lib'
2-
import { SQL, SQLStatement } from 'sql-template-strings'
1+
import type { KeyValueDBTuple } from '@naturalcycles/db-lib'
2+
import type { SQLStatement } from 'sql-template-strings'
3+
import { SQL } from 'sql-template-strings'
34

45
export type SQLWithParams = [sql: string, params: any[]]
56

src/sqlite.db.test.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ import {
22
createTestItemsDBM,
33
TEST_TABLE,
44
testItemBMJsonSchema,
5-
} from '@naturalcycles/db-lib/dist/testing'
6-
import { SQLiteDB } from './sqlite.db'
5+
} from '@naturalcycles/db-lib/dist/testing/index.js'
6+
import { _omit } from '@naturalcycles/js-lib'
7+
import { test } from 'vitest'
8+
import { SQLiteDB } from './sqlite.db.js'
79

810
test('test1', async () => {
911
const db = new SQLiteDB({
@@ -15,7 +17,7 @@ test('test1', async () => {
1517
// await db.getTables()
1618
await db.createTable(TEST_TABLE, testItemBMJsonSchema, { dropIfExists: true })
1719

18-
const items = createTestItemsDBM(3)
20+
const items = createTestItemsDBM(3).map(v => _omit(v, ['nested']))
1921
await db.saveBatch(TEST_TABLE, items)
2022

2123
await db.close()

src/sqlite.db.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
import {
2-
BaseCommonDB,
1+
import type {
32
CommonDB,
43
CommonDBCreateOptions,
54
CommonDBOptions,
65
CommonDBSaveOptions,
76
} from '@naturalcycles/db-lib'
8-
import { CommonLogger, JsonSchemaObject, ObjectWithId } from '@naturalcycles/js-lib'
7+
import { BaseCommonDB } from '@naturalcycles/db-lib'
8+
import type { CommonLogger, JsonSchemaObject, ObjectWithId } from '@naturalcycles/js-lib'
99
import { boldWhite } from '@naturalcycles/nodejs-lib'
10-
import { Database, open } from 'sqlite'
10+
import type { Database } from 'sqlite'
11+
import { open } from 'sqlite'
1112
import { OPEN_CREATE, OPEN_READWRITE } from 'sqlite3'
1213
import * as sqlite3 from 'sqlite3'
13-
import { insertSQL } from './query.util'
14+
import { insertSQL } from './query.util.js'
1415

1516
export interface SQLiteDBCfg {
1617
filename: string

src/sqliteKeyValueDB.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { runCommonKeyValueDBTest, TEST_TABLE } from '@naturalcycles/db-lib/dist/testing'
2-
import { SqliteKeyValueDB } from './sqliteKeyValueDB'
1+
import { runCommonKeyValueDBTest, TEST_TABLE } from '@naturalcycles/db-lib/dist/testing/index.js'
2+
import { afterAll, beforeAll, describe, expect, test } from 'vitest'
3+
import { SqliteKeyValueDB } from './sqliteKeyValueDB.js'
34

45
const db = new SqliteKeyValueDB({
56
filename: ':memory:',

src/sqliteKeyValueDB.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1-
import {
1+
import type {
22
CommonDBCreateOptions,
33
CommonKeyValueDB,
4-
commonKeyValueDBFullSupport,
54
IncrementTuple,
65
KeyValueDBTuple,
76
} from '@naturalcycles/db-lib'
8-
import { AppError, CommonLogger, pMap } from '@naturalcycles/js-lib'
9-
import { boldWhite, readableCreate, ReadableTyped } from '@naturalcycles/nodejs-lib'
10-
import { Database, open } from 'sqlite'
7+
import { commonKeyValueDBFullSupport } from '@naturalcycles/db-lib'
8+
import type { CommonLogger } from '@naturalcycles/js-lib'
9+
import { AppError, pMap } from '@naturalcycles/js-lib'
10+
import type { ReadableTyped } from '@naturalcycles/nodejs-lib'
11+
import { boldWhite, readableCreate } from '@naturalcycles/nodejs-lib'
12+
import type { Database } from 'sqlite'
13+
import { open } from 'sqlite'
1114
import * as sqlite3 from 'sqlite3'
1215
import { OPEN_CREATE, OPEN_READWRITE } from 'sqlite3'
13-
import { deleteByIdsSQL, insertKVSQL, selectKVSQL } from './query.util'
14-
import { SqliteReadable } from './stream.util'
16+
import { deleteByIdsSQL, insertKVSQL, selectKVSQL } from './query.util.js'
17+
import { SqliteReadable } from './stream.util.js'
1518

1619
export interface SQLiteKeyValueDBCfg {
1720
filename: string

src/stream.util.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Readable } from 'node:stream'
2-
import { ReadableTyped } from '@naturalcycles/nodejs-lib'
3-
import { Database, Statement } from 'sqlite'
2+
import type { ReadableTyped } from '@naturalcycles/nodejs-lib'
3+
import type { Database, Statement } from 'sqlite'
44

55
/**
66
* Based on: https://gist.github.com/rmela/a3bed669ad6194fb2d9670789541b0c7

src/test/paths.cnst.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
import * as path from 'node:path'
1+
import { dirname, join } from 'node:path'
2+
import { fileURLToPath } from 'node:url'
23

3-
export const projectDir = path.join(`${__dirname}/../..`)
4+
const __filename = fileURLToPath(import.meta.url)
5+
const __dirname = dirname(__filename)
6+
7+
export const projectDir = join(`${__dirname}/../..`)
48
export const tmpDir = `${projectDir}/tmp`

src/test/setupJest.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"extends": "@naturalcycles/dev-lib/cfg/tsconfig.json",
33
"compilerOptions": {
4+
"verbatimModuleSyntax": true,
45
"outDir": "dist",
56
},
67
"include": ["src"],

vitest.config.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { defineConfig } from 'vitest/config'
2+
import { sharedConfig } from '@naturalcycles/dev-lib/cfg/vitest.config.mjs'
3+
4+
export default defineConfig({
5+
test: {
6+
...sharedConfig,
7+
},
8+
})

0 commit comments

Comments
 (0)