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

Commit f8a5b21

Browse files
feat: convert to esm
Not marking as bre-aking change to not have to manually update version ranges in 10+ dependent libs. Waiting for monorepo to come in 2025/2026.
1 parent be7af35 commit f8a5b21

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+190
-167
lines changed

eslint.config.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
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,
45
{
56
rules: {
67
'@typescript-eslint/consistent-type-imports': 2,

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"name": "@naturalcycles/db-lib",
3+
"type": "module",
34
"scripts": {
45
"prepare": "husky",
56
"build": "dev-lib build",
@@ -61,7 +62,6 @@
6162
"firestore",
6263
"mysql"
6364
],
64-
"type": "commonjs",
6565
"author": "Natural Cycles Team",
6666
"license": "MIT"
6767
}

prettier.config.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// This file exists to:
2-
// 1. Allow jest inline snapshots to be formatted correctly
3-
// 2. Allow other tooling to detect `prettier` support
4-
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/cannon.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ yarn tsx scripts/cannon.ts
77
import { expressFunctionFactory, runCannon } from '@naturalcycles/bench-lib'
88
import { _omit } from '@naturalcycles/js-lib'
99
import { getValidationResult, runScript, stringId } from '@naturalcycles/nodejs-lib'
10-
import { CommonDao, InMemoryDB } from '../src'
11-
import { createTestItemsBM, TEST_TABLE, testItemBMSchema } from '../src/testing'
10+
import { CommonDao, InMemoryDB } from '../src/index.js'
11+
import { createTestItemsBM, TEST_TABLE, testItemBMSchema } from '../src/testing/index.js'
1212

1313
runScript(async () => {
1414
await runCannon(

scripts/ndjsonTest.script.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ yarn tsx scripts/ndjsonTest.script.ts
55
*/
66

77
import { runScript } from '@naturalcycles/nodejs-lib'
8-
import { dbPipelineBackup, dbPipelineCopy, dbPipelineRestore, InMemoryDB } from '../src'
9-
import { tmpDir } from '../src/test/paths.cnst'
10-
import { createTestItemsDBM, TEST_TABLE } from '../src/testing'
8+
import { dbPipelineBackup, dbPipelineCopy, dbPipelineRestore, InMemoryDB } from '../src/index.js'
9+
import { tmpDir } from '../src/test/paths.cnst.js'
10+
import { createTestItemsDBM, TEST_TABLE } from '../src/testing/index.js'
1111

1212
runScript(async () => {
1313
const fileDB1 = new InMemoryDB({

scripts/vitest.script.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ yarn tsx scripts/vitest.script.ts
55
*/
66

77
import { fastGlob, fs2, runScript } from '@naturalcycles/nodejs-lib'
8-
import { projectDir } from '../src/test/paths.cnst'
8+
import { projectDir } from '../src/test/paths.cnst.js'
99

1010
runScript(async () => {
1111
const files = fastGlob.sync(`${projectDir}/{src,scripts}/**/*.test.ts`)

src/adapter/cachedb/cache.db.model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import type { CommonLogger, ObjectWithId } from '@naturalcycles/js-lib'
2-
import type { CommonDB } from '../../common.db'
2+
import type { CommonDB } from '../../common.db.js'
33
import type {
44
CommonDBCreateOptions,
55
CommonDBOptions,
66
CommonDBSaveOptions,
77
CommonDBStreamOptions,
8-
} from '../../db.model'
8+
} from '../../db.model.js'
99

1010
export interface CacheDBCfg {
1111
name: string

src/adapter/cachedb/cache.db.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { describe } from 'vitest'
2-
import { runCommonDaoTest, runCommonDBTest } from '../../testing'
3-
import { InMemoryDB } from '../inmemory/inMemory.db'
4-
import { CacheDB } from './cache.db'
2+
import { runCommonDaoTest, runCommonDBTest } from '../../testing/index.js'
3+
import { InMemoryDB } from '../inmemory/inMemory.db.js'
4+
import { CacheDB } from './cache.db.js'
55

66
const downstreamDB = new InMemoryDB()
77
const cacheDB = new InMemoryDB()

src/adapter/cachedb/cache.db.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ import type {
77
} from '@naturalcycles/js-lib'
88
import { _isTruthy } from '@naturalcycles/js-lib'
99
import type { ReadableTyped } from '@naturalcycles/nodejs-lib'
10-
import { BaseCommonDB } from '../../base.common.db'
11-
import type { CommonDB, CommonDBSupport } from '../../common.db'
12-
import { commonDBFullSupport } from '../../common.db'
13-
import type { RunQueryResult } from '../../db.model'
14-
import type { DBQuery } from '../../query/dbQuery'
10+
import { BaseCommonDB } from '../../base.common.db.js'
11+
import type { CommonDB, CommonDBSupport } from '../../common.db.js'
12+
import { commonDBFullSupport } from '../../common.db.js'
13+
import type { RunQueryResult } from '../../db.model.js'
14+
import type { DBQuery } from '../../query/dbQuery.js'
1515
import type {
1616
CacheDBCfg,
1717
CacheDBCreateOptions,
1818
CacheDBOptions,
1919
CacheDBSaveOptions,
2020
CacheDBStreamOptions,
21-
} from './cache.db.model'
21+
} from './cache.db.model.js'
2222

2323
/**
2424
* CommonDB implementation that proxies requests to downstream CommonDB

src/adapter/cachedb/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { CacheDB } from './cache.db'
1+
import { CacheDB } from './cache.db.js'
22
import type {
33
CacheDBCfg,
44
CacheDBCreateOptions,
55
CacheDBOptions,
66
CacheDBStreamOptions,
7-
} from './cache.db.model'
7+
} from './cache.db.model.js'
88

99
export type { CacheDBCfg, CacheDBCreateOptions, CacheDBOptions, CacheDBStreamOptions }
1010

src/adapter/file/file.db.model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { CommonLogger, ObjectWithId } from '@naturalcycles/js-lib'
2-
import type { DBSaveBatchOperation } from '../../db.model'
3-
import type { DBQueryOrder } from '../../query/dbQuery'
2+
import type { DBSaveBatchOperation } from '../../db.model.js'
3+
import type { DBQueryOrder } from '../../query/dbQuery.js'
44

55
export interface FileDBPersistencePlugin {
66
ping: () => Promise<void>

src/adapter/file/file.db.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { describe } from 'vitest'
2-
import { runCommonDaoTest, runCommonDBTest } from '../../testing'
3-
import { FileDB } from './file.db'
4-
import { InMemoryPersistencePlugin } from './inMemory.persistence.plugin'
2+
import { runCommonDaoTest, runCommonDBTest } from '../../testing/index.js'
3+
import { FileDB } from './file.db.js'
4+
import { InMemoryPersistencePlugin } from './inMemory.persistence.plugin.js'
55

66
const db = new FileDB({
77
plugin: new InMemoryPersistencePlugin(),

src/adapter/file/file.db.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,19 @@ import {
1313
} from '@naturalcycles/js-lib'
1414
import type { ReadableTyped } from '@naturalcycles/nodejs-lib'
1515
import { dimGrey, readableCreate } from '@naturalcycles/nodejs-lib'
16-
import type { CommonDBSupport, DBSaveBatchOperation } from '../..'
17-
import { BaseCommonDB, commonDBFullSupport, queryInMemory } from '../..'
18-
import type { CommonDB } from '../../common.db'
16+
import { BaseCommonDB } from '../../base.common.db.js'
17+
import type { CommonDB, CommonDBSupport } from '../../common.db.js'
18+
import { commonDBFullSupport } from '../../common.db.js'
1919
import type {
2020
CommonDBOptions,
2121
CommonDBSaveOptions,
2222
CommonDBStreamOptions,
23+
DBSaveBatchOperation,
2324
RunQueryResult,
24-
} from '../../db.model'
25-
import type { DBQuery } from '../../query/dbQuery'
26-
import type { FileDBCfg } from './file.db.model'
25+
} from '../../db.model.js'
26+
import type { DBQuery } from '../../query/dbQuery.js'
27+
import { queryInMemory } from '../inmemory/queryInMemory.js'
28+
import type { FileDBCfg } from './file.db.model.js'
2729

2830
/**
2931
* Provides barebone implementation for "whole file" based CommonDB.

src/adapter/file/inMemory.persistence.plugin.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { ObjectWithId, StringMap } from '@naturalcycles/js-lib'
22
import { _by } from '@naturalcycles/js-lib'
3-
import type { DBSaveBatchOperation } from '../../db.model'
4-
import type { FileDBPersistencePlugin } from './file.db.model'
3+
import type { DBSaveBatchOperation } from '../../db.model.js'
4+
import type { FileDBPersistencePlugin } from './file.db.model.js'
55

66
/**
77
* Mostly useful for testing.

src/adapter/file/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { FileDB } from './file.db'
2-
import type { FileDBCfg, FileDBPersistencePlugin } from './file.db.model'
3-
import { LocalFilePersistencePlugin } from './localFile.persistence.plugin'
1+
import { FileDB } from './file.db.js'
2+
import type { FileDBCfg, FileDBPersistencePlugin } from './file.db.model.js'
3+
import { LocalFilePersistencePlugin } from './localFile.persistence.plugin.js'
44

55
export type { FileDBCfg, FileDBPersistencePlugin }
66
export { FileDB, LocalFilePersistencePlugin }

src/adapter/file/localFile.persistence.plugin.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { describe } from 'vitest'
2-
import { runCommonDaoTest, runCommonDBTest } from '../../testing'
3-
import { FileDB } from './file.db'
4-
import { LocalFilePersistencePlugin } from './localFile.persistence.plugin'
2+
import { runCommonDaoTest, runCommonDBTest } from '../../testing/index.js'
3+
import { FileDB } from './file.db.js'
4+
import { LocalFilePersistencePlugin } from './localFile.persistence.plugin.js'
55

66
const db = new FileDB({
77
plugin: new LocalFilePersistencePlugin({

src/adapter/file/localFile.persistence.plugin.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { Readable } from 'node:stream'
22
import type { ObjectWithId } from '@naturalcycles/js-lib'
33
import { pMap } from '@naturalcycles/js-lib'
44
import { _pipeline, fs2 } from '@naturalcycles/nodejs-lib'
5-
import type { DBSaveBatchOperation } from '../../db.model'
6-
import type { FileDBPersistencePlugin } from './file.db.model'
5+
import type { DBSaveBatchOperation } from '../../db.model.js'
6+
import type { FileDBPersistencePlugin } from './file.db.model.js'
77

88
export interface LocalFilePersistencePluginCfg {
99
/**

src/adapter/file/noop.persistence.plugin.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { ObjectWithId } from '@naturalcycles/js-lib'
2-
import type { DBSaveBatchOperation } from '../../db.model'
3-
import type { FileDBPersistencePlugin } from './file.db.model'
2+
import type { DBSaveBatchOperation } from '../../db.model.js'
3+
import type { FileDBPersistencePlugin } from './file.db.model.js'
44

55
export class NoopPersistencePlugin implements FileDBPersistencePlugin {
66
async ping(): Promise<void> {}

src/adapter/inmemory/inMemory.db.test.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
import { describe, expect, test } from 'vitest'
2-
import { createTestItemsDBM, runCommonDaoTest, runCommonDBTest, TEST_TABLE } from '../../testing'
3-
import { InMemoryDB } from './inMemory.db'
2+
import {
3+
createTestItemsDBM,
4+
runCommonDaoTest,
5+
runCommonDBTest,
6+
TEST_TABLE,
7+
} from '../../testing/index.js'
8+
import { InMemoryDB } from './inMemory.db.js'
49

510
const db = new InMemoryDB()
611

src/adapter/inmemory/inMemory.db.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,20 @@ import {
2222
} from '@naturalcycles/js-lib'
2323
import type { ReadableTyped } from '@naturalcycles/nodejs-lib'
2424
import { _pipeline, bufferReviver, dimGrey, fs2, yellow } from '@naturalcycles/nodejs-lib'
25-
import type {
26-
CommonDB,
27-
CommonDBSupport,
28-
CommonDBTransactionOptions,
29-
DBOperation,
30-
DBTransactionFn,
31-
} from '../..'
32-
import { commonDBFullSupport, CommonDBType, queryInMemory } from '../..'
25+
import type { CommonDB, CommonDBSupport } from '../../common.db.js'
26+
import { commonDBFullSupport, CommonDBType } from '../../common.db.js'
3327
import type {
3428
CommonDBCreateOptions,
3529
CommonDBOptions,
3630
CommonDBSaveOptions,
31+
CommonDBTransactionOptions,
32+
DBOperation,
3733
DBTransaction,
34+
DBTransactionFn,
3835
RunQueryResult,
39-
} from '../../db.model'
40-
import type { DBQuery } from '../../query/dbQuery'
36+
} from '../../db.model.js'
37+
import type { DBQuery } from '../../query/dbQuery.js'
38+
import { queryInMemory } from './queryInMemory.js'
4139

4240
export interface InMemoryDBCfg {
4341
/**

src/adapter/inmemory/inMemoryKeyValueDB.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { describe } from 'vitest'
2-
import { runCommonKeyValueDaoTest, runCommonKeyValueDBTest } from '../../testing'
3-
import { InMemoryKeyValueDB } from './inMemoryKeyValueDB'
2+
import { runCommonKeyValueDaoTest, runCommonKeyValueDBTest } from '../../testing/index.js'
3+
import { InMemoryKeyValueDB } from './inMemoryKeyValueDB.js'
44

55
const db = new InMemoryKeyValueDB()
66

src/adapter/inmemory/inMemoryKeyValueDB.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import { Readable } from 'node:stream'
22
import type { StringMap } from '@naturalcycles/js-lib'
33
import type { ReadableTyped } from '@naturalcycles/nodejs-lib'
4-
import type { CommonDBCreateOptions } from '../../db.model'
5-
import type { CommonKeyValueDB, IncrementTuple, KeyValueDBTuple } from '../../kv/commonKeyValueDB'
6-
import { commonKeyValueDBFullSupport } from '../../kv/commonKeyValueDB'
4+
import type { CommonDBCreateOptions } from '../../db.model.js'
5+
import type {
6+
CommonKeyValueDB,
7+
IncrementTuple,
8+
KeyValueDBTuple,
9+
} from '../../kv/commonKeyValueDB.js'
10+
import { commonKeyValueDBFullSupport } from '../../kv/commonKeyValueDB.js'
711

812
export interface InMemoryKeyValueDBCfg {}
913

src/adapter/inmemory/queryInMemory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { ObjectWithId } from '@naturalcycles/js-lib'
22
import { _get, _pick } from '@naturalcycles/js-lib'
3-
import type { DBQuery, DBQueryFilterOperator } from '../../query/dbQuery'
3+
import type { DBQuery, DBQueryFilterOperator } from '../../query/dbQuery.js'
44

55
type FilterFn = (v: any, val: any) => boolean
66
const FILTER_FNS: Record<DBQueryFilterOperator, FilterFn> = {

src/base.common.db.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ import type {
55
StringMap,
66
} from '@naturalcycles/js-lib'
77
import type { ReadableTyped } from '@naturalcycles/nodejs-lib'
8-
import type { CommonDB, CommonDBSupport } from './common.db'
9-
import { CommonDBType } from './common.db'
8+
import type { CommonDB, CommonDBSupport } from './common.db.js'
9+
import { CommonDBType } from './common.db.js'
1010
import type {
1111
CommonDBOptions,
1212
CommonDBSaveOptions,
1313
CommonDBTransactionOptions,
1414
DBTransactionFn,
1515
RunQueryResult,
16-
} from './db.model'
17-
import type { DBQuery } from './query/dbQuery'
18-
import { FakeDBTransaction } from './transaction/dbTransaction.util'
16+
} from './db.model.js'
17+
import type { DBQuery } from './query/dbQuery.js'
18+
import { FakeDBTransaction } from './transaction/dbTransaction.util.js'
1919

2020
/**
2121
* No-op implementation of CommonDB interface.

src/common.db.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import type {
1515
DBTransaction,
1616
DBTransactionFn,
1717
RunQueryResult,
18-
} from './db.model'
19-
import type { DBQuery } from './query/dbQuery'
18+
} from './db.model.js'
19+
import type { DBQuery } from './query/dbQuery.js'
2020

2121
export enum CommonDBType {
2222
'document' = 'document',

src/commondao/common.dao.model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import type {
1515
TransformLogProgressOptions,
1616
TransformMapOptions,
1717
} from '@naturalcycles/nodejs-lib'
18-
import type { CommonDB } from '../common.db'
19-
import type { CommonDBCreateOptions, CommonDBOptions, CommonDBSaveOptions } from '../db.model'
18+
import type { CommonDB } from '../common.db.js'
19+
import type { CommonDBCreateOptions, CommonDBOptions, CommonDBSaveOptions } from '../db.model.js'
2020

2121
export interface CommonDaoHooks<BM extends BaseDBEntity, DBM extends BaseDBEntity, ID = BM['id']> {
2222
/**

src/commondao/common.dao.test.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { MOCK_TS_2018_06_21, mockTime } from '@naturalcycles/dev-lib/dist/testing'
1+
import { MOCK_TS_2018_06_21, mockTime } from '@naturalcycles/dev-lib/dist/testing/index.js'
22
import type { BaseDBEntity, UnixTimestamp } from '@naturalcycles/js-lib'
33
import {
44
_deepFreeze,
@@ -17,19 +17,23 @@ import {
1717
inflateToString,
1818
} from '@naturalcycles/nodejs-lib'
1919
import { beforeEach, describe, expect, test, vi } from 'vitest'
20-
import { InMemoryDB } from '../adapter/inmemory/inMemory.db'
21-
import { DBLibError } from '../cnst'
22-
import type { TestItemBM, TestItemDBM } from '../testing'
20+
import { InMemoryDB } from '../adapter/inmemory/inMemory.db.js'
21+
import { DBLibError } from '../cnst.js'
22+
import type { TestItemBM, TestItemDBM } from '../testing/index.js'
2323
import {
2424
createTestItemBM,
2525
createTestItemsBM,
2626
TEST_TABLE,
2727
testItemBMJsonSchema,
2828
testItemBMSchema,
29-
} from '../testing'
30-
import { CommonDao } from './common.dao'
31-
import type { CommonDaoCfg, CommonDaoOptions, CommonDaoSaveBatchOptions } from './common.dao.model'
32-
import { CommonDaoLogLevel } from './common.dao.model'
29+
} from '../testing/index.js'
30+
import { CommonDao } from './common.dao.js'
31+
import type {
32+
CommonDaoCfg,
33+
CommonDaoOptions,
34+
CommonDaoSaveBatchOptions,
35+
} from './common.dao.model.js'
36+
import { CommonDaoLogLevel } from './common.dao.model.js'
3337

3438
let throwError = false
3539

0 commit comments

Comments
 (0)