effect-zero 0.7.0 → 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.
Files changed (46) hide show
  1. package/README.md +86 -77
  2. package/dist/client-transaction.d.ts +0 -1
  3. package/dist/client-transaction.d.ts.map +1 -1
  4. package/dist/client.d.ts +38 -138
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +75 -24
  7. package/dist/client.js.map +1 -1
  8. package/dist/internal/utils.d.ts +0 -7
  9. package/dist/internal/utils.d.ts.map +1 -1
  10. package/dist/internal/utils.js +0 -7
  11. package/dist/internal/utils.js.map +1 -1
  12. package/dist/mutator.d.ts +115 -0
  13. package/dist/mutator.d.ts.map +1 -0
  14. package/dist/mutator.js +67 -0
  15. package/dist/mutator.js.map +1 -0
  16. package/dist/mutator.test.d.ts +2 -0
  17. package/dist/mutator.test.d.ts.map +1 -0
  18. package/dist/{client.test.js → mutator.test.js} +5 -5
  19. package/dist/mutator.test.js.map +1 -0
  20. package/dist/query.d.ts +2 -2
  21. package/dist/result.d.ts +1 -1
  22. package/dist/result.d.ts.map +1 -1
  23. package/dist/result.js +1 -1
  24. package/dist/result.js.map +1 -1
  25. package/dist/server-transaction.d.ts +0 -1
  26. package/dist/server-transaction.d.ts.map +1 -1
  27. package/dist/server.d.ts +7 -3
  28. package/dist/server.d.ts.map +1 -1
  29. package/dist/server.js +30 -15
  30. package/dist/server.js.map +1 -1
  31. package/dist/types.test.js +85 -120
  32. package/dist/types.test.js.map +1 -1
  33. package/package.json +49 -48
  34. package/src/client.ts +159 -56
  35. package/src/internal/utils.ts +0 -8
  36. package/src/mutator.ts +232 -0
  37. package/src/result.ts +2 -2
  38. package/src/server.ts +49 -34
  39. package/dist/client.test.d.ts +0 -2
  40. package/dist/client.test.d.ts.map +0 -1
  41. package/dist/client.test.js.map +0 -1
  42. package/dist/mutators.d.ts +0 -30
  43. package/dist/mutators.d.ts.map +0 -1
  44. package/dist/mutators.js +0 -17
  45. package/dist/mutators.js.map +0 -1
  46. package/src/mutators.ts +0 -80
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,6FAA6F;IAC7F,4FAA4F;IAC5F,wGAAwG;IACxG,EAAE,CAAC,MAAM,CACP,wDAAwD,EACxD,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO;QAElC,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,30 +0,0 @@
1
- import type * as Effect from "effect/Effect";
2
- import * as Schema from "effect/Schema";
3
- export type AnyMutatorFn<R = any, TArgs extends any[] = any[]> = (...args: TArgs) => Effect.Effect<any, any, R>;
4
- export type AnyMutatorFns<R = any> = {
5
- [K: string]: AnyMutatorFn<R> | {
6
- [K: string]: AnyMutatorFn<R>;
7
- };
8
- };
9
- export type AnyMutatorSchema = Schema.Codec<any, any>;
10
- export type AnyMutatorSchemas = Record<string, AnyMutatorSchema | Record<string, AnyMutatorSchema>>;
11
- export type MutatorFns<TSchema extends AnyMutatorSchemas> = {
12
- [K in keyof TSchema]: TSchema[K] extends AnyMutatorSchema ? AnyMutatorFn<unknown, [Schema.Schema.Type<TSchema[K]>]> : TSchema[K] extends infer TSchema extends Record<string, AnyMutatorSchema> ? {
13
- [K in keyof TSchema]: AnyMutatorFn<unknown, [Schema.Schema.Type<TSchema[K]>]>;
14
- } : never;
15
- };
16
- export declare const MutatorSchemaSymbol: unique symbol;
17
- export type Mutator<TFunc extends AnyMutatorFn = AnyMutatorFn, TSchema extends AnyMutatorSchema = AnyMutatorSchema> = TFunc & {
18
- [MutatorSchemaSymbol]: TSchema;
19
- };
20
- export type Mutators<TSchema extends AnyMutatorSchemas, TFns extends AnyMutatorFns> = {
21
- [K in keyof TFns & keyof TSchema]: TFns[K] extends AnyMutatorFn ? TSchema[K] extends AnyMutatorSchema ? Mutator<TFns[K], TSchema[K]> : never : TSchema[K] extends infer TSchema extends Record<string, AnyMutatorSchema> ? TFns[K] extends infer TFns extends Record<string, AnyMutatorFn> ? {
22
- [K in keyof TFns & keyof TSchema]: Mutator<TFns[K], TSchema[K]>;
23
- } : never : never;
24
- } & {};
25
- export type AnyMutator<R = any, E = any> = Mutator<(...args: any[]) => Effect.Effect<any, E, R>>;
26
- export type AnyMutators<R = any> = Record<string, AnyMutator<R> | Record<string, AnyMutator<R>>>;
27
- export type ExtractMutatorsRequirements<TMutators extends AnyMutators> = TMutators extends AnyMutators<infer R> ? R : never;
28
- export declare const schema: <TSchema extends AnyMutatorSchemas>(schema: TSchema) => TSchema;
29
- export declare function make<TSchema extends AnyMutatorSchemas, TFns extends MutatorFns<TSchema>>(schema: TSchema, mutators: TFns): Mutators<TSchema, TFns>;
30
- //# sourceMappingURL=mutators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutators.d.ts","sourceRoot":"","sources":["../src/mutators.ts"],"names":[],"mappings":"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"}
package/dist/mutators.js DELETED
@@ -1,17 +0,0 @@
1
- import * as Match from "effect/Match";
2
- import * as Option from "effect/Option";
3
- import * as Predicate from "effect/Predicate";
4
- import * as Rec from "effect/Record";
5
- import * as Schema from "effect/Schema";
6
- import { prefixId } from "./internal/utils.js";
7
- export const MutatorSchemaSymbol = Symbol.for(prefixId("MutatorSchema"));
8
- export const schema = (schema) => schema;
9
- export function make(schema, mutators) {
10
- function makeMutator(schema, fn) {
11
- return Object.assign(fn, { [MutatorSchemaSymbol]: schema });
12
- }
13
- return Rec.map(mutators, (v, name) => {
14
- return Match.value([v, schema[name]]).pipe(Match.when([Predicate.isFunction, Schema.isSchema], ([mutator, schema]) => makeMutator(schema, mutator)), Match.when([Predicate.isObject, Predicate.isObject], ([mutator, schema]) => Rec.map(mutator, (mutator, name) => makeMutator(Option.getOrThrow(Rec.get(schema, name)), mutator))), Match.orElseAbsurd);
15
- });
16
- }
17
- //# sourceMappingURL=mutators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutators.js","sourceRoot":"","sources":["../src/mutators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAsB/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AA+BzE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAoC,MAAe,EAAE,EAAE,CAAC,MAAM,CAAC;AAMrF,MAAM,UAAU,IAAI,CAAC,MAAyB,EAAE,QAAuB;IACrE,SAAS,WAAW,CAAC,MAAwB,EAAE,EAAgB;QAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QACnC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CACxC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CACzE,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CACpG,EACD,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
package/src/mutators.ts DELETED
@@ -1,80 +0,0 @@
1
- import type * as Effect from "effect/Effect";
2
- import * as Match from "effect/Match";
3
- import * as Option from "effect/Option";
4
- import * as Predicate from "effect/Predicate";
5
- import * as Rec from "effect/Record";
6
- import * as Schema from "effect/Schema";
7
- import { prefixId } from "./internal/utils.js";
8
-
9
- // biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
10
- export type AnyMutatorFn<R = any, TArgs extends any[] = any[]> = (...args: TArgs) => Effect.Effect<any, any, R>;
11
-
12
- // biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
13
- export type AnyMutatorFns<R = any> = {
14
- [K: string]: AnyMutatorFn<R> | { [K: string]: AnyMutatorFn<R> };
15
- };
16
-
17
- // biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
18
- export type AnyMutatorSchema = Schema.Codec<any, any>;
19
- export type AnyMutatorSchemas = Record<string, AnyMutatorSchema | Record<string, AnyMutatorSchema>>;
20
-
21
- export type MutatorFns<TSchema extends AnyMutatorSchemas> = {
22
- [K in keyof TSchema]: TSchema[K] extends AnyMutatorSchema
23
- ? AnyMutatorFn<unknown, [Schema.Schema.Type<TSchema[K]>]>
24
- : TSchema[K] extends infer TSchema extends Record<string, AnyMutatorSchema>
25
- ? { [K in keyof TSchema]: AnyMutatorFn<unknown, [Schema.Schema.Type<TSchema[K]>]> }
26
- : never;
27
- };
28
-
29
- export const MutatorSchemaSymbol = Symbol.for(prefixId("MutatorSchema"));
30
-
31
- export type Mutator<
32
- TFunc extends AnyMutatorFn = AnyMutatorFn,
33
- TSchema extends AnyMutatorSchema = AnyMutatorSchema,
34
- > = TFunc & {
35
- [MutatorSchemaSymbol]: TSchema;
36
- };
37
-
38
- export type Mutators<TSchema extends AnyMutatorSchemas, TFns extends AnyMutatorFns> = {
39
- [K in keyof TFns & keyof TSchema]: TFns[K] extends AnyMutatorFn
40
- ? TSchema[K] extends AnyMutatorSchema
41
- ? Mutator<TFns[K], TSchema[K]>
42
- : never
43
- : TSchema[K] extends infer TSchema extends Record<string, AnyMutatorSchema>
44
- ? TFns[K] extends infer TFns extends Record<string, AnyMutatorFn>
45
- ? { [K in keyof TFns & keyof TSchema]: Mutator<TFns[K], TSchema[K]> }
46
- : never
47
- : never;
48
- } & {};
49
-
50
- // biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
51
- export type AnyMutator<R = any, E = any> = Mutator<(...args: any[]) => Effect.Effect<any, E, R>>;
52
-
53
- // biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
54
- export type AnyMutators<R = any> = Record<string, AnyMutator<R> | Record<string, AnyMutator<R>>>;
55
-
56
- export type ExtractMutatorsRequirements<TMutators extends AnyMutators> = TMutators extends AnyMutators<infer R>
57
- ? R
58
- : never;
59
-
60
- export const schema = <TSchema extends AnyMutatorSchemas>(schema: TSchema) => schema;
61
-
62
- export function make<TSchema extends AnyMutatorSchemas, TFns extends MutatorFns<TSchema>>(
63
- schema: TSchema,
64
- mutators: TFns,
65
- ): Mutators<TSchema, TFns>;
66
- export function make(schema: AnyMutatorSchemas, mutators: AnyMutatorFns): AnyMutators {
67
- function makeMutator(schema: AnyMutatorSchema, fn: AnyMutatorFn) {
68
- return Object.assign(fn, { [MutatorSchemaSymbol]: schema });
69
- }
70
-
71
- return Rec.map(mutators, (v, name) => {
72
- return Match.value([v, schema[name]]).pipe(
73
- Match.when([Predicate.isFunction, Schema.isSchema], ([mutator, schema]) => makeMutator(schema, mutator)),
74
- Match.when([Predicate.isObject, Predicate.isObject], ([mutator, schema]) =>
75
- Rec.map(mutator, (mutator, name) => makeMutator(Option.getOrThrow(Rec.get(schema, name)), mutator)),
76
- ),
77
- Match.orElseAbsurd,
78
- );
79
- });
80
- }