@shivaedev/effect-prisma 0.5.2 → 0.6.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 +25 -0
- package/README.md +25 -7
- package/dist/database.d.ts +6 -6
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +9 -2
- package/dist/database.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/database-factory.d.ts +20 -22
- package/dist/internal/database-factory.d.ts.map +1 -1
- package/dist/internal/database-factory.js +83 -24
- package/dist/internal/database-factory.js.map +1 -1
- package/dist/internal/executor.d.ts +9 -7
- package/dist/internal/executor.d.ts.map +1 -1
- package/dist/internal/query-execution.d.ts +3 -4
- package/dist/internal/query-execution.d.ts.map +1 -1
- package/dist/internal/query-execution.js +9 -3
- package/dist/internal/query-execution.js.map +1 -1
- package/dist/internal/recipe.d.ts +1 -1
- package/dist/internal/recipe.d.ts.map +1 -1
- package/dist/internal/recipe.js +22 -9
- package/dist/internal/recipe.js.map +1 -1
- package/dist/internal/relation-plan.d.ts +6 -1
- package/dist/internal/relation-plan.d.ts.map +1 -1
- package/dist/internal/relation-plan.js +6 -5
- package/dist/internal/relation-plan.js.map +1 -1
- package/dist/internal/relation-runtime.d.ts +4 -3
- package/dist/internal/relation-runtime.d.ts.map +1 -1
- package/dist/internal/relation-runtime.js +38 -19
- package/dist/internal/relation-runtime.js.map +1 -1
- package/dist/internal/relation-stream.d.ts +3 -4
- package/dist/internal/relation-stream.d.ts.map +1 -1
- package/dist/internal/relation-stream.js +23 -21
- package/dist/internal/relation-stream.js.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 -3
- package/dist/internal/transaction.d.ts.map +1 -1
- package/dist/internal/transaction.js +14 -4
- package/dist/internal/transaction.js.map +1 -1
- package/dist/internal/vitest-database.d.ts +2 -2
- package/dist/internal/vitest-database.d.ts.map +1 -1
- package/dist/internal/vitest-database.js.map +1 -1
- package/dist/relation/include.d.ts +10 -8
- package/dist/relation/include.d.ts.map +1 -1
- package/dist/relation/prisma-methods.d.ts +20 -20
- package/dist/relation/prisma-methods.d.ts.map +1 -1
- package/dist/relation.d.ts +8 -7
- package/dist/relation.d.ts.map +1 -1
- package/dist/sqlite.d.ts +6 -6
- package/dist/sqlite.d.ts.map +1 -1
- package/dist/sqlite.js +10 -2
- package/dist/sqlite.js.map +1 -1
- package/dist/testing/transaction.d.ts +3 -3
- package/dist/testing/transaction.d.ts.map +1 -1
- package/dist/testing/transaction.js.map +1 -1
- package/dist/testing/types.d.ts +1 -1
- package/dist/testing/types.d.ts.map +1 -1
- package/dist/testing/vitest.d.ts +3 -3
- package/dist/testing/vitest.d.ts.map +1 -1
- package/dist/testing/vitest.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js.map +1 -1
- package/package.json +5 -5
- package/src/database.ts +53 -47
- package/src/index.ts +0 -1
- package/src/internal/database-factory.ts +221 -98
- package/src/internal/executor.ts +9 -15
- package/src/internal/query-execution.ts +14 -6
- package/src/internal/recipe.ts +46 -7
- package/src/internal/relation-plan.ts +11 -11
- package/src/internal/relation-runtime.ts +67 -65
- package/src/internal/relation-stream.ts +54 -48
- package/src/internal/testing.ts +8 -8
- package/src/internal/transaction.ts +80 -56
- package/src/internal/vitest-database.ts +3 -12
- package/src/relation/include.ts +31 -22
- package/src/relation/prisma-methods.ts +27 -31
- package/src/relation.ts +19 -27
- package/src/sqlite.ts +61 -54
- package/src/testing/transaction.ts +16 -6
- package/src/testing/types.ts +1 -1
- package/src/testing/vitest.ts +3 -10
- package/src/testing.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"include.d.ts","sourceRoot":"","sources":["../../src/relation/include.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,UAAU,IAAI,gBAAgB,EAC9B,aAAa,EACb,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EACX,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,KAAK,QAAQ,CAAC,KAAK,IAAI;KAAG,GAAG,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;CAAE,CAAC;AAE5D,KAAK,UAAU,CAAC,KAAK,IACpB,KAAK,SAAS,aAAa,CAC1B,MAAM,KAAK,EACX,MAAM,
|
|
1
|
+
{"version":3,"file":"include.d.ts","sourceRoot":"","sources":["../../src/relation/include.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,46 +11,46 @@ type FieldTuple<Row> = readonly [keyof Row & string, ...(keyof Row & string)[]];
|
|
|
11
11
|
type Simplify<Value> = {
|
|
12
12
|
[Key in keyof Value]: Value[Key];
|
|
13
13
|
};
|
|
14
|
-
type TerminalMethod<Method
|
|
15
|
-
type SelectMethod<Collection,
|
|
16
|
-
select<Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: Fields): Relation<PrismaCollection<Contract, Model, Pick<DefaultModelRow<Contract, Model>, Fields[number]>, State>,
|
|
14
|
+
type TerminalMethod<Method> = Method extends (...arguments_: infer Arguments) => PromiseLike<infer Value> ? (...arguments_: Arguments) => Effect.Effect<Awaited<Value>, PrismaError> : never;
|
|
15
|
+
type SelectMethod<Collection, Contract, Model extends string, DatabaseId> = Contract extends AnyPostgresContract ? Collection extends PrismaCollection<Contract, Model, infer _Row, infer State> ? {
|
|
16
|
+
select<Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: Fields): Relation<PrismaCollection<Contract, Model, Pick<DefaultModelRow<Contract, Model>, Fields[number]>, State>, Contract, Model, DatabaseId>;
|
|
17
17
|
} : Record<never, never> : Collection extends {
|
|
18
18
|
select: infer Select extends AnyFunction;
|
|
19
19
|
} ? {
|
|
20
|
-
select: Select extends (...arguments_: infer Arguments) => infer Result ? (...arguments_: Arguments) => Result extends object ? Relation<Result,
|
|
20
|
+
select: Select extends (...arguments_: infer Arguments) => infer Result ? (...arguments_: Arguments) => Result extends object ? Relation<Result, Contract, Model, DatabaseId> : never : never;
|
|
21
21
|
} : Record<never, never>;
|
|
22
22
|
type AggregateConfigure<Collection> = Collection extends {
|
|
23
23
|
aggregate: infer Method extends AnyFunction;
|
|
24
24
|
} ? Exclude<Parameters<Method>[1], undefined> : never;
|
|
25
25
|
type AggregateSuccess<Collection, Contract extends AnyPostgresContract, Model extends string, Spec extends AggregateSpec> = Collection extends GroupedCollection<Contract, Model, infer Fields extends FieldTuple<DefaultModelRow<Contract, Model>>> ? Array<Simplify<Pick<DefaultModelRow<Contract, Model>, Fields[number]> & AggregateResult<Spec>>> : AggregateResult<Spec>;
|
|
26
|
-
type AggregateMethod<Collection,
|
|
26
|
+
type AggregateMethod<Collection, Contract, Model extends string> = Contract extends AnyPostgresContract ? Collection extends {
|
|
27
27
|
aggregate: AnyFunction;
|
|
28
28
|
} ? {
|
|
29
|
-
aggregate<Spec extends AggregateSpec>(make: (aggregate: AggregateBuilder<Contract, Model>) => Spec, configure?: AggregateConfigure<Collection>): Effect.Effect<AggregateSuccess<Collection, Contract, Model, Spec>, PrismaError
|
|
29
|
+
aggregate<Spec extends AggregateSpec>(make: (aggregate: AggregateBuilder<Contract, Model>) => Spec, configure?: AggregateConfigure<Collection>): Effect.Effect<AggregateSuccess<Collection, Contract, Model, Spec>, PrismaError>;
|
|
30
30
|
} : Record<never, never> : Record<never, never>;
|
|
31
|
-
type CollectionMethods<Collection,
|
|
32
|
-
groupBy<Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: Fields): Relation<GroupedCollection<Contract, Model, Fields>,
|
|
31
|
+
type CollectionMethods<Collection, Contract, Model extends string, DatabaseId> = Contract extends AnyPostgresContract ? Collection extends PrismaCollection<Contract, Model, infer _Row, infer State> ? {
|
|
32
|
+
groupBy<Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: Fields): Relation<GroupedCollection<Contract, Model, Fields>, Contract, Model, DatabaseId>;
|
|
33
33
|
cursor(values: State extends {
|
|
34
34
|
readonly hasOrderBy: true;
|
|
35
|
-
} ? Partial<Record<keyof DefaultModelRow<Contract, Model> & string, unknown>> : never): Relation<Collection,
|
|
36
|
-
distinct<Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: Fields): Relation<Collection,
|
|
35
|
+
} ? Partial<Record<keyof DefaultModelRow<Contract, Model> & string, unknown>> : never): Relation<Collection, Contract, Model, DatabaseId>;
|
|
36
|
+
distinct<Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: Fields): Relation<Collection, Contract, Model, DatabaseId>;
|
|
37
37
|
distinctOn<Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: State extends {
|
|
38
38
|
readonly hasOrderBy: true;
|
|
39
|
-
} ? Fields : never): Relation<Collection,
|
|
39
|
+
} ? Fields : never): Relation<Collection, Contract, Model, DatabaseId>;
|
|
40
40
|
} & (State extends {
|
|
41
41
|
readonly hasWhere: true;
|
|
42
42
|
} ? {
|
|
43
|
-
readonly [Key in "delete" | "deleteAll" | "deleteCount"]: TerminalMethod<Collection[Key]
|
|
43
|
+
readonly [Key in "delete" | "deleteAll" | "deleteCount"]: TerminalMethod<Collection[Key]>;
|
|
44
44
|
} : Record<never, never>) : Record<never, never> : Record<never, never>;
|
|
45
|
-
type CollectionConveniences<Collection,
|
|
46
|
-
readonly stream: Stream.Stream<Row, PrismaError
|
|
47
|
-
count(): RelationQuery<number,
|
|
48
|
-
exists(): Effect.Effect<boolean, PrismaError
|
|
45
|
+
type CollectionConveniences<Collection, Contract, Model extends string, DatabaseId> = Contract extends AnyPostgresContract ? Collection extends PrismaCollection<Contract, Model, infer Row, infer _State> ? {
|
|
46
|
+
readonly stream: Stream.Stream<Row, PrismaError>;
|
|
47
|
+
count(): RelationQuery<number, Contract, Model, DatabaseId>;
|
|
48
|
+
exists(): Effect.Effect<boolean, PrismaError>;
|
|
49
49
|
} : Record<never, never> : CollectionResult<Collection> extends ReadonlyArray<infer Row> ? {
|
|
50
|
-
readonly stream: Stream.Stream<Row, PrismaError
|
|
51
|
-
count(): Effect.Effect<number, PrismaError
|
|
52
|
-
exists(): Effect.Effect<boolean, PrismaError
|
|
50
|
+
readonly stream: Stream.Stream<Row, PrismaError>;
|
|
51
|
+
count(): Effect.Effect<number, PrismaError>;
|
|
52
|
+
exists(): Effect.Effect<boolean, PrismaError>;
|
|
53
53
|
} : Record<never, never>;
|
|
54
|
-
export type PrismaRelationMethods<Collection,
|
|
54
|
+
export type PrismaRelationMethods<Collection, Contract, Model extends string, DatabaseId> = SelectMethod<Collection, Contract, Model, DatabaseId> & IncludeMethod<Collection, Contract, Model, DatabaseId> & AggregateMethod<Collection, Contract, Model> & CollectionMethods<Collection, Contract, Model, DatabaseId> & CollectionConveniences<Collection, Contract, Model, DatabaseId>;
|
|
55
55
|
export {};
|
|
56
56
|
//# sourceMappingURL=prisma-methods.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-methods.d.ts","sourceRoot":"","sources":["../../src/relation/prisma-methods.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,EACX,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,UAAU,IAAI,gBAAgB,EAC9B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,KAAK,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC;AACpE,KAAK,mBAAmB,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;AACtD,KAAK,UAAU,CAAC,GAAG,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAChF,KAAK,QAAQ,CAAC,KAAK,IAAI;KAAG,GAAG,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;CAAE,CAAC;AAE5D,KAAK,cAAc,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"prisma-methods.d.ts","sourceRoot":"","sources":["../../src/relation/prisma-methods.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,EACX,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,UAAU,IAAI,gBAAgB,EAC9B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,KAAK,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC;AACpE,KAAK,mBAAmB,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;AACtD,KAAK,UAAU,CAAC,GAAG,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAChF,KAAK,QAAQ,CAAC,KAAK,IAAI;KAAG,GAAG,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;CAAE,CAAC;AAE5D,KAAK,cAAc,CAAC,MAAM,IAAI,MAAM,SAAS,CAC5C,GAAG,UAAU,EAAE,MAAM,SAAS,KAC1B,WAAW,CAAC,MAAM,KAAK,CAAC,GAC1B,CAAC,GAAG,UAAU,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,GACxE,KAAK,CAAC;AAET,KAAK,YAAY,CAChB,UAAU,EACV,QAAQ,EACR,KAAK,SAAS,MAAM,EACpB,UAAU,IACP,QAAQ,SAAS,mBAAmB,GACrC,UAAU,SAAS,gBAAgB,CACnC,QAAQ,EACR,KAAK,EACL,MAAM,IAAI,EACV,MAAM,KAAK,CACX,GACC;IACA,MAAM,CAAC,MAAM,SAAS,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EACjE,GAAG,MAAM,EAAE,MAAM,GACf,QAAQ,CACV,gBAAgB,CACf,QAAQ,EACR,KAAK,EACL,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EACtD,KAAK,CACL,EACD,QAAQ,EACR,KAAK,EACL,UAAU,CACV,CAAC;CACF,GACA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GACrB,UAAU,SAAS;IAAE,MAAM,EAAE,MAAM,MAAM,SAAS,WAAW,CAAA;CAAE,GAC9D;IACA,MAAM,EAAE,MAAM,SAAS,CAAC,GAAG,UAAU,EAAE,MAAM,SAAS,KAAK,MAAM,MAAM,GACpE,CACA,GAAG,UAAU,EAAE,SAAS,KACpB,MAAM,SAAS,MAAM,GACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,GAC7C,KAAK,GACP,KAAK,CAAC;CACT,GACA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEzB,KAAK,kBAAkB,CAAC,UAAU,IAAI,UAAU,SAAS;IACxD,SAAS,EAAE,MAAM,MAAM,SAAS,WAAW,CAAC;CAC5C,GACE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GACzC,KAAK,CAAC;AAET,KAAK,gBAAgB,CACpB,UAAU,EACV,QAAQ,SAAS,mBAAmB,EACpC,KAAK,SAAS,MAAM,EACpB,IAAI,SAAS,aAAa,IAE1B,UAAU,SAAS,iBAAiB,CACnC,QAAQ,EACR,KAAK,EACL,MAAM,MAAM,SAAS,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CACjE,GACE,KAAK,CACL,QAAQ,CACP,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GACrD,eAAe,CAAC,IAAI,CAAC,CACtB,CACD,GACA,eAAe,CAAC,IAAI,CAAC,CAAC;AAE1B,KAAK,eAAe,CACnB,UAAU,EACV,QAAQ,EACR,KAAK,SAAS,MAAM,IACjB,QAAQ,SAAS,mBAAmB,GACrC,UAAU,SAAS;IAAE,SAAS,EAAE,WAAW,CAAA;CAAE,GAC5C;IACA,SAAS,CAAC,IAAI,SAAS,aAAa,EACnC,IAAI,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,IAAI,EAC5D,SAAS,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,GACxC,MAAM,CAAC,MAAM,CACf,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EACnD,WAAW,CACX,CAAC;CACF,GACA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GACrB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAExB,KAAK,iBAAiB,CACrB,UAAU,EACV,QAAQ,EACR,KAAK,SAAS,MAAM,EACpB,UAAU,IACP,QAAQ,SAAS,mBAAmB,GACrC,UAAU,SAAS,gBAAgB,CACnC,QAAQ,EACR,KAAK,EACL,MAAM,IAAI,EACV,MAAM,KAAK,CACX,GACC;IACA,OAAO,CAAC,MAAM,SAAS,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAClE,GAAG,MAAM,EAAE,MAAM,GACf,QAAQ,CACV,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,EAC1C,QAAQ,EACR,KAAK,EACL,UAAU,CACV,CAAC;IACF,MAAM,CACL,MAAM,EAAE,KAAK,SAAS;QAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;KAAE,GAChD,OAAO,CACP,MAAM,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,CAChE,GACA,KAAK,GACN,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,SAAS,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EACnE,GAAG,MAAM,EAAE,MAAM,GACf,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACrD,UAAU,CAAC,MAAM,SAAS,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EACrE,GAAG,MAAM,EAAE,KAAK,SAAS;QAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;KAAE,GACnD,MAAM,GACN,KAAK,GACN,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;CACrD,GAAG,CAAC,KAAK,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAC3C;IACA,QAAQ,EAAE,GAAG,IACV,QAAQ,GACR,WAAW,GACX,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;CAClD,GACA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GACvB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GACrB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAExB,KAAK,sBAAsB,CAC1B,UAAU,EACV,QAAQ,EACR,KAAK,SAAS,MAAM,EACpB,UAAU,IACP,QAAQ,SAAS,mBAAmB,GACrC,UAAU,SAAS,gBAAgB,CACnC,QAAQ,EACR,KAAK,EACL,MAAM,GAAG,EACT,MAAM,MAAM,CACZ,GACC;IACA,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjD,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC5D,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;CAC9C,GACA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GACrB,gBAAgB,CAAC,UAAU,CAAC,SAAS,aAAa,CAAC,MAAM,GAAG,CAAC,GAC5D;IACA,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjD,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;CAC9C,GACA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEzB,MAAM,MAAM,qBAAqB,CAChC,UAAU,EACV,QAAQ,EACR,KAAK,SAAS,MAAM,EACpB,UAAU,IACP,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,GACxD,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,GACtD,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,GAC5C,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,GAC1D,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC"}
|
package/dist/relation.d.ts
CHANGED
|
@@ -6,29 +6,30 @@ export type CollectionResult<Collection> = Collection extends {
|
|
|
6
6
|
all(): infer Result;
|
|
7
7
|
} ? Awaited<Result> : never;
|
|
8
8
|
type NormalizeTerminal<Name, Result> = Name extends "first" ? import("effect").Option.Option<Exclude<Result, null>> : Result;
|
|
9
|
-
type WrapReturn<Name, Result,
|
|
10
|
-
type WrapFunction<Name, Function_,
|
|
9
|
+
type WrapReturn<Name, Result, Contract, Model extends string, DatabaseId> = Result extends PromiseLike<infer Value> ? Effect.Effect<NormalizeTerminal<Name, Awaited<Value>>, PrismaError> : Result extends object ? Relation<Result, Contract, Model, DatabaseId> : never;
|
|
10
|
+
type WrapFunction<Name, Function_, Contract, Model extends string, DatabaseId> = Function_ extends {
|
|
11
11
|
(...arguments_: infer Arguments1): infer Result1;
|
|
12
12
|
(...arguments_: infer Arguments2): infer Result2;
|
|
13
13
|
(...arguments_: infer Arguments3): infer Result3;
|
|
14
14
|
(...arguments_: infer Arguments4): infer Result4;
|
|
15
15
|
(...arguments_: infer Arguments5): infer Result5;
|
|
16
16
|
(...arguments_: infer Arguments6): infer Result6;
|
|
17
|
-
} ? ((...arguments_: Arguments1) => WrapReturn<Name, Result1,
|
|
17
|
+
} ? ((...arguments_: Arguments1) => WrapReturn<Name, Result1, Contract, Model, DatabaseId>) & ((...arguments_: Arguments2) => WrapReturn<Name, Result2, Contract, Model, DatabaseId>) & ((...arguments_: Arguments3) => WrapReturn<Name, Result3, Contract, Model, DatabaseId>) & ((...arguments_: Arguments4) => WrapReturn<Name, Result4, Contract, Model, DatabaseId>) & ((...arguments_: Arguments5) => WrapReturn<Name, Result5, Contract, Model, DatabaseId>) & ((...arguments_: Arguments6) => WrapReturn<Name, Result6, Contract, Model, DatabaseId>) : never;
|
|
18
18
|
type FunctionKeys<Value> = {
|
|
19
19
|
[Key in keyof Value]-?: Value[Key] extends AnyFunction ? Key : never;
|
|
20
20
|
}[keyof Value];
|
|
21
21
|
type ExplicitPrismaMethod = "aggregate" | "avg" | "combine" | "count" | "cursor" | "delete" | "deleteAll" | "deleteCount" | "distinct" | "distinctOn" | "groupBy" | "include" | "max" | "min" | "select" | "sum" | "variant";
|
|
22
|
-
type RelationMethods<Collection,
|
|
23
|
-
readonly [Key in Exclude<FunctionKeys<Collection>, ExplicitPrismaMethod>]: WrapFunction<Key, Collection[Key],
|
|
22
|
+
type RelationMethods<Collection, Contract, Model extends string, DatabaseId> = {
|
|
23
|
+
readonly [Key in Exclude<FunctionKeys<Collection>, ExplicitPrismaMethod>]: WrapFunction<Key, Collection[Key], Contract, Model, DatabaseId>;
|
|
24
24
|
};
|
|
25
25
|
declare const RelationQueryTypeId: unique symbol;
|
|
26
|
-
export type RelationQuery<Value,
|
|
26
|
+
export type RelationQuery<Value, Contract, Model extends string, DatabaseId> = Effect.Effect<Value, PrismaError> & {
|
|
27
27
|
readonly [RelationQueryTypeId]: {
|
|
28
28
|
readonly contract: Contract;
|
|
29
|
+
readonly database: (database: DatabaseId) => DatabaseId;
|
|
29
30
|
readonly model: Model;
|
|
30
31
|
};
|
|
31
32
|
};
|
|
32
|
-
export type Relation<Collection,
|
|
33
|
+
export type Relation<Collection, Contract = undefined, Model extends string = string, DatabaseId = undefined> = RelationQuery<CollectionResult<Collection>, Contract, Model, DatabaseId> & RelationMethods<Collection, Contract, Model, DatabaseId> & PrismaRelationMethods<Collection, Contract, Model, DatabaseId>;
|
|
33
34
|
export {};
|
|
34
35
|
//# sourceMappingURL=relation.d.ts.map
|
package/dist/relation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,KAAK,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC;AAEpE,MAAM,MAAM,gBAAgB,CAAC,UAAU,IAAI,UAAU,SAAS;IAC7D,GAAG,IAAI,MAAM,MAAM,CAAC;CACpB,GACE,OAAO,CAAC,MAAM,CAAC,GACf,KAAK,CAAC;AAET,KAAK,iBAAiB,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,SAAS,OAAO,GACxD,OAAO,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GACrD,MAAM,CAAC;AAEV,KAAK,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,KAAK,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC;AAEpE,MAAM,MAAM,gBAAgB,CAAC,UAAU,IAAI,UAAU,SAAS;IAC7D,GAAG,IAAI,MAAM,MAAM,CAAC;CACpB,GACE,OAAO,CAAC,MAAM,CAAC,GACf,KAAK,CAAC;AAET,KAAK,iBAAiB,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,SAAS,OAAO,GACxD,OAAO,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GACrD,MAAM,CAAC;AAEV,KAAK,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,SAAS,MAAM,EAAE,UAAU,IACvE,MAAM,SAAS,WAAW,CAAC,MAAM,KAAK,CAAC,GACpC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GACnE,MAAM,SAAS,MAAM,GACpB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,GAC7C,KAAK,CAAC;AAEX,KAAK,YAAY,CAChB,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,SAAS,MAAM,EACpB,UAAU,IACP,SAAS,SAAS;IACrB,CAAC,GAAG,UAAU,EAAE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;IACjD,CAAC,GAAG,UAAU,EAAE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;IACjD,CAAC,GAAG,UAAU,EAAE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;IACjD,CAAC,GAAG,UAAU,EAAE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;IACjD,CAAC,GAAG,UAAU,EAAE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;IACjD,CAAC,GAAG,UAAU,EAAE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;CACjD,GACE,CAAC,CACD,GAAG,UAAU,EAAE,UAAU,KACrB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,GAC3D,CAAC,CACA,GAAG,UAAU,EAAE,UAAU,KACrB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,GAC5D,CAAC,CACA,GAAG,UAAU,EAAE,UAAU,KACrB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,GAC5D,CAAC,CACA,GAAG,UAAU,EAAE,UAAU,KACrB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,GAC5D,CAAC,CACA,GAAG,UAAU,EAAE,UAAU,KACrB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,GAC5D,CAAC,CACA,GAAG,UAAU,EAAE,UAAU,KACrB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,GAC5D,KAAK,CAAC;AAET,KAAK,YAAY,CAAC,KAAK,IAAI;KACzB,GAAG,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,WAAW,GAAG,GAAG,GAAG,KAAK;CACpE,CAAC,MAAM,KAAK,CAAC,CAAC;AAEf,KAAK,oBAAoB,GACtB,WAAW,GACX,KAAK,GACL,SAAS,GACT,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,aAAa,GACb,UAAU,GACV,YAAY,GACZ,SAAS,GACT,SAAS,GACT,KAAK,GACL,KAAK,GACL,QAAQ,GACR,KAAK,GACL,SAAS,CAAC;AAEb,KAAK,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,SAAS,MAAM,EAAE,UAAU,IAAI;IAC9E,QAAQ,EAAE,GAAG,IAAI,OAAO,CACvB,YAAY,CAAC,UAAU,CAAC,EACxB,oBAAoB,CACpB,GAAG,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC;CACnE,CAAC;AAEF,OAAO,CAAC,MAAM,mBAAmB,EAAE,OAAO,MAAM,CAAC;AAEjD,MAAM,MAAM,aAAa,CACxB,KAAK,EACL,QAAQ,EACR,KAAK,SAAS,MAAM,EACpB,UAAU,IACP,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG;IACvC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE;QAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC5B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,UAAU,CAAC;QACxD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;KACtB,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,QAAQ,CACnB,UAAU,EACV,QAAQ,GAAG,SAAS,EACpB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,UAAU,GAAG,SAAS,IACnB,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,GAC3E,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,GACxD,qBAAqB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC"}
|
package/dist/sqlite.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type SqliteOptionsBase } from "@prisma-next/sqlite/runtime";
|
|
2
|
-
import type
|
|
2
|
+
import { type Layer } from "effect";
|
|
3
3
|
import type { PrismaError } from "./error.js";
|
|
4
|
-
import { type DatabaseIdentifier, type
|
|
5
|
-
import type { AnySqlContract
|
|
4
|
+
import { type DatabaseIdentifier, type DatabaseIdentifierLiteral, type DatabaseServiceHolder } from "./internal/database-factory.js";
|
|
5
|
+
import type { AnySqlContract } from "./internal/executor.js";
|
|
6
6
|
export declare const defaultSqlitePragmas: ReadonlyArray<string>;
|
|
7
7
|
export interface SqliteDatabaseLayerOptions extends SqliteOptionsBase {
|
|
8
8
|
/** Path to the database file. In-memory databases are not supported. */
|
|
@@ -20,9 +20,9 @@ type SqliteFactoryOptions<Contract extends AnySqlContract> = {
|
|
|
20
20
|
readonly contractJson: unknown;
|
|
21
21
|
readonly contract?: never;
|
|
22
22
|
};
|
|
23
|
-
export interface SqliteDatabaseDefinition<Contract extends AnySqlContract,
|
|
24
|
-
readonly layer: (options: SqliteDatabaseLayerOptions) => Layer.Layer<DatabaseIdentifier<Contract
|
|
23
|
+
export interface SqliteDatabaseDefinition<Contract extends AnySqlContract, Identifier extends string> extends DatabaseServiceHolder<Contract, Identifier> {
|
|
24
|
+
readonly layer: (options: SqliteDatabaseLayerOptions) => Layer.Layer<DatabaseIdentifier<Contract, Identifier>, PrismaError>;
|
|
25
25
|
}
|
|
26
|
-
export declare const makeSqliteDatabase: <const Contract extends AnySqlContract>(identifier:
|
|
26
|
+
export declare const makeSqliteDatabase: <const Contract extends AnySqlContract>() => <const Identifier extends string>(identifier: DatabaseIdentifierLiteral<Identifier>, options: SqliteFactoryOptions<Contract>) => SqliteDatabaseDefinition<Contract, Identifier>;
|
|
27
27
|
export {};
|
|
28
28
|
//# sourceMappingURL=sqlite.d.ts.map
|
package/dist/sqlite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../src/sqlite.ts"],"names":[],"mappings":"AAAA,OAAe,EAEd,KAAK,iBAAiB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../src/sqlite.ts"],"names":[],"mappings":"AAAA,OAAe,EAEd,KAAK,iBAAiB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAG1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAQ7D,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,CAAwB,CAAC;AAEhF,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACpE,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACzC;AAED,KAAK,oBAAoB,CAAC,QAAQ,SAAS,cAAc,IACtD;IACA,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;CAC7B,GACD;IACA,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CACzB,CAAC;AAEL,MAAM,WAAW,wBAAwB,CACxC,QAAQ,SAAS,cAAc,EAC/B,UAAU,SAAS,MAAM,CACxB,SAAQ,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,CACf,OAAO,EAAE,0BAA0B,KAC/B,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;CACxE;AAED,eAAO,MAAM,kBAAkB,GAC7B,KAAK,CAAC,QAAQ,SAAS,cAAc,QACrC,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,YAAY,yBAAyB,CAAC,UAAU,CAAC,EACjD,SAAS,oBAAoB,CAAC,QAAQ,CAAC,KACrC,wBAAwB,CAAC,QAAQ,EAAE,UAAU,CAqD/C,CAAC"}
|
package/dist/sqlite.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import sqlite, {} from "@prisma-next/sqlite/runtime";
|
|
2
|
+
import { Semaphore } from "effect";
|
|
2
3
|
import { acquireConnectedClient, assertAvailableModelNames, } from "./internal/client-lifecycle.js";
|
|
3
4
|
import { makeSqlDatabase, } from "./internal/database-factory.js";
|
|
4
5
|
import { fromPrismaPromise } from "./internal/promise.js";
|
|
5
6
|
import { decodeSqliteDatetimesAsUtc } from "./internal/sqlite-datetime.js";
|
|
6
7
|
import { applySqlitePragmas, assertFileBackedPath, } from "./internal/sqlite-pragmas.js";
|
|
7
8
|
export const defaultSqlitePragmas = ["journal_mode=WAL"];
|
|
8
|
-
export const makeSqliteDatabase = (identifier, options) => {
|
|
9
|
+
export const makeSqliteDatabase = () => (identifier, options) => {
|
|
9
10
|
return makeSqlDatabase(identifier, (layerOptions) => {
|
|
10
11
|
assertFileBackedPath(layerOptions.path);
|
|
11
12
|
applySqlitePragmas(layerOptions.path, layerOptions.pragmas ?? defaultSqlitePragmas);
|
|
@@ -31,9 +32,16 @@ export const makeSqliteDatabase = (identifier, options) => {
|
|
|
31
32
|
assertAvailableModelNames(Object.keys(models));
|
|
32
33
|
return {
|
|
33
34
|
client,
|
|
35
|
+
identity: {},
|
|
36
|
+
liveness: {
|
|
37
|
+
closedCode: "RUNTIME.DATABASE_CLOSED",
|
|
38
|
+
open: true,
|
|
39
|
+
},
|
|
40
|
+
mode: "root",
|
|
34
41
|
models,
|
|
35
42
|
querySemaphore: undefined,
|
|
36
|
-
|
|
43
|
+
transactionIdentity: undefined,
|
|
44
|
+
transactionSemaphore: Semaphore.makeUnsafe(1),
|
|
37
45
|
};
|
|
38
46
|
}));
|
|
39
47
|
});
|
package/dist/sqlite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../src/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAGd,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../src/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAGd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAc,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EACN,sBAAsB,EACtB,yBAAyB,GACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAKN,eAAe,GACf,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EACN,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAA0B,CAAC,kBAAkB,CAAC,CAAC;AA+BhF,MAAM,CAAC,MAAM,kBAAkB,GAC9B,GAA0C,EAAE,CAC5C,CACC,UAAiD,EACjD,OAAuC,EACU,EAAE;IAGnD,OAAO,eAAe,CACrB,UAAU,EACV,CAAC,YAAY,EAAE,EAAE;QAChB,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,kBAAkB,CACjB,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,OAAO,IAAI,oBAAoB,CAC5C,CAAC;QAEF,MAAM,aAAa,GAAG;YACrB,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,YAAY,EAAE,YAAY,CAAC,YAAY;SACvC,CAAC;QACF,MAAM,MAAM,GACX,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC7B,CAAC,CAAC,MAAM,CAAW;gBACjB,GAAG,aAAa;gBAChB,YAAY,EAAE,OAAO,CAAC,YAAY;aAClC,CAAC;YACH,CAAC,CAAC,MAAM,CAAW;gBACjB,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC1B,CAAC,CAAC;QAEN,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE3C,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAC7B,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE;YACnC,2DAA2D;YAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAa,CAAC;YACpC,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/C,OAAO;gBACN,MAAM;gBACN,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE;oBACT,UAAU,EAAE,yBAAyB;oBACrC,IAAI,EAAE,IAAI;iBACV;gBACD,IAAI,EAAE,MAAM;gBACZ,MAAM;gBACN,cAAc,EAAE,SAAS;gBACzB,mBAAmB,EAAE,SAAS;gBAC9B,oBAAoB,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;aAC7C,CAAC;QACH,CAAC,CAAC,CACF,CAAC;IACH,CAAC,CACiD,CAAC;AACrD,CAAC,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Effect } from "effect";
|
|
2
2
|
import type { PrismaError } from "../error.js";
|
|
3
|
-
import type { AnyDatabase
|
|
3
|
+
import type { AnyDatabase } from "./types.js";
|
|
4
4
|
type WithTestTransaction = {
|
|
5
|
-
<Database extends AnyDatabase>(database: Database): <A, E, R>(program: Effect.Effect<A, E, R>) => Effect.Effect<A, E | PrismaError,
|
|
6
|
-
<Database extends AnyDatabase, A, E, R>(database: Database, program: Effect.Effect<A, E, R>): Effect.Effect<A, E | PrismaError,
|
|
5
|
+
<Database extends AnyDatabase>(database: Database): <A, E, R>(program: Effect.Effect<A, E, R> & (Effect.Services<Database> extends R ? unknown : never)) => Effect.Effect<A, E | PrismaError, Effect.Services<Database> | Exclude<R, Effect.Services<Database>>>;
|
|
6
|
+
<Database extends AnyDatabase, A, E, R>(database: Database, program: Effect.Effect<A, E, R> & (Effect.Services<Database> extends R ? unknown : never)): Effect.Effect<A, E | PrismaError, Effect.Services<Database> | Exclude<R, Effect.Services<Database>>>;
|
|
7
7
|
};
|
|
8
8
|
export declare const withTestTransaction: WithTestTransaction;
|
|
9
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/testing/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/testing/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,KAAK,mBAAmB,GAAG;IAC1B,CAAC,QAAQ,SAAS,WAAW,EAC5B,QAAQ,EAAE,QAAQ,GAChB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACV,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC9B,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,KACpD,MAAM,CAAC,MAAM,CACjB,CAAC,EACD,CAAC,GAAG,WAAW,EACf,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACjE,CAAC;IACF,CAAC,QAAQ,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC9B,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,GACtD,MAAM,CAAC,MAAM,CACf,CAAC,EACD,CAAC,GAAG,WAAW,EACf,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACjE,CAAC;CACF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,mBAUT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/testing/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/testing/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAyB5D,MAAM,CAAC,MAAM,mBAAmB,GAAwB,CAAC,CACxD,QAAqB,EACrB,OAAkD,EACjD,EAAE;IACH,MAAM,GAAG,GAAG,CAAC,MAAgD,EAAE,EAAE,CAChE,kBAAkB,CACjB,QAAQ,CACR,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE/B,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC,CAAwB,CAAC"}
|
package/dist/testing/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { TestContext, TestOptions, Vitest } from "@effect/vitest";
|
|
2
2
|
import type { Effect, Layer } from "effect";
|
|
3
3
|
import type { AnyDatabase, DatabaseServiceOf } from "../database.js";
|
|
4
|
-
export type { AnyDatabase
|
|
4
|
+
export type { AnyDatabase } from "../database.js";
|
|
5
5
|
export type DatabaseService<Database extends AnyDatabase> = DatabaseServiceOf<Database>;
|
|
6
6
|
export type DatabaseTest<Database extends AnyDatabase, Provided> = <A, Eff extends Effect.Effect<unknown, unknown, Provided>>(name: string, body: (database: DatabaseService<Database>, context: TestContext) => Generator<Eff, A, never>, options?: number | TestOptions) => void;
|
|
7
7
|
export interface DatabaseTester<Database extends AnyDatabase, Provided> extends DatabaseTest<Database, Provided> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/testing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,YAAY,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/testing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,WAAW,IACvD,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAE7B,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,WAAW,EAAE,QAAQ,IAAI,CAClE,CAAC,EACD,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAErD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CACL,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EACnC,OAAO,EAAE,WAAW,KAChB,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,KAC1B,IAAI,CAAC;AAEV,MAAM,WAAW,cAAc,CAAC,QAAQ,SAAS,WAAW,EAAE,QAAQ,CACrE,SAAQ,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1E,QAAQ,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EACnB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KACtB,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAC7D,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CACL,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EACnC,OAAO,EAAE,WAAW,KAChB,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,KAC1B,IAAI,CAAC;IACV,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACjD;AAED,MAAM,MAAM,UAAU,CACrB,QAAQ,SAAS,WAAW,EAC5B,QAAQ,IACL,MAAM,CAAC,OAAO,GAAG;IACpB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,WAAW,qBAAqB,CACrC,QAAQ,SAAS,WAAW,EAC5B,QAAQ,EACR,UAAU;IAEV,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CAClD"}
|
package/dist/testing/vitest.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Effect, Layer } from "effect";
|
|
2
|
-
import type { AnyDatabase, DatabaseIt,
|
|
2
|
+
import type { AnyDatabase, DatabaseIt, MakeDatabaseItOptions } from "./types.js";
|
|
3
3
|
export declare const makeDatabaseIt: <Database extends AnyDatabase, Provided, LayerError>(options: MakeDatabaseItOptions<Database, Provided, LayerError> & {
|
|
4
|
-
readonly layer: Layer.Layer<Provided |
|
|
5
|
-
}) => DatabaseIt<Database, Provided |
|
|
4
|
+
readonly layer: Layer.Layer<Provided | Effect.Services<Database>, LayerError>;
|
|
5
|
+
}) => DatabaseIt<Database, Provided | Effect.Services<Database>>;
|
|
6
6
|
//# sourceMappingURL=vitest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAS,MAAM,QAAQ,CAAC;AAMpD,OAAO,KAAK,EACX,WAAW,EACX,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAS,MAAM,QAAQ,CAAC;AAMpD,OAAO,KAAK,EACX,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,cAAc,GAC1B,QAAQ,SAAS,WAAW,EAC5B,QAAQ,EACR,UAAU,EAEV,SAAS,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG;IAChE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAC1B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACpC,UAAU,CACV,CAAC;CACF,KACC,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAmC3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAEN,WAAW,EACX,kBAAkB,GAClB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAEN,WAAW,EACX,kBAAkB,GAClB,MAAM,gCAAgC,CAAC;AAOxC,MAAM,CAAC,MAAM,cAAc,GAAG,CAK7B,OAKC,EAC4D,EAAE;IAG/D,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAChC,WAAW,EACX,EAAE,KAAK,EAAE,QAAQ,EAAE;IACnB,0GAA0G;IAC1G,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC;YACJ,OAAO,MAAM,MAAM,CAAC,UAAU,CAC7B,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC,CACD,CAAC;IAEF,MAAM,QAAQ,GAAG,kBAAkB,CAClC,SAAgD,EAChD,OAAO,CAAC,QAAQ,CAChB,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QAC1B,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC7B,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC7B,OAAO,QAAQ,CAAC;YACjB,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;KACD,CAA8C,CAAC;AACjD,CAAC,CAAC"}
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { withTestTransaction } from "./testing/transaction.js";
|
|
2
|
-
export type { AnyDatabase, DatabaseIt,
|
|
2
|
+
export type { AnyDatabase, DatabaseIt, DatabaseService, DatabaseTest, DatabaseTester, MakeDatabaseItOptions, } from "./testing/types.js";
|
|
3
3
|
export { makeDatabaseIt } from "./testing/vitest.js";
|
|
4
4
|
//# sourceMappingURL=testing.d.ts.map
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACX,WAAW,EACX,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACX,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,qBAAqB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAS/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/effect-prisma",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Effect-native PostgreSQL queries and transactions for Prisma Next",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"@prisma-next/sqlite": "0.15.0"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
|
-
"@effect/vitest": "4.0.0-
|
|
65
|
-
"effect": "4.0.0-
|
|
64
|
+
"@effect/vitest": "4.0.0-rc.108",
|
|
65
|
+
"effect": "4.0.0-rc.108"
|
|
66
66
|
},
|
|
67
67
|
"peerDependenciesMeta": {
|
|
68
68
|
"@effect/vitest": {
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
|
-
"@effect/vitest": "4.0.0-
|
|
73
|
+
"@effect/vitest": "4.0.0-rc.108",
|
|
74
74
|
"@prisma-next/adapter-postgres": "0.15.0",
|
|
75
75
|
"@prisma-next/adapter-sqlite": "0.15.0",
|
|
76
76
|
"@prisma-next/cli": "0.15.0",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"@types/node": "24.10.1",
|
|
80
80
|
"@types/pg": "8.20.0",
|
|
81
81
|
"@typescript/native": "npm:typescript@7.0.2",
|
|
82
|
-
"effect": "4.0.0-
|
|
82
|
+
"effect": "4.0.0-rc.108",
|
|
83
83
|
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
84
84
|
"vitest": "4.1.9"
|
|
85
85
|
},
|
package/src/database.ts
CHANGED
|
@@ -7,20 +7,17 @@ import type { PrismaError } from "./error.js";
|
|
|
7
7
|
import { acquireConnectedClient } from "./internal/client-lifecycle.js";
|
|
8
8
|
import {
|
|
9
9
|
type DatabaseIdentifier,
|
|
10
|
+
type DatabaseIdentifierLiteral,
|
|
10
11
|
type DatabaseServiceHolder,
|
|
11
12
|
type DefaultModels,
|
|
12
13
|
makeSqlDatabase,
|
|
13
14
|
namespaceModels,
|
|
14
15
|
} from "./internal/database-factory.js";
|
|
15
|
-
import type {
|
|
16
|
-
AnySqlContract,
|
|
17
|
-
ExecutorIdentifier,
|
|
18
|
-
} from "./internal/executor.js";
|
|
16
|
+
import type { AnySqlContract } from "./internal/executor.js";
|
|
19
17
|
import { fromPrismaPromise } from "./internal/promise.js";
|
|
20
18
|
|
|
21
19
|
export type {
|
|
22
20
|
AnyDatabase,
|
|
23
|
-
DatabaseRequirement,
|
|
24
21
|
DatabaseService,
|
|
25
22
|
DatabaseServiceOf,
|
|
26
23
|
} from "./internal/database-factory.js";
|
|
@@ -41,55 +38,64 @@ type DatabaseFactoryOptions<Contract extends AnySqlContract> =
|
|
|
41
38
|
|
|
42
39
|
export interface DatabaseDefinition<
|
|
43
40
|
Contract extends AnySqlContract,
|
|
44
|
-
|
|
45
|
-
> extends DatabaseServiceHolder<Contract,
|
|
41
|
+
Identifier extends string,
|
|
42
|
+
> extends DatabaseServiceHolder<Contract, Identifier> {
|
|
46
43
|
readonly layer: (
|
|
47
44
|
options: DatabaseLayerOptions,
|
|
48
|
-
) => Layer.Layer<DatabaseIdentifier<Contract
|
|
45
|
+
) => Layer.Layer<DatabaseIdentifier<Contract, Identifier>, PrismaError>;
|
|
49
46
|
}
|
|
50
47
|
|
|
51
48
|
const defaultModels = <Contract extends AnySqlContract, Models extends object>(
|
|
52
49
|
client: Pick<PostgresClient<Contract>, "contract" | "orm">,
|
|
53
50
|
): Models => namespaceModels<Contract, Models>(client.contract, client.orm);
|
|
54
51
|
|
|
55
|
-
export const makeDatabase =
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
52
|
+
export const makeDatabase =
|
|
53
|
+
<const Contract extends AnySqlContract>() =>
|
|
54
|
+
<const Identifier extends string>(
|
|
55
|
+
identifier: DatabaseIdentifierLiteral<Identifier>,
|
|
56
|
+
options: DatabaseFactoryOptions<Contract>,
|
|
57
|
+
): DatabaseDefinition<Contract, Identifier> => {
|
|
58
|
+
type Models = DefaultModels<Contract>;
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
60
|
+
return makeSqlDatabase<Contract, Identifier, DatabaseLayerOptions>(
|
|
61
|
+
identifier,
|
|
62
|
+
(layerOptions) => {
|
|
63
|
+
const clientOptions = {
|
|
64
|
+
url:
|
|
65
|
+
typeof layerOptions.url === "string"
|
|
66
|
+
? layerOptions.url
|
|
67
|
+
: Redacted.value(layerOptions.url),
|
|
68
|
+
extensions: layerOptions.extensions,
|
|
69
|
+
middleware: layerOptions.middleware,
|
|
70
|
+
poolOptions: layerOptions.poolOptions,
|
|
71
|
+
verifyMarker: layerOptions.verifyMarker,
|
|
72
|
+
};
|
|
73
|
+
const client =
|
|
74
|
+
options.contract === undefined
|
|
75
|
+
? postgres<Contract>({
|
|
76
|
+
...clientOptions,
|
|
77
|
+
contractJson: options.contractJson,
|
|
78
|
+
})
|
|
79
|
+
: postgres<Contract>({
|
|
80
|
+
...clientOptions,
|
|
81
|
+
contract: options.contract,
|
|
82
|
+
});
|
|
84
83
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
84
|
+
return fromPrismaPromise(() =>
|
|
85
|
+
acquireConnectedClient(client, () => ({
|
|
86
|
+
client,
|
|
87
|
+
identity: {},
|
|
88
|
+
liveness: {
|
|
89
|
+
closedCode: "RUNTIME.DATABASE_CLOSED",
|
|
90
|
+
open: true,
|
|
91
|
+
},
|
|
92
|
+
mode: "root",
|
|
93
|
+
models: defaultModels<Contract, Models>(client),
|
|
94
|
+
querySemaphore: undefined,
|
|
95
|
+
transactionIdentity: undefined,
|
|
96
|
+
transactionSemaphore: undefined,
|
|
97
|
+
})),
|
|
98
|
+
);
|
|
99
|
+
},
|
|
100
|
+
) as DatabaseDefinition<Contract, Identifier>;
|
|
101
|
+
};
|