@shivaedev/effect-prisma 0.7.1 → 0.9.0
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/CHANGELOG.md +22 -0
- package/README.md +198 -155
- package/dist/database.d.ts +7 -7
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +12 -8
- package/dist/database.js.map +1 -1
- package/dist/databaseTypes.d.ts +33 -0
- package/dist/databaseTypes.d.ts.map +1 -0
- package/dist/{internal/database-types.js → databaseTypes.js} +1 -1
- package/dist/databaseTypes.js.map +1 -0
- package/dist/error.d.ts.map +1 -1
- package/dist/internal/adapters/transaction-settlement.d.ts.map +1 -1
- package/dist/internal/adapters/transaction-settlement.js +9 -7
- package/dist/internal/adapters/transaction-settlement.js.map +1 -1
- package/dist/internal/client-lifecycle.d.ts.map +1 -1
- package/dist/internal/contract-normalization.d.ts.map +1 -1
- package/dist/internal/database-facade.d.ts +12 -12
- package/dist/internal/database-facade.d.ts.map +1 -1
- package/dist/internal/database-facade.js.map +1 -1
- package/dist/internal/database-factory.d.ts +2 -2
- package/dist/internal/database-factory.d.ts.map +1 -1
- package/dist/internal/database-factory.js +3 -3
- package/dist/internal/database-factory.js.map +1 -1
- package/dist/internal/dynamic.d.ts.map +1 -1
- package/dist/internal/dynamic.js +3 -1
- package/dist/internal/dynamic.js.map +1 -1
- package/dist/internal/executor.d.ts +6 -6
- package/dist/internal/executor.d.ts.map +1 -1
- package/dist/internal/promise.d.ts.map +1 -1
- package/dist/internal/query-execution.d.ts.map +1 -1
- package/dist/internal/recipe.d.ts.map +1 -1
- package/dist/internal/recipe.js +10 -10
- package/dist/internal/recipe.js.map +1 -1
- package/dist/internal/relation-plan.d.ts.map +1 -1
- package/dist/internal/relation-result.d.ts.map +1 -1
- package/dist/internal/relation-result.js +6 -2
- package/dist/internal/relation-result.js.map +1 -1
- package/dist/internal/relation-runtime.d.ts +1 -1
- package/dist/internal/relation-runtime.d.ts.map +1 -1
- package/dist/internal/relation-runtime.js +11 -6
- package/dist/internal/relation-runtime.js.map +1 -1
- package/dist/internal/relation-stream.d.ts +1 -1
- package/dist/internal/relation-stream.d.ts.map +1 -1
- package/dist/internal/relation-stream.js +9 -7
- package/dist/internal/relation-stream.js.map +1 -1
- package/dist/internal/sqlite-datetime.d.ts.map +1 -1
- package/dist/internal/sqlite-datetime.js +11 -9
- package/dist/internal/sqlite-datetime.js.map +1 -1
- package/dist/internal/sqlite-pragmas.d.ts.map +1 -1
- package/dist/internal/testing.d.ts +5 -5
- package/dist/internal/testing.d.ts.map +1 -1
- package/dist/internal/testing.js.map +1 -1
- package/dist/internal/transaction.d.ts +6 -6
- package/dist/internal/transaction.d.ts.map +1 -1
- package/dist/internal/transaction.js +5 -3
- package/dist/internal/transaction.js.map +1 -1
- package/dist/relation/include.d.ts +20 -20
- package/dist/relation/include.d.ts.map +1 -1
- package/dist/relation.d.ts +23 -23
- package/dist/relation.d.ts.map +1 -1
- package/dist/sqlite.d.ts +1 -1
- package/dist/sqlite.d.ts.map +1 -1
- package/dist/sqlite.js +8 -6
- package/dist/sqlite.js.map +1 -1
- package/dist/testing/transaction.d.ts +1 -1
- package/dist/testing/transaction.d.ts.map +1 -1
- package/dist/testing/transaction.js.map +1 -1
- package/dist/testing/types.d.ts +2 -3
- package/dist/testing/types.d.ts.map +1 -1
- package/dist/testing/vitest.d.ts +2 -1
- package/dist/testing/vitest.d.ts.map +1 -1
- package/dist/testing/vitest.js +1 -1
- package/dist/testing/vitest.js.map +1 -1
- package/docs/north-star.md +47 -0
- package/docs/roadmap.md +32 -0
- package/package.json +33 -40
- package/src/database.ts +30 -30
- package/src/databaseTypes.ts +65 -0
- package/src/internal/adapters/transaction-settlement.ts +9 -8
- package/src/internal/database-facade.ts +28 -28
- package/src/internal/database-factory.ts +15 -15
- package/src/internal/dynamic.ts +3 -1
- package/src/internal/executor.ts +6 -6
- package/src/internal/recipe.ts +10 -10
- package/src/internal/relation-result.ts +6 -3
- package/src/internal/relation-runtime.ts +25 -20
- package/src/internal/relation-stream.ts +5 -4
- package/src/internal/sqlite-datetime.ts +11 -9
- package/src/internal/testing.ts +8 -8
- package/src/internal/transaction.ts +16 -15
- package/src/relation/include.ts +48 -48
- package/src/relation.ts +38 -38
- package/src/sqlite.ts +9 -7
- package/src/testing/transaction.ts +1 -1
- package/src/testing/types.ts +2 -3
- package/src/testing/vitest.ts +4 -2
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +0 -1
- package/dist/internal/database-types.d.ts +0 -33
- package/dist/internal/database-types.d.ts.map +0 -1
- package/dist/internal/database-types.js.map +0 -1
- package/dist/testing.d.ts +0 -4
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.js +0 -3
- package/dist/testing.js.map +0 -1
- package/src/index.ts +0 -17
- package/src/internal/database-types.ts +0 -65
- package/src/testing.ts +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-settlement.d.ts","sourceRoot":"","sources":["../../../src/internal/adapters/transaction-settlement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;AAC/E,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;AAEjF,UAAU,OAAO;IAChB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;CACzC;
|
|
1
|
+
{"version":3,"file":"transaction-settlement.d.ts","sourceRoot":"","sources":["../../../src/internal/adapters/transaction-settlement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;AAC/E,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;AAEjF,UAAU,OAAO;IAChB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;CACzC;AAuDD,eAAO,MAAM,gBAAgB,YAAmB,OAAO,qBAAqB,OAAO,KAAG,OAAO,CAAC,IAAI,CAOjG,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
function runtimeFailure(code, cause, details) {
|
|
2
|
+
return Object.assign(new Error(code, { cause }), { code, ...details });
|
|
3
|
+
}
|
|
2
4
|
class ConnectionDisposal {
|
|
3
5
|
disposed = false;
|
|
4
6
|
connection;
|
|
@@ -13,7 +15,7 @@ class ConnectionDisposal {
|
|
|
13
15
|
await this.connection.destroy(reason).catch(() => undefined);
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
async function commit({ transaction }, disposal) {
|
|
17
19
|
try {
|
|
18
20
|
await transaction.commit();
|
|
19
21
|
return undefined;
|
|
@@ -22,8 +24,8 @@ const commit = async ({ transaction }, disposal) => {
|
|
|
22
24
|
await transaction.rollback().catch(() => disposal.destroy(commitError));
|
|
23
25
|
return runtimeFailure("RUNTIME.TRANSACTION_COMMIT_FAILED", commitError);
|
|
24
26
|
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
+
}
|
|
28
|
+
async function rollback({ transaction }, disposal) {
|
|
27
29
|
try {
|
|
28
30
|
await transaction.rollback();
|
|
29
31
|
return undefined;
|
|
@@ -32,8 +34,8 @@ const rollback = async ({ transaction }, disposal) => {
|
|
|
32
34
|
await disposal.destroy(rollbackError);
|
|
33
35
|
return runtimeFailure("RUNTIME.TRANSACTION_ROLLBACK_FAILED", rollbackError);
|
|
34
36
|
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
+
}
|
|
38
|
+
async function release({ connection }, disposal, failure) {
|
|
37
39
|
if (disposal.disposed) {
|
|
38
40
|
return;
|
|
39
41
|
}
|
|
@@ -44,7 +46,7 @@ const release = async ({ connection }, disposal, failure) => {
|
|
|
44
46
|
await disposal.destroy(releaseError);
|
|
45
47
|
throw failure === undefined ? releaseError : runtimeFailure("RUNTIME.TRANSACTION_RELEASE_FAILED", failure, { releaseError });
|
|
46
48
|
}
|
|
47
|
-
}
|
|
49
|
+
}
|
|
48
50
|
export const settleConnection = async (settled, commitTransaction) => {
|
|
49
51
|
const disposal = new ConnectionDisposal(settled.connection);
|
|
50
52
|
const failure = commitTransaction ? await commit(settled, disposal) : await rollback(settled, disposal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-settlement.js","sourceRoot":"","sources":["../../../src/internal/adapters/transaction-settlement.ts"],"names":[],"mappings":"AAUA,
|
|
1
|
+
{"version":3,"file":"transaction-settlement.js","sourceRoot":"","sources":["../../../src/internal/adapters/transaction-settlement.ts"],"names":[],"mappings":"AAUA,SAAS,cAAc,CAAC,IAAY,EAAE,KAAc,EAAE,OAA2C;IAChG,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,kBAAkB;IACvB,QAAQ,GAAG,KAAK,CAAC;IACA,UAAU,CAAoB;IAE/C,YAAY,UAA6B;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAe;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACD;AAED,KAAK,UAAU,MAAM,CAAC,EAAE,WAAW,EAAW,EAAE,QAA4B;IAC3E,IAAI,CAAC;QACJ,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IAClB,CAAC;IAAC,OAAO,WAAW,EAAE,CAAC;QACtB,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,OAAO,cAAc,CAAC,mCAAmC,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;AACF,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,EAAE,WAAW,EAAW,EAAE,QAA4B;IAC7E,IAAI,CAAC;QACJ,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IAClB,CAAC;IAAC,OAAO,aAAa,EAAE,CAAC;QACxB,MAAM,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACtC,OAAO,cAAc,CAAC,qCAAqC,EAAE,aAAa,CAAC,CAAC;IAC7E,CAAC;AACF,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,EAAE,UAAU,EAAW,EAAE,QAA4B,EAAE,OAAgB;IAC7F,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO;IACR,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,YAAY,EAAE,CAAC;QACvB,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,oCAAoC,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9H,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAgB,EAAE,iBAA0B,EAAiB,EAAE;IACrG,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxG,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,CAAC;IACf,CAAC;AACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-lifecycle.d.ts","sourceRoot":"","sources":["../../src/internal/client-lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,eAAO,MAAM,sBAAsB,GAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"client-lifecycle.d.ts","sourceRoot":"","sources":["../../src/internal/client-lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,eAAO,MAAM,sBAAsB,GAAU,CAAC,UAAU,eAAe,cAAc,MAAM,CAAC,KAAG,OAAO,CAAC,CAAC,CAQvG,CAAC;AAIF,eAAO,MAAM,yBAAyB,eAAgB,SAAS,MAAM,EAAE,KAAG,IAMzE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-normalization.d.ts","sourceRoot":"","sources":["../../src/internal/contract-normalization.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gCAAgC,
|
|
1
|
+
{"version":3,"file":"contract-normalization.d.ts","sourceRoot":"","sources":["../../src/internal/contract-normalization.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gCAAgC,WAAY,MAAM,KAAG,MAQjE,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { type Context, Effect } from "effect";
|
|
2
|
+
import type { DatabaseIdentifier, DatabaseService, DefaultModels } from "#databaseTypes.ts";
|
|
2
3
|
import { type PrismaError } from "#error.ts";
|
|
3
|
-
import type { DatabaseIdentifier, DatabaseService, DefaultModels } from "./database-types.ts";
|
|
4
4
|
import type { AnySqlContract, DatabaseExecutor } from "./executor.ts";
|
|
5
5
|
import { releaseTransaction, type TransactionOrm } from "./transaction.ts";
|
|
6
|
-
export interface ActiveTransaction<
|
|
7
|
-
readonly executor: DatabaseExecutor<DefaultModels<
|
|
8
|
-
readonly facade: DatabaseService<
|
|
6
|
+
export interface ActiveTransaction<TContract extends AnySqlContract, TIdentifier extends string> {
|
|
7
|
+
readonly executor: DatabaseExecutor<DefaultModels<TContract>, TContract>;
|
|
8
|
+
readonly facade: DatabaseService<TContract, TIdentifier>;
|
|
9
9
|
}
|
|
10
|
-
export interface FacadeScope<
|
|
11
|
-
readonly activeTransaction: Context.Reference<ActiveTransaction<
|
|
12
|
-
readonly executors: WeakMap<DatabaseService<
|
|
13
|
-
readonly service: Context.Service<DatabaseIdentifier<
|
|
10
|
+
export interface FacadeScope<TContract extends AnySqlContract, TIdentifier extends string> {
|
|
11
|
+
readonly activeTransaction: Context.Reference<ActiveTransaction<TContract, TIdentifier> | undefined>;
|
|
12
|
+
readonly executors: WeakMap<DatabaseService<TContract, TIdentifier>, DatabaseExecutor<DefaultModels<TContract>, TContract>>;
|
|
13
|
+
readonly service: Context.Service<DatabaseIdentifier<TContract, TIdentifier>, DatabaseService<TContract, TIdentifier>>;
|
|
14
14
|
}
|
|
15
|
-
export declare function contractModels<
|
|
16
|
-
export declare const namespaceModels: <
|
|
17
|
-
export declare const runTransaction: <
|
|
18
|
-
export declare function makeFacade<
|
|
15
|
+
export declare function contractModels<TModels extends object>(namespace: unknown): TModels;
|
|
16
|
+
export declare const namespaceModels: <TContract extends AnySqlContract, TModels extends object>(contract: TContract, namespacedOrm: TransactionOrm<TContract>) => TModels;
|
|
17
|
+
export declare const runTransaction: <TContract extends AnySqlContract, TIdentifier extends string, A, E, R>(scope: FacadeScope<TContract, TIdentifier>, current: DatabaseExecutor<DefaultModels<TContract>, TContract>, currentFacade: DatabaseService<TContract, TIdentifier>, program: Effect.Effect<A, E, R>, release: typeof releaseTransaction, mode: "test" | "transaction", span: string) => Effect.Effect<A, E | PrismaError, Exclude<R, DatabaseIdentifier<TContract, TIdentifier>>>;
|
|
18
|
+
export declare function makeFacade<TContract extends AnySqlContract, TIdentifier extends string>(scope: FacadeScope<TContract, TIdentifier>, current: DatabaseExecutor<DefaultModels<TContract>, TContract>): DatabaseService<TContract, TIdentifier>;
|
|
19
19
|
//# sourceMappingURL=database-facade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-facade.d.ts","sourceRoot":"","sources":["../../src/internal/database-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"database-facade.d.ts","sourceRoot":"","sources":["../../src/internal/database-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAsB,kBAAkB,EAAE,KAAK,cAAc,EAA4B,MAAM,kBAAkB,CAAC;AAEzH,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,cAAc,EAAE,WAAW,SAAS,MAAM;IAC9F,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IACzE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,WAAW,CAAC,SAAS,SAAS,cAAc,EAAE,WAAW,SAAS,MAAM;IACxF,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC;IACrG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5H,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;CACvH;AAGD,wBAAgB,cAAc,CAAC,OAAO,SAAS,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC;AAWpF,eAAO,MAAM,eAAe,GAAI,SAAS,SAAS,cAAc,EAAE,OAAO,SAAS,MAAM,YAC7E,SAAS,iBACJ,cAAc,CAAC,SAAS,CAAC,KACtC,OASF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,SAAS,cAAc,EAAE,WAAW,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAC5F,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,WACjC,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,iBAC/C,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,WAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,WACtB,OAAO,kBAAkB,QAC5B,MAAM,GAAG,aAAa,QACtB,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAmC1F,CAAC;AAEF,wBAAgB,UAAU,CAAC,SAAS,SAAS,cAAc,EAAE,WAAW,SAAS,MAAM,EACtF,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,EAC1C,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,GAC5D,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CA4CzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-facade.js","sourceRoot":"","sources":["../../src/internal/database-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"database-facade.js","sourceRoot":"","sources":["../../src/internal/database-facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
+
import { type DatabaseIdentifierLiteral, type DefaultModels, type SqlDatabase } from "#databaseTypes.ts";
|
|
2
3
|
import type { PrismaError } from "#error.ts";
|
|
3
|
-
import { type DatabaseIdentifierLiteral, type DefaultModels, type SqlDatabase } from "./database-types.ts";
|
|
4
4
|
import type { AnySqlContract, DatabaseExecutor } from "./executor.ts";
|
|
5
|
-
export declare const makeSqlDatabase: <const
|
|
5
|
+
export declare const makeSqlDatabase: <const TContract extends AnySqlContract, const TIdentifier extends string, TOptions>(identifier: DatabaseIdentifierLiteral<TIdentifier>, acquireExecutor: (options: TOptions) => Effect.Effect<DatabaseExecutor<DefaultModels<TContract>, TContract>, PrismaError>) => SqlDatabase<TContract, TIdentifier, TOptions>;
|
|
6
6
|
//# sourceMappingURL=database-factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-factory.d.ts","sourceRoot":"","sources":["../../src/internal/database-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAS,MAAM,QAAQ,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"database-factory.d.ts","sourceRoot":"","sources":["../../src/internal/database-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAS,MAAM,QAAQ,CAAC;AAChD,OAAO,EAEN,KAAK,yBAAyB,EAE9B,KAAK,aAAa,EAElB,KAAK,WAAW,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMtE,eAAO,MAAM,eAAe,GAAI,KAAK,CAAC,SAAS,SAAS,cAAc,EAAE,KAAK,CAAC,WAAW,SAAS,MAAM,EAAE,QAAQ,cACrG,yBAAyB,CAAC,WAAW,CAAC,mBACjC,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,KACvH,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAgD9C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
import { internalContextIdentifierPrefix, } from "#databaseTypes.ts";
|
|
2
3
|
import { makeFacade, runTransaction } from "./database-facade.js";
|
|
3
|
-
import { internalContextIdentifierPrefix, } from "./database-types.js";
|
|
4
4
|
import { DatabaseTestingTypeId } from "./testing.js";
|
|
5
5
|
import { releaseTestTransaction } from "./transaction.js";
|
|
6
6
|
let activeTransactionReferenceSequence = 0;
|
|
@@ -14,12 +14,12 @@ export const makeSqlDatabase = (identifier, acquireExecutor) => {
|
|
|
14
14
|
executors: new WeakMap(),
|
|
15
15
|
service: Service,
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
function executorOf(facade) {
|
|
18
18
|
const executor = scope.executors.get(facade);
|
|
19
19
|
return executor === undefined
|
|
20
20
|
? Effect.die(new TypeError("The database service was not created by its database Layer"))
|
|
21
21
|
: Effect.succeed(executor);
|
|
22
|
-
}
|
|
22
|
+
}
|
|
23
23
|
const withTestTransaction = (program) => Effect.flatMap(Service, (facade) => Effect.flatMap(executorOf(facade), (current) => runTransaction(scope, current, facade, program, releaseTestTransaction, "test", "prisma.testTransaction")));
|
|
24
24
|
const layer = (layerOptions) => {
|
|
25
25
|
const acquire = Effect.acquireRelease(Effect.suspend(() => acquireExecutor(layerOptions)), (executor) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-factory.js","sourceRoot":"","sources":["../../src/internal/database-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"database-factory.js","sourceRoot":"","sources":["../../src/internal/database-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAKN,+BAA+B,GAE/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAA4C,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,IAAI,kCAAkC,GAAG,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,UAAkD,EAClD,eAAyH,EACzE,EAAE;IAClD,IAAI,UAAU,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC;IAC/E,CAAC;IAID,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAsD,UAAU,CAAC,CAAC;IACjG,MAAM,KAAK,GAAwC;QAClD,iBAAiB,EAAE,OAAO,CAAC,SAAS,CACnC,GAAG,+BAA+B,qBAAqB,kCAAkC,EAAE,EAAE,EAC7F,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CACjC;QACD,SAAS,EAAE,IAAI,OAAO,EAAE;QACxB,OAAO,EAAE,OAAO;KAChB,CAAC;IACF,SAAS,UAAU,CAAC,MAA+C;QAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,QAAQ,KAAK,SAAS;YAC5B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;YACzF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,mBAAmB,GAAG,CAC3B,OAA0E,EACD,EAAE,CAC3E,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAC9C,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,wBAAwB,CAAC,CACzG,CACD,CAAC;IAEH,MAAM,KAAK,GAAG,CAAC,YAAsB,EAAwC,EAAE;QAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CACpC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EACnD,CAAC,QAAQ,EAAE,EAAE;YACZ,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YAC/B,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzE,CAAC,CACD,CAAC;QAEF,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QAC7B,KAAK;QACL,CAAC,qBAAqB,CAAC,EAAE,EAAE,mBAAmB,EAAE;KAChD,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../../src/internal/dynamic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../../src/internal/dynamic.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,UAAW,OAAO,QAAQ,WAAW,KAAG,KAAK,IAAI,MACD,CAAC;AAEvE,eAAO,MAAM,YAAY,WAAY,MAAM,QAAQ,WAAW,cAAc,SAAS,OAAO,EAAE,KAAG,OAMhG,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,OAAO,KAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAA6B,CAAC;AAEzG,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,KAAK,IAAI,aAAa,CAAC,OAAO,CAA2C,CAAC"}
|
package/dist/internal/dynamic.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
function isObjectLike(value) {
|
|
2
|
+
return (typeof value === "object" && value !== null) || typeof value === "function";
|
|
3
|
+
}
|
|
2
4
|
export const hasMethod = (value, name) => isObjectLike(value) && typeof Reflect.get(value, name) === "function";
|
|
3
5
|
export const invokeMethod = (target, name, arguments_) => {
|
|
4
6
|
const method = Reflect.get(target, name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../src/internal/dynamic.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../src/internal/dynamic.ts"],"names":[],"mappings":"AAAA,SAAS,YAAY,CAAC,KAAc;IACnC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,IAAiB,EAAmB,EAAE,CAC/E,YAAY,CAAC,KAAK,CAAC,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,UAAU,CAAC;AAEvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,IAAiB,EAAE,UAA8B,EAAW,EAAE;IAC1G,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAiC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAmC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -4,21 +4,21 @@ import type { ExecutionContext, Runtime } from "@prisma-next/sql-runtime";
|
|
|
4
4
|
import type { Semaphore } from "effect";
|
|
5
5
|
export type AnySqlContract = PrismaContract<SqlStorage>;
|
|
6
6
|
export type AnyPostgresContract = AnySqlContract;
|
|
7
|
-
export interface SqlDatabaseClient<
|
|
7
|
+
export interface SqlDatabaseClient<TContract extends AnySqlContract> {
|
|
8
8
|
close: () => Promise<void>;
|
|
9
|
-
readonly context: ExecutionContext<
|
|
10
|
-
readonly contract:
|
|
9
|
+
readonly context: ExecutionContext<TContract>;
|
|
10
|
+
readonly contract: TContract;
|
|
11
11
|
runtime: () => Runtime;
|
|
12
12
|
}
|
|
13
|
-
export interface DatabaseExecutor<
|
|
14
|
-
readonly client: SqlDatabaseClient<
|
|
13
|
+
export interface DatabaseExecutor<TModels extends object, TContract extends AnySqlContract = AnySqlContract> {
|
|
14
|
+
readonly client: SqlDatabaseClient<TContract>;
|
|
15
15
|
readonly identity: object;
|
|
16
16
|
readonly liveness: {
|
|
17
17
|
readonly closedCode: string;
|
|
18
18
|
open: boolean;
|
|
19
19
|
};
|
|
20
20
|
readonly mode: "root" | "test" | "transaction";
|
|
21
|
-
readonly models:
|
|
21
|
+
readonly models: TModels;
|
|
22
22
|
readonly querySemaphore: Semaphore.Semaphore | undefined;
|
|
23
23
|
readonly transactionIdentity: object | undefined;
|
|
24
24
|
readonly transactionSemaphore: Semaphore.Semaphore | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/internal/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;AACxD,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAEjD,MAAM,WAAW,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/internal/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;AACxD,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAEjD,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,cAAc;IAClE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,EAAE,SAAS,SAAS,cAAc,GAAG,cAAc;IAC1G,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE;QAClB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,IAAI,EAAE,OAAO,CAAC;KACd,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,oBAAoB,EAAE,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;CAC/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/internal/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAmB,KAAK,WAAW,EAAiB,MAAM,WAAW,CAAC;AAE7E,eAAO,MAAM,iBAAiB,GAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/internal/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAmB,KAAK,WAAW,EAAiB,MAAM,WAAW,CAAC;AAE7E,eAAO,MAAM,iBAAiB,GAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAIF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-execution.d.ts","sourceRoot":"","sources":["../../src/internal/query-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,WAAW,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"query-execution.d.ts","sourceRoot":"","sources":["../../src/internal/query-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,WAAW,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YACzB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,gBAAgB,CAAC,UAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,CAMrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/internal/recipe.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/internal/recipe.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,UAAW,MAAM,KAAG,cAA6B,CAAC;AAEzE,eAAO,MAAM,eAAe,WAAY,cAAc,QAAQ,WAAW,cAAc,SAAS,OAAO,EAAE,KAAG,cAO1G,CAAC;AA0FH,eAAO,MAAM,YAAY,WAAY,MAAM,UAAU,cAAc,SAAS,MAAM,uBAAuB,MAAM,GAAG,SAAS,KAAG,OAQ7H,CAAC"}
|
package/dist/internal/recipe.js
CHANGED
|
@@ -9,7 +9,7 @@ export const appendOperation = (parent, name, arguments_) => ({
|
|
|
9
9
|
},
|
|
10
10
|
parent,
|
|
11
11
|
});
|
|
12
|
-
|
|
12
|
+
function operations(recipe) {
|
|
13
13
|
const reversed = [];
|
|
14
14
|
let current = recipe;
|
|
15
15
|
while (current !== undefined) {
|
|
@@ -19,14 +19,14 @@ const operations = (recipe) => {
|
|
|
19
19
|
current = current.parent;
|
|
20
20
|
}
|
|
21
21
|
return reversed.reverse();
|
|
22
|
-
}
|
|
23
|
-
|
|
22
|
+
}
|
|
23
|
+
function applyMethod(current, name, arguments_, model) {
|
|
24
24
|
if (!hasMethod(current, name)) {
|
|
25
25
|
throw new TypeError(`Cannot call ${String(name)} while replaying ${model}`);
|
|
26
26
|
}
|
|
27
27
|
return invokeMethod(current, name, arguments_);
|
|
28
|
-
}
|
|
29
|
-
|
|
28
|
+
}
|
|
29
|
+
function replayPlan(collection, plan, owner, transactionIdentity) {
|
|
30
30
|
if (!plan.liveness.open) {
|
|
31
31
|
throw new TypeError("Included Relation is closed");
|
|
32
32
|
}
|
|
@@ -45,8 +45,8 @@ const replayPlan = (collection, plan, owner, transactionIdentity) => {
|
|
|
45
45
|
return refined;
|
|
46
46
|
}
|
|
47
47
|
return applyMethod(refined, "count", [], plan.recipe.model);
|
|
48
|
-
}
|
|
49
|
-
|
|
48
|
+
}
|
|
49
|
+
function includeRefinement(value, owner, transactionIdentity) {
|
|
50
50
|
const plan = getRelationPlan(value);
|
|
51
51
|
if (plan !== undefined) {
|
|
52
52
|
return (collection) => replayPlan(collection, plan, owner, transactionIdentity);
|
|
@@ -73,8 +73,8 @@ const includeRefinement = (value, owner, transactionIdentity) => {
|
|
|
73
73
|
const branches = Object.fromEntries(plans.map(([name, queryPlan]) => [name, replayPlan(collection, queryPlan, owner, transactionIdentity)]));
|
|
74
74
|
return applyMethod(collection, "combine", [branches], model ?? "relation");
|
|
75
75
|
};
|
|
76
|
-
}
|
|
77
|
-
|
|
76
|
+
}
|
|
77
|
+
function replayRecipeFrom(root, recipe, owner, transactionIdentity) {
|
|
78
78
|
let current = root;
|
|
79
79
|
for (const operation of operations(recipe)) {
|
|
80
80
|
const arguments_ = operation.name === "include" && operation.arguments.length === 2
|
|
@@ -83,7 +83,7 @@ const replayRecipeFrom = (root, recipe, owner, transactionIdentity) => {
|
|
|
83
83
|
current = applyMethod(current, operation.name, arguments_, recipe.model);
|
|
84
84
|
}
|
|
85
85
|
return current;
|
|
86
|
-
}
|
|
86
|
+
}
|
|
87
87
|
export const replayRecipe = (models, recipe, owner, transactionIdentity) => {
|
|
88
88
|
const current = Reflect.get(models, recipe.model);
|
|
89
89
|
if (current === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/internal/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAqB,MAAM,oBAAoB,CAAC;AAaxE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAkB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAsB,EAAE,IAAiB,EAAE,UAA8B,EAAkB,EAAE,CAAC,CAAC;IAC9H,KAAK,EAAE,MAAM,CAAC,KAAK;IACnB,SAAS,EAAE;QACV,SAAS,EAAE,UAAU;QACrB,IAAI;KACJ;IACD,MAAM;CACN,CAAC,CAAC;AAEH,
|
|
1
|
+
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/internal/recipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-plan.d.ts","sourceRoot":"","sources":["../../src/internal/relation-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD;AAID,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"relation-plan.d.ts","sourceRoot":"","sources":["../../src/internal/relation-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD;AAID,eAAO,MAAM,eAAe,UAAW,MAAM,QAAQ,YAAY,KAAG,IAEnE,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,YAAY,GAAG,SAK/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-result.d.ts","sourceRoot":"","sources":["../../src/internal/relation-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"relation-result.d.ts","sourceRoot":"","sources":["../../src/internal/relation-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAY7C,eAAO,MAAM,cAAc,UAAW,OAAO,YAAY,WAAW,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAgBpH,CAAC"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { Effect, Option } from "effect";
|
|
2
2
|
import { hasMethod, invokeMethod, isPromiseLike } from "./dynamic.js";
|
|
3
3
|
import { fromPrismaPromise } from "./promise.js";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
function settle(value, map) {
|
|
5
|
+
return isPromiseLike(value) ? fromPrismaPromise(() => value).pipe(Effect.map(map)) : Effect.succeed(map(value));
|
|
6
|
+
}
|
|
7
|
+
function countOf(result) {
|
|
8
|
+
return typeof result === "object" && result !== null ? Reflect.get(result, "count") : undefined;
|
|
9
|
+
}
|
|
6
10
|
export const evaluateResult = (value, terminal) => {
|
|
7
11
|
if (terminal === "count" && hasMethod(value, "aggregate")) {
|
|
8
12
|
return settle(invokeMethod(value, "aggregate", [(summary) => ({ count: summary.count() })]), countOf);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-result.js","sourceRoot":"","sources":["../../src/internal/relation-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,
|
|
1
|
+
{"version":3,"file":"relation-result.js","sourceRoot":"","sources":["../../src/internal/relation-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,SAAS,MAAM,CAAC,KAAc,EAAE,GAAiC;IAChE,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACjH,CAAC;AAED,SAAS,OAAO,CAAC,MAAe;IAC/B,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjG,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,QAAiC,EAAuC,EAAE;IACxH,IAAI,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,OAAiC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjI,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEpF,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACvG,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC,CAAC"}
|
|
@@ -2,5 +2,5 @@ import { Effect } from "effect";
|
|
|
2
2
|
import type { PrismaError } from "#error.ts";
|
|
3
3
|
import type { Relation } from "#relation.ts";
|
|
4
4
|
import type { AnyPostgresContract, DatabaseExecutor } from "./executor.ts";
|
|
5
|
-
export declare const makeModelRelation: <
|
|
5
|
+
export declare const makeModelRelation: <TCollection, TModels extends object, TExecutorContract extends AnyPostgresContract = AnyPostgresContract, TModel extends string = string>(executor: DatabaseExecutor<TModels, TExecutorContract>, model: TModel, resolveExecutor?: Effect.Effect<DatabaseExecutor<TModels, TExecutorContract>, PrismaError>) => Relation<TCollection, undefined, TModel>;
|
|
6
6
|
//# sourceMappingURL=relation-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-runtime.d.ts","sourceRoot":"","sources":["../../src/internal/relation-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"relation-runtime.d.ts","sourceRoot":"","sources":["../../src/internal/relation-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAwH3E,eAAO,MAAM,iBAAiB,GAC7B,WAAW,EACX,OAAO,SAAS,MAAM,EACtB,iBAAiB,SAAS,mBAAmB,GAAG,mBAAmB,EACnE,MAAM,SAAS,MAAM,GAAG,MAAM,YAEpB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAC/C,MAAM,oBACI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,WAAW,CAAC,KACvF,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAOxC,CAAC"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { Effect, Effectable } from "effect";
|
|
2
|
+
import { hasMethod } from "./dynamic.js";
|
|
2
3
|
import { executeQuery } from "./query-execution.js";
|
|
3
4
|
import { appendOperation, replayRecipe, rootRecipe } from "./recipe.js";
|
|
4
5
|
import { setRelationPlan } from "./relation-plan.js";
|
|
5
6
|
import { evaluateResult } from "./relation-result.js";
|
|
6
7
|
import { makeRelationStream } from "./relation-stream.js";
|
|
7
8
|
const runtimes = new WeakMap();
|
|
8
|
-
|
|
9
|
+
function runtimeOf(self) {
|
|
9
10
|
const runtime = runtimes.get(self);
|
|
10
11
|
if (runtime === undefined) {
|
|
11
12
|
throw new TypeError("Relation runtime is unavailable");
|
|
12
13
|
}
|
|
13
14
|
return runtime;
|
|
14
|
-
}
|
|
15
|
-
|
|
15
|
+
}
|
|
16
|
+
function relationEffect(self) {
|
|
16
17
|
const runtime = runtimeOf(self);
|
|
17
18
|
return Effect.flatMap(runtime.resolveExecutor, (executor) => executeQuery(executor, Effect.suspend(() => evaluateResult(replayRecipe(executor.models, runtime.recipe, executor.identity, executor.transactionIdentity), runtime.terminal)))).pipe(Effect.withSpan(`prisma.${runtime.recipe.model}.${String(runtime.terminal ?? "all")}`, {
|
|
18
19
|
attributes: {
|
|
@@ -22,7 +23,7 @@ const relationEffect = (self) => {
|
|
|
22
23
|
},
|
|
23
24
|
kind: "client",
|
|
24
25
|
}));
|
|
25
|
-
}
|
|
26
|
+
}
|
|
26
27
|
const RelationPrototype = {
|
|
27
28
|
...Effectable.Prototype({
|
|
28
29
|
evaluate() {
|
|
@@ -35,7 +36,7 @@ const RelationPrototype = {
|
|
|
35
36
|
return makeRelationStream(runtime.resolveExecutor, runtime.recipe);
|
|
36
37
|
},
|
|
37
38
|
};
|
|
38
|
-
|
|
39
|
+
function makeRelationProxy(runtime) {
|
|
39
40
|
const target = Object.create(RelationPrototype);
|
|
40
41
|
const proxy = new Proxy(target, {
|
|
41
42
|
get(self, property, receiver) {
|
|
@@ -57,6 +58,10 @@ const makeRelationProxy = (runtime) => {
|
|
|
57
58
|
terminal: "count",
|
|
58
59
|
});
|
|
59
60
|
}
|
|
61
|
+
// Effect reads protocol keys such as its Exit identifier from every yielded value, so only the collection's own methods become Relation calls.
|
|
62
|
+
if (!hasMethod(Reflect.get(runtime.executor.models, runtime.recipe.model), property)) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
60
65
|
return (...arguments_) => makeRelationProxy({
|
|
61
66
|
...runtime,
|
|
62
67
|
recipe: appendOperation(runtime.recipe, property, arguments_),
|
|
@@ -76,7 +81,7 @@ const makeRelationProxy = (runtime) => {
|
|
|
76
81
|
setRelationPlan(value, plan);
|
|
77
82
|
}
|
|
78
83
|
return proxy;
|
|
79
|
-
}
|
|
84
|
+
}
|
|
80
85
|
function asRelation(proxy) {
|
|
81
86
|
return proxy;
|
|
82
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-runtime.js","sourceRoot":"","sources":["../../src/internal/relation-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"relation-runtime.js","sourceRoot":"","sources":["../../src/internal/relation-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@ import { Effect, Stream } from "effect";
|
|
|
2
2
|
import { type PrismaError } from "#error.ts";
|
|
3
3
|
import type { AnyPostgresContract, DatabaseExecutor } from "./executor.ts";
|
|
4
4
|
import { type RelationRecipe } from "./recipe.ts";
|
|
5
|
-
export declare const makeRelationStream: <
|
|
5
|
+
export declare const makeRelationStream: <TModels extends object, TContract extends AnyPostgresContract>(resolveExecutor: Effect.Effect<DatabaseExecutor<TModels, TContract>, PrismaError>, recipe: RelationRecipe) => Stream.Stream<unknown, PrismaError>;
|
|
6
6
|
//# sourceMappingURL=relation-stream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-stream.d.ts","sourceRoot":"","sources":["../../src/internal/relation-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAmB,KAAK,WAAW,EAAiB,MAAM,WAAW,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG3E,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"relation-stream.d.ts","sourceRoot":"","sources":["../../src/internal/relation-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAmB,KAAK,WAAW,EAAiB,MAAM,WAAW,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG3E,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,aAAa,CAAC;AAYhE,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,MAAM,EAAE,SAAS,SAAS,mBAAmB,mBAC9E,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,UACzE,cAAc,KACpB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAwBnC,CAAC"}
|
|
@@ -4,13 +4,15 @@ import { hasMethod, invokeMethod, isAsyncIterable } from "./dynamic.js";
|
|
|
4
4
|
import { fromPrismaPromise } from "./promise.js";
|
|
5
5
|
import { executeQuery } from "./query-execution.js";
|
|
6
6
|
import { replayRecipe } from "./recipe.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
function collectRows(iterable) {
|
|
8
|
+
return fromPrismaPromise(async () => {
|
|
9
|
+
const rows = [];
|
|
10
|
+
for await (const row of iterable) {
|
|
11
|
+
rows.push(row);
|
|
12
|
+
}
|
|
13
|
+
return rows;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
14
16
|
export const makeRelationStream = (resolveExecutor, recipe) => Stream.unwrap(Effect.flatMap(resolveExecutor, (executor) => executeQuery(executor, Effect.sync(() => {
|
|
15
17
|
const collection = replayRecipe(executor.models, recipe, executor.identity, executor.transactionIdentity);
|
|
16
18
|
const iterable = hasMethod(collection, "all") ? invokeMethod(collection, "all", []) : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-stream.js","sourceRoot":"","sources":["../../src/internal/relation-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,eAAe,EAAoB,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAuB,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhE,
|
|
1
|
+
{"version":3,"file":"relation-stream.js","sourceRoot":"","sources":["../../src/internal/relation-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,eAAe,EAAoB,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAuB,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhE,SAAS,WAAW,CAAC,QAAgC;IACpD,OAAO,iBAAiB,CAAC,KAAK,IAAI,EAAE;QACnC,MAAM,IAAI,GAAc,EAAE,CAAC;QAC3B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,eAAiF,EACjF,MAAsB,EACgB,EAAE,CACxC,MAAM,CAAC,MAAM,CACZ,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5C,YAAY,CACX,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IAChB,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC1G,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAC/D,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CACzG,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE/D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC,CAAC,CACF,CACD,CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-datetime.d.ts","sourceRoot":"","sources":["../../src/internal/sqlite-datetime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAapD,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"sqlite-datetime.d.ts","sourceRoot":"","sources":["../../src/internal/sqlite-datetime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAapD,eAAO,MAAM,uBAAuB,UAAW,MAAM,KAAG,MAAmD,CAAC;AAe5G,eAAO,MAAM,0BAA0B,YAAa,gBAAgB,CAAC,cAAc,CAAC,KAAG,IAiCtF,CAAC"}
|