diff --git a/.github/workflows/npmpublish.yml b/.github/workflows/npmpublish.yml index 4f40ede5..2e465adf 100644 --- a/.github/workflows/npmpublish.yml +++ b/.github/workflows/npmpublish.yml @@ -16,7 +16,7 @@ jobs: # PR ends up red even when only a single integration container is flaky. fail-fast: false matrix: - db: [couch, elasticsearch, mongo, mysql, redis, mock, sqlite, memory, rusty, surrealdb] + db: [couch, dirty, elasticsearch, mongo, mysql, redis, mock, sqlite, memory, rusty, surrealdb] steps: - uses: actions/checkout@v6 diff --git a/databases/dirty_db.ts b/databases/dirty_db.ts index a254a8ee..0a19f861 100644 --- a/databases/dirty_db.ts +++ b/databases/dirty_db.ts @@ -22,7 +22,13 @@ */ import AbstractDatabase, {type Settings} from '../lib/AbstractDatabase'; -import Dirty from 'dirty-ts'; +import DirtyImport from 'dirty-ts'; + +// dirty-ts is a CJS package that exposes the constructor as `module.exports.default` +// with the `__esModule` marker. Under Node's ESM-to-CJS interop, the default +// import resolves to the whole `module.exports` object (not the constructor), +// so unwrap `.default` if it's present. +const Dirty: any = (DirtyImport as any).default ?? DirtyImport; type DirtyDBCallback = (p?:any, keys?: string[])=>{}; diff --git a/databases/dirty_git_db.ts b/databases/dirty_git_db.ts index ced6400c..18577275 100644 --- a/databases/dirty_git_db.ts +++ b/databases/dirty_git_db.ts @@ -18,7 +18,13 @@ import {simpleGit} from 'simple-git' */ -import Dirty from 'dirty-ts'; +import DirtyImport from 'dirty-ts'; + +// dirty-ts is a CJS package that exposes the constructor as `module.exports.default` +// with the `__esModule` marker. Under Node's ESM-to-CJS interop, the default +// import resolves to the whole `module.exports` object (not the constructor), +// so unwrap `.default` if it's present. +const Dirty: any = (DirtyImport as any).default ?? DirtyImport; export default class extends AbstractDatabase { public db: any;