@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.
@@ -1,30 +1,13 @@
1
1
  import type { ControlDriverInstance } from '@prisma-next/framework-components/control';
2
- import type { Db, MongoClient } from 'mongodb';
3
-
4
- export interface MongoControlDriverInstance extends ControlDriverInstance<'mongo', 'mongo'> {
5
- readonly db: Db;
6
- }
7
-
8
- class MongoControlDriverImpl implements MongoControlDriverInstance {
9
- readonly familyId = 'mongo' as const;
10
- readonly targetId = 'mongo' as const;
11
- readonly db: Db;
12
- readonly #client: MongoClient;
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
  }
@@ -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
- const mongoDriver = driver as ControlDriverInstance<'mongo', 'mongo'> & { db?: Db };
20
- if (!mongoDriver.db) {
20
+ if (!isMongoControlDriver(driver)) {
21
21
  throw new Error(
22
- 'Mongo control driver does not expose a db property. ' +
23
- 'Use mongoControlDriver.create() from `@prisma-next/driver-mongo/control`.',
22
+ 'Expected a Mongo control driver created by ' +
23
+ 'mongoControlDriver.create() from `@prisma-next/driver-mongo/control`.',
24
24
  );
25
25
  }
26
- return mongoDriver.db;
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 M2.5 family→adapter SPI dispatch refactor: the runner
86
- // dependencies now route every wire-level call through `controlAdapter`, so
87
- // the `family` instance is no longer consulted. Kept on the signature to
88
- // avoid rippling through ~14 call sites mid-orchestration; a follow-up that
89
- // already touches this factory should drop the parameter outright.
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 {
@@ -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"}