@shivaedev/effect-prisma 0.6.4 → 0.7.1
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 +27 -0
- package/dist/bin/normalize-contract.js +2 -1
- package/dist/bin/normalize-contract.js.map +1 -1
- package/dist/database.d.ts +3 -3
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +4 -4
- package/dist/database.js.map +1 -1
- package/dist/error.js +4 -4
- package/dist/error.js.map +1 -1
- package/dist/internal/adapters/transaction-settlement.d.ts.map +1 -1
- package/dist/internal/adapters/transaction-settlement.js +1 -1
- package/dist/internal/adapters/transaction-settlement.js.map +1 -1
- package/dist/internal/client-lifecycle.d.ts +2 -2
- package/dist/internal/client-lifecycle.d.ts.map +1 -1
- package/dist/internal/client-lifecycle.js.map +1 -1
- package/dist/internal/contract-normalization.d.ts +0 -4
- package/dist/internal/contract-normalization.d.ts.map +1 -1
- package/dist/internal/contract-normalization.js +4 -7
- package/dist/internal/contract-normalization.js.map +1 -1
- package/dist/internal/database-facade.d.ts +1 -6
- package/dist/internal/database-facade.d.ts.map +1 -1
- package/dist/internal/database-facade.js +3 -8
- package/dist/internal/database-facade.js.map +1 -1
- package/dist/internal/database-factory.d.ts +1 -5
- package/dist/internal/database-factory.d.ts.map +1 -1
- package/dist/internal/database-factory.js +1 -7
- package/dist/internal/database-factory.js.map +1 -1
- package/dist/internal/database-types.d.ts +4 -8
- package/dist/internal/database-types.d.ts.map +1 -1
- package/dist/internal/dynamic.d.ts +1 -1
- package/dist/internal/dynamic.d.ts.map +1 -1
- package/dist/internal/dynamic.js.map +1 -1
- package/dist/internal/executor.d.ts +3 -7
- package/dist/internal/executor.d.ts.map +1 -1
- package/dist/internal/promise.d.ts +1 -1
- package/dist/internal/promise.d.ts.map +1 -1
- package/dist/internal/promise.js +2 -2
- package/dist/internal/promise.js.map +1 -1
- package/dist/internal/query-execution.d.ts +1 -1
- package/dist/internal/query-execution.d.ts.map +1 -1
- package/dist/internal/query-execution.js +1 -1
- package/dist/internal/query-execution.js.map +1 -1
- package/dist/internal/recipe.d.ts +3 -3
- package/dist/internal/recipe.d.ts.map +1 -1
- package/dist/internal/recipe.js +2 -2
- package/dist/internal/recipe.js.map +1 -1
- package/dist/internal/relation-result.d.ts +1 -1
- package/dist/internal/relation-result.d.ts.map +1 -1
- package/dist/internal/relation-result.js.map +1 -1
- package/dist/internal/relation-runtime.d.ts +2 -2
- package/dist/internal/relation-runtime.d.ts.map +1 -1
- package/dist/internal/relation-runtime.js +3 -3
- 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 +13 -15
- package/dist/internal/relation-stream.js.map +1 -1
- package/dist/internal/sqlite-datetime.d.ts +0 -26
- package/dist/internal/sqlite-datetime.d.ts.map +1 -1
- package/dist/internal/sqlite-datetime.js +13 -34
- package/dist/internal/sqlite-datetime.js.map +1 -1
- package/dist/internal/sqlite-pragmas.d.ts +1 -13
- package/dist/internal/sqlite-pragmas.d.ts.map +1 -1
- package/dist/internal/sqlite-pragmas.js +2 -12
- package/dist/internal/sqlite-pragmas.js.map +1 -1
- package/dist/internal/testing.d.ts +1 -1
- package/dist/internal/testing.d.ts.map +1 -1
- package/dist/internal/transaction.d.ts +3 -3
- package/dist/internal/transaction.d.ts.map +1 -1
- package/dist/internal/transaction.js +3 -3
- package/dist/internal/transaction.js.map +1 -1
- package/dist/relation/include-metadata.d.ts +1 -1
- package/dist/relation/include-metadata.d.ts.map +1 -1
- package/dist/relation/include.d.ts +7 -4
- package/dist/relation/include.d.ts.map +1 -1
- package/dist/relation/prisma-methods.d.ts +16 -16
- package/dist/relation/prisma-methods.d.ts.map +1 -1
- package/dist/relation.d.ts +3 -3
- package/dist/relation.d.ts.map +1 -1
- package/dist/sqlite.d.ts +4 -9
- package/dist/sqlite.d.ts.map +1 -1
- package/dist/sqlite.js +6 -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 +1 -1
- package/dist/testing/transaction.js.map +1 -1
- package/dist/testing/types.d.ts +7 -7
- package/dist/testing/types.d.ts.map +1 -1
- package/dist/testing/vitest.d.ts.map +1 -1
- package/dist/testing/vitest.js.map +1 -1
- package/dist/testing.d.ts +3 -3
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +2 -2
- package/dist/testing.js.map +1 -1
- package/package.json +42 -36
- package/src/bin/normalize-contract.ts +2 -1
- package/src/database.ts +7 -7
- package/src/error.ts +4 -4
- package/src/internal/adapters/transaction-settlement.ts +4 -1
- package/src/internal/client-lifecycle.ts +2 -2
- package/src/internal/contract-normalization.ts +4 -7
- package/src/internal/database-facade.ts +3 -8
- package/src/internal/database-factory.ts +5 -9
- package/src/internal/database-types.ts +5 -9
- package/src/internal/dynamic.ts +1 -1
- package/src/internal/executor.ts +3 -7
- package/src/internal/promise.ts +2 -2
- package/src/internal/query-execution.ts +1 -1
- package/src/internal/recipe.ts +8 -8
- package/src/internal/relation-result.ts +2 -2
- package/src/internal/relation-runtime.ts +6 -6
- package/src/internal/relation-stream.ts +5 -6
- package/src/internal/sqlite-datetime.ts +13 -34
- package/src/internal/sqlite-pragmas.ts +3 -13
- package/src/internal/testing.ts +1 -1
- package/src/internal/transaction.ts +5 -5
- package/src/relation/include-metadata.ts +1 -1
- package/src/relation/include.ts +36 -34
- package/src/relation/prisma-methods.ts +21 -19
- package/src/relation.ts +3 -3
- package/src/sqlite.ts +10 -15
- package/src/testing/transaction.ts +2 -2
- package/src/testing/types.ts +8 -8
- package/src/testing/vitest.ts +1 -1
- package/src/testing.ts +3 -3
|
@@ -2,10 +2,10 @@ import type { Contract as PrismaContract } from "@prisma-next/contract/types";
|
|
|
2
2
|
import type { SqlStorage } from "@prisma-next/sql-contract/types";
|
|
3
3
|
import type { AggregateBuilder, AggregateResult, AggregateSpec, DefaultModelRow, GroupedCollection, Collection as PrismaCollection } from "@prisma-next/sql-orm-client";
|
|
4
4
|
import type { Effect, Stream } from "effect";
|
|
5
|
-
import type { PrismaError } from "
|
|
6
|
-
import type { CollectionResult, Relation, RelationQuery } from "
|
|
5
|
+
import type { PrismaError } from "#error.ts";
|
|
6
|
+
import type { CollectionResult, Relation, RelationQuery } from "#relation.ts";
|
|
7
7
|
import type { IncludeMethod } from "./include.ts";
|
|
8
|
-
type AnyFunction = (...arguments_:
|
|
8
|
+
type AnyFunction = (...arguments_: readonly never[]) => unknown;
|
|
9
9
|
type AnyPostgresContract = PrismaContract<SqlStorage>;
|
|
10
10
|
type FieldTuple<Row> = readonly [keyof Row & string, ...(keyof Row & string)[]];
|
|
11
11
|
type Simplify<Value> = {
|
|
@@ -13,7 +13,7 @@ type Simplify<Value> = {
|
|
|
13
13
|
};
|
|
14
14
|
type TerminalMethod<Method> = Method extends (...arguments_: infer Arguments) => PromiseLike<infer Value> ? (...arguments_: Arguments) => Effect.Effect<Awaited<Value>, PrismaError> : never;
|
|
15
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)
|
|
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
|
} ? {
|
|
@@ -22,21 +22,21 @@ type SelectMethod<Collection, Contract, Model extends string, DatabaseId> = Cont
|
|
|
22
22
|
type AggregateConfigure<Collection> = Collection extends {
|
|
23
23
|
aggregate: infer Method extends AnyFunction;
|
|
24
24
|
} ? Exclude<Parameters<Method>[1], undefined> : never;
|
|
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>>> ?
|
|
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>>> ? Simplify<Pick<DefaultModelRow<Contract, Model>, Fields[number]> & AggregateResult<Spec>>[] : AggregateResult<Spec>;
|
|
26
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>)
|
|
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
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)
|
|
33
|
-
cursor(values: State extends {
|
|
32
|
+
groupBy: <Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: Fields) => Relation<GroupedCollection<Contract, Model, Fields>, Contract, Model, DatabaseId>;
|
|
33
|
+
cursor: (values: State extends {
|
|
34
34
|
readonly hasOrderBy: true;
|
|
35
|
-
} ? Partial<Record<keyof DefaultModelRow<Contract, Model> & string, unknown>> : never)
|
|
36
|
-
distinct<Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: Fields)
|
|
37
|
-
distinctOn<Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: State extends {
|
|
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
|
+
distinctOn: <Fields extends FieldTuple<DefaultModelRow<Contract, Model>>>(...fields: State extends {
|
|
38
38
|
readonly hasOrderBy: true;
|
|
39
|
-
} ? Fields : never)
|
|
39
|
+
} ? Fields : never) => Relation<Collection, Contract, Model, DatabaseId>;
|
|
40
40
|
} & (State extends {
|
|
41
41
|
readonly hasWhere: true;
|
|
42
42
|
} ? {
|
|
@@ -44,12 +44,12 @@ type CollectionMethods<Collection, Contract, Model extends string, DatabaseId> =
|
|
|
44
44
|
} : Record<never, never>) : Record<never, never> : Record<never, never>;
|
|
45
45
|
type CollectionConveniences<Collection, Contract, Model extends string, DatabaseId> = Contract extends AnyPostgresContract ? Collection extends PrismaCollection<Contract, Model, infer Row, infer _State> ? {
|
|
46
46
|
readonly stream: Stream.Stream<Row, PrismaError>;
|
|
47
|
-
count()
|
|
48
|
-
exists()
|
|
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
50
|
readonly stream: Stream.Stream<Row, PrismaError>;
|
|
51
|
-
count()
|
|
52
|
-
exists()
|
|
51
|
+
count: () => Effect.Effect<number, PrismaError>;
|
|
52
|
+
exists: () => Effect.Effect<boolean, PrismaError>;
|
|
53
53
|
} : Record<never, never>;
|
|
54
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 {};
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"prisma-methods.d.ts","sourceRoot":"","sources":["../../src/relation/prisma-methods.ts"],"names":[],"mappings":"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"}
|
package/dist/relation.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Effect } from "effect";
|
|
2
|
+
import type { PrismaRelationMethods } from "#relation/prisma-methods.ts";
|
|
2
3
|
import type { PrismaError } from "./error.ts";
|
|
3
|
-
|
|
4
|
-
type AnyFunction = (...arguments_: ReadonlyArray<never>) => unknown;
|
|
4
|
+
type AnyFunction = (...arguments_: readonly never[]) => unknown;
|
|
5
5
|
export type CollectionResult<Collection> = Collection extends {
|
|
6
|
-
all()
|
|
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
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;
|
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,
|
|
1
|
+
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"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"}
|
package/dist/sqlite.d.ts
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import { type SqliteOptionsBase } from "@prisma-next/sqlite/runtime";
|
|
2
2
|
import { type Layer } from "effect";
|
|
3
|
+
import type { DatabaseIdentifier, DatabaseIdentifierLiteral, DatabaseServiceHolder } from "#internal/database-types.ts";
|
|
4
|
+
import type { AnySqlContract } from "#internal/executor.ts";
|
|
3
5
|
import type { PrismaError } from "./error.ts";
|
|
4
|
-
|
|
5
|
-
import type { AnySqlContract } from "./internal/executor.ts";
|
|
6
|
-
export declare const defaultSqlitePragmas: ReadonlyArray<string>;
|
|
6
|
+
export declare const defaultSqlitePragmas: readonly string[];
|
|
7
7
|
export interface SqliteDatabaseLayerOptions extends SqliteOptionsBase {
|
|
8
|
-
/** Path to the database file. In-memory databases are not supported. */
|
|
9
8
|
readonly path: string;
|
|
10
|
-
|
|
11
|
-
* Pragmas applied once when the Layer connects. Defaults to
|
|
12
|
-
* {@link defaultSqlitePragmas}; pass `[]` to skip them.
|
|
13
|
-
*/
|
|
14
|
-
readonly pragmas?: ReadonlyArray<string>;
|
|
9
|
+
readonly pragmas?: readonly string[];
|
|
15
10
|
}
|
|
16
11
|
type SqliteFactoryOptions<Contract extends AnySqlContract> = {
|
|
17
12
|
readonly contract: Contract;
|
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,EAAqB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../src/sqlite.ts"],"names":[],"mappings":"AAAA,OAAe,EAAqB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,QAAQ,CAAC;AAI/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,EAAiB,MAAM,6BAA6B,CAAC;AACvI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAyB,CAAC;AAE5E,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;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,CAAC,QAAQ,SAAS,cAAc,EAAE,UAAU,SAAS,MAAM,CACnG,SAAQ,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;CAC5H;AASD,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,CA2C/C,CAAC"}
|
package/dist/sqlite.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import sqlite, {} from "@prisma-next/sqlite/runtime";
|
|
2
2
|
import { Semaphore } from "effect";
|
|
3
|
-
import { acquireConnectedClient, assertAvailableModelNames } from "
|
|
4
|
-
import { contractModels } from "
|
|
5
|
-
import { makeSqlDatabase } from "
|
|
6
|
-
import { fromPrismaPromise } from "
|
|
7
|
-
import { decodeSqliteDatetimesAsUtc } from "
|
|
8
|
-
import { applySqlitePragmas, assertFileBackedPath } from "
|
|
3
|
+
import { acquireConnectedClient, assertAvailableModelNames } from "#internal/client-lifecycle.ts";
|
|
4
|
+
import { contractModels } from "#internal/database-facade.ts";
|
|
5
|
+
import { makeSqlDatabase } from "#internal/database-factory.ts";
|
|
6
|
+
import { fromPrismaPromise } from "#internal/promise.ts";
|
|
7
|
+
import { decodeSqliteDatetimesAsUtc } from "#internal/sqlite-datetime.ts";
|
|
8
|
+
import { applySqlitePragmas, assertFileBackedPath } from "#internal/sqlite-pragmas.ts";
|
|
9
9
|
export const defaultSqlitePragmas = ["journal_mode=WAL"];
|
|
10
10
|
const clientOptions = ({ path, extensions, middleware, verifyMarker }) => ({
|
|
11
11
|
path,
|
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,EAA6C,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAc,SAAS,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../src/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAA6C,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAc,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,MAAM,CAAC,MAAM,oBAAoB,GAAsB,CAAC,kBAAkB,CAAC,CAAC;AAsB5E,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAA8B,EAAE,EAAE,CAAC,CAAC;IACtG,IAAI;IACJ,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;IACnD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;IACnD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAC9B,GAA0C,EAAE,CAC5C,CACC,UAAiD,EACjD,OAAuC,EACU,EAAE;IAGnD,OAAO,eAAe,CAAmD,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE;QACrG,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,IAAI,oBAAoB,CAAC,CAAC;QAEpF,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,MAAM,GACX,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC7B,CAAC,CAAC,MAAM,CAAW;gBACjB,GAAG,SAAS;gBACZ,YAAY,EAAE,OAAO,CAAC,YAAY;aAClC,CAAC;YACH,CAAC,CAAC,MAAM,CAAW;gBACjB,GAAG,SAAS;gBACZ,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,cAAc,CAAS,MAAM,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChD,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,eAAe;gBAC/B,mBAAmB,EAAE,SAAS;gBAC9B,oBAAoB,EAAE,eAAe;aACrC,CAAC;QACH,CAAC,CAAC,CACF,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Effect } from "effect";
|
|
2
|
-
import type { PrismaError } from "
|
|
2
|
+
import type { PrismaError } from "#error.ts";
|
|
3
3
|
import type { AnyDatabase } from "./types.ts";
|
|
4
4
|
type TestProgram<Database extends AnyDatabase, A, E, R> = Effect.Effect<A, E, R> & (Effect.Services<Database> extends R ? unknown : never);
|
|
5
5
|
type TestTransaction<Database extends AnyDatabase, A, E, R> = Effect.Effect<A, E | PrismaError, Effect.Services<Database> | Exclude<R, Effect.Services<Database>>>;
|
|
@@ -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,
|
|
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,WAAW,CAAC;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,KAAK,WAAW,CAAC,QAAQ,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;AAE3I,KAAK,eAAe,CAAC,QAAQ,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAC1E,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;AAEF,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,WAAW,EAC/D,QAAQ,EAAE,QAAQ,GAChB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACxE,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrC,eAAe,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getDatabaseTesting } from "
|
|
1
|
+
import { getDatabaseTesting } from "#internal/testing.ts";
|
|
2
2
|
export function withTestTransaction(database, program) {
|
|
3
3
|
const run = (effect) => getDatabaseTesting(database).withTestTransaction(effect);
|
|
4
4
|
return program === undefined ? run : run(program);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/testing/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/testing/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAkB1D,MAAM,UAAU,mBAAmB,CAAC,QAAqB,EAAE,OAAkD;IAC5G,MAAM,GAAG,GAAG,CAAC,MAAgD,EAAE,EAAE,CAAC,kBAAkB,CAAU,QAAQ,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEpI,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC"}
|
package/dist/testing/types.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type { TestContext, Vitest } from "@effect/vitest";
|
|
2
|
-
import type { EffectClock, EffectTestOptions } from "@shivaedev/effect-test";
|
|
3
2
|
import type { Effect, Layer } from "effect";
|
|
4
|
-
import type {
|
|
5
|
-
|
|
3
|
+
import type { EffectClock, EffectTestOptions } from "@shivaedev/effect-test";
|
|
4
|
+
import type { AnyDatabase, DatabaseServiceOf } from "#database.ts";
|
|
5
|
+
export type { AnyDatabase } from "#database.ts";
|
|
6
6
|
export type DatabaseService<Database extends AnyDatabase> = DatabaseServiceOf<Database>;
|
|
7
7
|
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 | EffectTestOptions) => void;
|
|
8
8
|
export interface DatabaseTester<Database extends AnyDatabase, Provided> extends DatabaseTest<Database, Provided> {
|
|
9
|
+
readonly each: <Item>(cases: readonly Item[]) => <A, Eff extends Effect.Effect<unknown, unknown, Provided>>(name: string, body: (item: Item, database: DatabaseService<Database>, context: TestContext) => Generator<Eff, A, never>, options?: number | EffectTestOptions) => void;
|
|
10
|
+
readonly fails: DatabaseTest<Database, Provided>;
|
|
11
|
+
readonly only: DatabaseTest<Database, Provided>;
|
|
12
|
+
readonly runIf: (condition: unknown) => DatabaseTest<Database, Provided>;
|
|
9
13
|
readonly skip: DatabaseTest<Database, Provided>;
|
|
10
14
|
readonly skipIf: (condition: unknown) => DatabaseTest<Database, Provided>;
|
|
11
|
-
readonly runIf: (condition: unknown) => DatabaseTest<Database, Provided>;
|
|
12
|
-
readonly only: DatabaseTest<Database, Provided>;
|
|
13
|
-
readonly each: <Item>(cases: ReadonlyArray<Item>) => <A, Eff extends Effect.Effect<unknown, unknown, Provided>>(name: string, body: (item: Item, database: DatabaseService<Database>, context: TestContext) => Generator<Eff, A, never>, options?: number | EffectTestOptions) => void;
|
|
14
|
-
readonly fails: DatabaseTest<Database, Provided>;
|
|
15
15
|
}
|
|
16
16
|
export type DatabaseIt<Database extends AnyDatabase, Provided> = Vitest.Methods & {
|
|
17
17
|
readonly effectDB: DatabaseTester<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,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/testing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEnE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,WAAW,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAExF,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,WAAW,EAAE,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAC3H,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAC7F,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,KAChC,IAAI,CAAC;AAEV,MAAM,WAAW,cAAc,CAAC,QAAQ,SAAS,WAAW,EAAE,QAAQ,CAAE,SAAQ,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC/G,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EACnB,KAAK,EAAE,SAAS,IAAI,EAAE,KAClB,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAC7D,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EACzG,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,KAChC,IAAI,CAAC;IACV,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,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,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CAC1E;AAED,MAAM,MAAM,UAAU,CAAC,QAAQ,SAAS,WAAW,EAAE,QAAQ,IAAI,MAAM,CAAC,OAAO,GAAG;IACjF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,WAAW,EAAE,QAAQ,EAAE,UAAU;IACxF,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CAClD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG5C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEjF,wBAAgB,cAAc,CAAC,QAAQ,SAAS,WAAW,EAAE,QAAQ,EAAE,UAAU,EAChF,OAAO,EAAE,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG;IAChE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;CAC9E,GACC,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,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;
|
|
1
|
+
{"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAoB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,MAAM,UAAU,cAAc,CAAC,OAI9B;IACA,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;QAClC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;QACjE,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ;KACnC,CAAC,CAAC;IAEH,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QAC1B,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC7B,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { withTestTransaction } from "
|
|
2
|
-
export type { AnyDatabase, DatabaseIt, DatabaseService, DatabaseTest, DatabaseTester, MakeDatabaseItOptions, } from "
|
|
3
|
-
export { makeDatabaseIt } from "
|
|
1
|
+
export { withTestTransaction } from "#testing/transaction.ts";
|
|
2
|
+
export type { AnyDatabase, DatabaseIt, DatabaseService, DatabaseTest, DatabaseTester, MakeDatabaseItOptions, } from "#testing/types.ts";
|
|
3
|
+
export { makeDatabaseIt } from "#testing/vitest.ts";
|
|
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,
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EACX,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,qBAAqB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/testing.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { withTestTransaction } from "
|
|
2
|
-
export { makeDatabaseIt } from "
|
|
1
|
+
export { withTestTransaction } from "#testing/transaction.ts";
|
|
2
|
+
export { makeDatabaseIt } from "#testing/vitest.ts";
|
|
3
3
|
//# sourceMappingURL=testing.js.map
|
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,
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAS9D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,31 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/effect-prisma",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Effect-native PostgreSQL queries and transactions for Prisma Next",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/ShivaeDev/platform.git",
|
|
10
|
-
"directory": "packages/effect-prisma"
|
|
11
|
-
},
|
|
12
5
|
"homepage": "https://github.com/ShivaeDev/platform/tree/main/packages/effect-prisma#readme",
|
|
13
6
|
"bugs": {
|
|
14
7
|
"url": "https://github.com/ShivaeDev/platform/issues"
|
|
15
8
|
},
|
|
16
|
-
"
|
|
17
|
-
"
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/ShivaeDev/platform.git",
|
|
12
|
+
"directory": "packages/effect-prisma"
|
|
18
13
|
},
|
|
14
|
+
"license": "MIT",
|
|
19
15
|
"sideEffects": false,
|
|
20
|
-
"
|
|
21
|
-
|
|
16
|
+
"type": "module",
|
|
17
|
+
"imports": {
|
|
18
|
+
"#test/*": "./test/*",
|
|
19
|
+
"#*.ts": {
|
|
20
|
+
"source": "./src/*.ts",
|
|
21
|
+
"types": "./dist/*.d.ts",
|
|
22
|
+
"default": "./dist/*.js"
|
|
23
|
+
}
|
|
22
24
|
},
|
|
23
|
-
"files": [
|
|
24
|
-
"dist",
|
|
25
|
-
"src",
|
|
26
|
-
"CHANGELOG.md",
|
|
27
|
-
"README.md"
|
|
28
|
-
],
|
|
29
25
|
"exports": {
|
|
30
26
|
".": {
|
|
31
27
|
"types": "./dist/index.d.ts",
|
|
@@ -47,10 +43,15 @@
|
|
|
47
43
|
},
|
|
48
44
|
"./package.json": "./package.json"
|
|
49
45
|
},
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"provenance": true
|
|
46
|
+
"bin": {
|
|
47
|
+
"effect-prisma-normalize": "./dist/bin/normalize-contract.js"
|
|
53
48
|
},
|
|
49
|
+
"files": [
|
|
50
|
+
"dist",
|
|
51
|
+
"src",
|
|
52
|
+
"CHANGELOG.md",
|
|
53
|
+
"README.md"
|
|
54
|
+
],
|
|
54
55
|
"dependencies": {
|
|
55
56
|
"@prisma-next/contract": "0.15.0",
|
|
56
57
|
"@prisma-next/postgres": "0.15.0",
|
|
@@ -59,16 +60,7 @@
|
|
|
59
60
|
"@prisma-next/sql-relational-core": "0.15.0",
|
|
60
61
|
"@prisma-next/sql-runtime": "0.15.0",
|
|
61
62
|
"@prisma-next/sqlite": "0.15.0",
|
|
62
|
-
"@shivaedev/effect-test": "0.1.
|
|
63
|
-
},
|
|
64
|
-
"peerDependencies": {
|
|
65
|
-
"@effect/vitest": "4.0.0-rc.112",
|
|
66
|
-
"effect": "4.0.0-rc.112"
|
|
67
|
-
},
|
|
68
|
-
"peerDependenciesMeta": {
|
|
69
|
-
"@effect/vitest": {
|
|
70
|
-
"optional": true
|
|
71
|
-
}
|
|
63
|
+
"@shivaedev/effect-test": "0.1.3"
|
|
72
64
|
},
|
|
73
65
|
"devDependencies": {
|
|
74
66
|
"@effect/vitest": "4.0.0-rc.112",
|
|
@@ -77,6 +69,7 @@
|
|
|
77
69
|
"@prisma-next/cli": "0.15.0",
|
|
78
70
|
"@prisma-next/target-postgres": "0.15.0",
|
|
79
71
|
"@prisma-next/target-sqlite": "0.15.0",
|
|
72
|
+
"@shivaedev/quality": "0.7.3",
|
|
80
73
|
"@types/node": "24.10.1",
|
|
81
74
|
"@types/pg": "8.20.0",
|
|
82
75
|
"@typescript/native": "npm:typescript@7.0.2",
|
|
@@ -84,13 +77,26 @@
|
|
|
84
77
|
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
85
78
|
"vitest": "4.1.9"
|
|
86
79
|
},
|
|
80
|
+
"peerDependencies": {
|
|
81
|
+
"@effect/vitest": "4.0.0-rc.112",
|
|
82
|
+
"effect": "4.0.0-rc.112"
|
|
83
|
+
},
|
|
84
|
+
"peerDependenciesMeta": {
|
|
85
|
+
"@effect/vitest": {
|
|
86
|
+
"optional": true
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"engines": {
|
|
90
|
+
"node": ">=24"
|
|
91
|
+
},
|
|
92
|
+
"publishConfig": {
|
|
93
|
+
"access": "public",
|
|
94
|
+
"provenance": true
|
|
95
|
+
},
|
|
87
96
|
"scripts": {
|
|
88
97
|
"build": "node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { force: true, recursive: true }))\" && tsc6 --project tsconfig.build.json",
|
|
89
|
-
"
|
|
98
|
+
"ready": "pnpm typecheck && pnpm test && pnpm build",
|
|
90
99
|
"test": "vitest run",
|
|
91
|
-
"
|
|
92
|
-
"typecheck": "tsc --noEmit",
|
|
93
|
-
"typecheck:compat": "tsc6 --noEmit",
|
|
94
|
-
"ready": "pnpm check && pnpm typecheck && pnpm typecheck:compat && pnpm test && pnpm build && pnpm test:package"
|
|
100
|
+
"typecheck": "tsc --noEmit"
|
|
95
101
|
}
|
|
96
102
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { readFile, writeFile } from "node:fs/promises";
|
|
4
|
-
import
|
|
4
|
+
import process from "node:process";
|
|
5
|
+
import { normalizePrismaNextContractTypes } from "#internal/contract-normalization.ts";
|
|
5
6
|
|
|
6
7
|
const arguments_ = process.argv.slice(2);
|
|
7
8
|
if (arguments_.length !== 1 || arguments_[0] === undefined) {
|
package/src/database.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import postgres, { type PostgresClient, type PostgresOptionsBase } from "@prisma-next/postgres/runtime";
|
|
2
2
|
import { type Layer, Redacted } from "effect";
|
|
3
|
+
import { acquireConnectedClient } from "#internal/client-lifecycle.ts";
|
|
4
|
+
import { namespaceModels } from "#internal/database-facade.ts";
|
|
5
|
+
import { makeSqlDatabase } from "#internal/database-factory.ts";
|
|
6
|
+
import type { DatabaseIdentifier, DatabaseIdentifierLiteral, DatabaseServiceHolder, DefaultModels } from "#internal/database-types.ts";
|
|
7
|
+
import type { AnySqlContract } from "#internal/executor.ts";
|
|
8
|
+
import { fromPrismaPromise } from "#internal/promise.ts";
|
|
3
9
|
import type { PrismaError } from "./error.ts";
|
|
4
|
-
import { acquireConnectedClient } from "./internal/client-lifecycle.ts";
|
|
5
|
-
import { namespaceModels } from "./internal/database-facade.ts";
|
|
6
|
-
import { makeSqlDatabase } from "./internal/database-factory.ts";
|
|
7
|
-
import type { DatabaseIdentifier, DatabaseIdentifierLiteral, DatabaseServiceHolder, DefaultModels } from "./internal/database-types.ts";
|
|
8
|
-
import type { AnySqlContract } from "./internal/executor.ts";
|
|
9
|
-
import { fromPrismaPromise } from "./internal/promise.ts";
|
|
10
10
|
|
|
11
11
|
export type {
|
|
12
12
|
AnyDatabase,
|
|
13
13
|
DatabaseService,
|
|
14
14
|
DatabaseServiceOf,
|
|
15
|
-
} from "
|
|
15
|
+
} from "#internal/database-types.ts";
|
|
16
16
|
|
|
17
17
|
export interface DatabaseLayerOptions extends PostgresOptionsBase {
|
|
18
18
|
readonly url: string | Redacted.Redacted<string>;
|
package/src/error.ts
CHANGED
|
@@ -54,19 +54,19 @@ export const toPrismaError = (error: PrismaFailure): PrismaError => {
|
|
|
54
54
|
if ("kind" in error && error.kind === "sql_query") {
|
|
55
55
|
return new PrismaError({
|
|
56
56
|
reason: new PrismaQueryFailure({
|
|
57
|
-
sqlState: error.sqlState,
|
|
58
|
-
constraint: error.constraint,
|
|
59
|
-
table: error.table,
|
|
60
57
|
column: error.column,
|
|
58
|
+
constraint: error.constraint,
|
|
61
59
|
original,
|
|
60
|
+
sqlState: error.sqlState,
|
|
61
|
+
table: error.table,
|
|
62
62
|
}),
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
65
|
if ("kind" in error && error.kind === "sql_connection") {
|
|
66
66
|
return new PrismaError({
|
|
67
67
|
reason: new PrismaConnectionFailure({
|
|
68
|
-
transient: error.transient,
|
|
69
68
|
original,
|
|
69
|
+
transient: error.transient,
|
|
70
70
|
}),
|
|
71
71
|
});
|
|
72
72
|
}
|
|
@@ -13,8 +13,11 @@ const runtimeFailure = (code: string, cause: unknown, details?: Readonly<Record<
|
|
|
13
13
|
|
|
14
14
|
class ConnectionDisposal {
|
|
15
15
|
disposed = false;
|
|
16
|
+
private readonly connection: SettledConnection;
|
|
16
17
|
|
|
17
|
-
constructor(
|
|
18
|
+
constructor(connection: SettledConnection) {
|
|
19
|
+
this.connection = connection;
|
|
20
|
+
}
|
|
18
21
|
|
|
19
22
|
async destroy(reason: unknown): Promise<void> {
|
|
20
23
|
if (this.disposed) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export interface ClientLifecycle {
|
|
2
|
-
readonly connect: () => PromiseLike<unknown>;
|
|
3
2
|
readonly close: () => PromiseLike<void>;
|
|
3
|
+
readonly connect: () => PromiseLike<unknown>;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
export const acquireConnectedClient = async <A>(client: ClientLifecycle, initialize: () => A): Promise<A> => {
|
|
@@ -15,7 +15,7 @@ export const acquireConnectedClient = async <A>(client: ClientLifecycle, initial
|
|
|
15
15
|
|
|
16
16
|
const reservedModelNames = new Set(["transaction"]);
|
|
17
17
|
|
|
18
|
-
export const assertAvailableModelNames = (modelNames:
|
|
18
|
+
export const assertAvailableModelNames = (modelNames: readonly string[]): void => {
|
|
19
19
|
for (const modelName of modelNames) {
|
|
20
20
|
if (reservedModelNames.has(modelName)) {
|
|
21
21
|
throw new TypeError(`Prisma model name conflicts with the database facade: ${modelName}`);
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
const timestampReference = /\b(?:Timestamp|Timestamptz)<(?:\d+|undefined)>/
|
|
2
|
-
const timestampCodecReference = /\bCodecTypes\['pg\/(?:timestamp|timestamptz)@1'\]\['(?:input|output)'\]/
|
|
3
|
-
const unsupportedTimestampReference = /\b(?:Timestamp|Timestamptz)\s
|
|
1
|
+
const timestampReference = /\b(?:Timestamp|Timestamptz)<(?:\d+|undefined)>/gu;
|
|
2
|
+
const timestampCodecReference = /\bCodecTypes\['pg\/(?:timestamp|timestamptz)@1'\]\['(?:input|output)'\]/gu;
|
|
3
|
+
const unsupportedTimestampReference = /\b(?:Timestamp|Timestamptz)\s*</u;
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
* Align Prisma Next's generated PostgreSQL timestamp declarations with the
|
|
7
|
-
* JavaScript Dates accepted and returned by its runtime codecs.
|
|
8
|
-
*/
|
|
5
|
+
// Prisma Next declares PostgreSQL timestamps with types other than the JavaScript Dates its runtime codecs accept and return.
|
|
9
6
|
export const normalizePrismaNextContractTypes = (source: string): string => {
|
|
10
7
|
const normalized = source.replaceAll(timestampReference, "Date").replaceAll(timestampCodecReference, "Date");
|
|
11
8
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Context, Effect } from "effect";
|
|
2
|
-
import { type PrismaError, toPrismaError } from "
|
|
2
|
+
import { type PrismaError, toPrismaError } from "#error.ts";
|
|
3
3
|
import { assertAvailableModelNames } from "./client-lifecycle.ts";
|
|
4
4
|
import type { DatabaseIdentifier, DatabaseService, DefaultModels } from "./database-types.ts";
|
|
5
5
|
import type { AnySqlContract, DatabaseExecutor } from "./executor.ts";
|
|
@@ -29,11 +29,6 @@ function databaseFacade(facade: object): unknown {
|
|
|
29
29
|
return facade;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
/**
|
|
33
|
-
* Resolve the models of the single domain namespace from a namespaced ORM
|
|
34
|
-
* client. Prisma Next namespaces PostgreSQL models under their schema and
|
|
35
|
-
* SQLite models under the unbound namespace.
|
|
36
|
-
*/
|
|
37
32
|
export const namespaceModels = <Contract extends AnySqlContract, Models extends object>(
|
|
38
33
|
contract: Contract,
|
|
39
34
|
namespacedOrm: TransactionOrm<Contract>,
|
|
@@ -43,9 +38,9 @@ export const namespaceModels = <Contract extends AnySqlContract, Models extends
|
|
|
43
38
|
if (namespaces.length !== 1 || only === undefined) {
|
|
44
39
|
throw new TypeError("Effect Prisma currently requires exactly one domain namespace");
|
|
45
40
|
}
|
|
46
|
-
const [
|
|
41
|
+
const [postgresSchemaOrSqliteUnbound, namespace] = only;
|
|
47
42
|
assertAvailableModelNames(Object.keys(namespace.models));
|
|
48
|
-
return contractModels<Models>(Reflect.get(namespacedOrm,
|
|
43
|
+
return contractModels<Models>(Reflect.get(namespacedOrm, postgresSchemaOrSqliteUnbound));
|
|
49
44
|
};
|
|
50
45
|
|
|
51
46
|
export const runTransaction = <Contract extends AnySqlContract, Identifier extends string, A, E, R>(
|