@prisma-next/adapter-mongo 0.12.0 → 0.13.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/control.d.mts +19 -67
- package/dist/control.d.mts.map +1 -1
- package/dist/control.mjs +158 -162
- package/dist/control.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{mongo-adapter-JuKx_-h9.d.mts → mongo-adapter-Ch21r_Sr.d.mts} +1 -1
- package/dist/mongo-adapter-Ch21r_Sr.d.mts.map +1 -0
- package/dist/{mongo-adapter-DAC5qq3o.mjs → mongo-adapter-ifsSo1o1.mjs} +1 -1
- package/dist/{mongo-adapter-DAC5qq3o.mjs.map → mongo-adapter-ifsSo1o1.mjs.map} +1 -1
- package/dist/runtime.mjs +1 -1
- package/package.json +27 -25
- package/src/core/marker-ledger-collection.ts +32 -0
- package/src/core/marker-ledger.ts +7 -215
- package/src/core/mongo-control-adapter.ts +234 -14
- package/src/core/mongo-control-driver.ts +11 -28
- package/src/core/runner-deps.ts +13 -10
- package/src/exports/control.ts +3 -11
- package/dist/mongo-adapter-JuKx_-h9.d.mts.map +0 -1
|
@@ -1,30 +1,13 @@
|
|
|
1
1
|
import type { ControlDriverInstance } from '@prisma-next/framework-components/control';
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
constructor(db: Db, client: MongoClient) {
|
|
15
|
-
this.db = db;
|
|
16
|
-
this.#client = client;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
query(): Promise<never> {
|
|
20
|
-
throw new Error('MongoDB control driver does not support SQL queries');
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
async close(): Promise<void> {
|
|
24
|
-
await this.#client.close();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function createMongoControlDriver(db: Db, client: MongoClient): MongoControlDriverInstance {
|
|
29
|
-
return new MongoControlDriverImpl(db, client);
|
|
2
|
+
import type { MongoControlDriverInstance } from '@prisma-next/mongo-lowering';
|
|
3
|
+
|
|
4
|
+
export function isMongoControlDriver(
|
|
5
|
+
driver: ControlDriverInstance<'mongo', string>,
|
|
6
|
+
): driver is MongoControlDriverInstance {
|
|
7
|
+
return (
|
|
8
|
+
driver.familyId === 'mongo' &&
|
|
9
|
+
driver.targetId === 'mongo' &&
|
|
10
|
+
'execute' in driver &&
|
|
11
|
+
typeof driver.execute === 'function'
|
|
12
|
+
);
|
|
30
13
|
}
|
package/src/core/runner-deps.ts
CHANGED
|
@@ -14,16 +14,16 @@ import type { Db } from 'mongodb';
|
|
|
14
14
|
import { createMongoAdapter } from '../mongo-adapter';
|
|
15
15
|
import { MongoCommandExecutor, MongoInspectionExecutor } from './command-executor';
|
|
16
16
|
import { MongoControlAdapterImpl } from './mongo-control-adapter';
|
|
17
|
+
import { isMongoControlDriver } from './mongo-control-driver';
|
|
17
18
|
|
|
18
19
|
export function extractDb(driver: ControlDriverInstance<'mongo', 'mongo'>): Db {
|
|
19
|
-
|
|
20
|
-
if (!mongoDriver.db) {
|
|
20
|
+
if (!isMongoControlDriver(driver)) {
|
|
21
21
|
throw new Error(
|
|
22
|
-
'Mongo control driver
|
|
23
|
-
'
|
|
22
|
+
'Expected a Mongo control driver created by ' +
|
|
23
|
+
'mongoControlDriver.create() from `@prisma-next/driver-mongo/control`.',
|
|
24
24
|
);
|
|
25
25
|
}
|
|
26
|
-
return
|
|
26
|
+
return driver.db;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/**
|
|
@@ -57,6 +57,9 @@ export interface MarkerOperations {
|
|
|
57
57
|
readonly edgeId: string;
|
|
58
58
|
readonly from: string;
|
|
59
59
|
readonly to: string;
|
|
60
|
+
readonly migrationName: string;
|
|
61
|
+
readonly migrationHash: string;
|
|
62
|
+
readonly operations: readonly unknown[];
|
|
60
63
|
},
|
|
61
64
|
): Promise<void>;
|
|
62
65
|
}
|
|
@@ -82,11 +85,11 @@ export interface MongoRunnerDependencies {
|
|
|
82
85
|
export function createMongoRunnerDeps(
|
|
83
86
|
controlDriver: ControlDriverInstance<'mongo', 'mongo'>,
|
|
84
87
|
driver: MongoDriver,
|
|
85
|
-
// Vestigial after the
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
88
|
+
// Vestigial after the family→adapter SPI refactor: the runner dependencies
|
|
89
|
+
// now route every wire-level call through `controlAdapter`, so the `family`
|
|
90
|
+
// instance is no longer consulted. Kept on the signature to avoid rippling
|
|
91
|
+
// through ~14 call sites; a follow-up that already touches this factory
|
|
92
|
+
// should drop the parameter outright.
|
|
90
93
|
_family: ControlFamilyInstance<'mongo', MongoSchemaIR>,
|
|
91
94
|
controlAdapter: MongoControlAdapter<'mongo'> = new MongoControlAdapterImpl(),
|
|
92
95
|
): MongoRunnerDependencies {
|
package/src/exports/control.ts
CHANGED
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
import type { MongoControlAdapterDescriptor } from '@prisma-next/family-mongo/control-adapter';
|
|
2
|
+
import type { MongoControlDriverInstance } from '@prisma-next/mongo-lowering';
|
|
2
3
|
|
|
3
4
|
export { MongoCommandExecutor, MongoInspectionExecutor } from '../core/command-executor';
|
|
4
5
|
export { introspectSchema } from '../core/introspect-schema';
|
|
5
|
-
export {
|
|
6
|
-
initMarker,
|
|
7
|
-
readAllMarkers,
|
|
8
|
-
readMarker,
|
|
9
|
-
updateMarker,
|
|
10
|
-
writeLedgerEntry,
|
|
11
|
-
} from '../core/marker-ledger';
|
|
12
6
|
export { MongoControlAdapterImpl } from '../core/mongo-control-adapter';
|
|
13
|
-
export {
|
|
14
|
-
createMongoControlDriver,
|
|
15
|
-
type MongoControlDriverInstance,
|
|
16
|
-
} from '../core/mongo-control-driver';
|
|
7
|
+
export { isMongoControlDriver } from '../core/mongo-control-driver';
|
|
17
8
|
export {
|
|
18
9
|
createMongoRunnerDeps,
|
|
19
10
|
extractDb,
|
|
@@ -21,6 +12,7 @@ export {
|
|
|
21
12
|
type MongoRunnerDependencies,
|
|
22
13
|
} from '../core/runner-deps';
|
|
23
14
|
export { createMongoAdapter } from '../mongo-adapter';
|
|
15
|
+
export type { MongoControlDriverInstance };
|
|
24
16
|
|
|
25
17
|
import { mongoCodecDescriptors } from '../core/codecs';
|
|
26
18
|
import { MongoControlAdapterImpl } from '../core/mongo-control-adapter';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mongo-adapter-JuKx_-h9.d.mts","names":[],"sources":["../src/mongo-adapter.ts"],"mappings":";;;;;;AAySA;;;;AAAkD;;;iBAAlC,kBAAA,CAAA,GAAsB,YAAY"}
|