@effect-app/infra 3.10.0 → 4.0.0-beta.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 +11 -0
- package/_check.sh +3 -0
- package/dist/CUPS.d.ts +22 -12
- package/dist/CUPS.d.ts.map +1 -1
- package/dist/CUPS.js +28 -29
- package/dist/Emailer/Sendgrid.js +13 -12
- package/dist/Emailer/service.d.ts +3 -13
- package/dist/Emailer/service.d.ts.map +1 -1
- package/dist/Emailer/service.js +3 -3
- package/dist/MainFiberSet.d.ts +18 -41
- package/dist/MainFiberSet.d.ts.map +1 -1
- package/dist/MainFiberSet.js +10 -10
- package/dist/Model/Repository/ext.d.ts.map +1 -1
- package/dist/Model/Repository/ext.js +13 -10
- package/dist/Model/Repository/internal/internal.d.ts +5 -5
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
- package/dist/Model/Repository/internal/internal.js +52 -42
- package/dist/Model/Repository/legacy.d.ts +9 -9
- package/dist/Model/Repository/legacy.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.d.ts +4 -4
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.js +1 -1
- package/dist/Model/Repository/service.d.ts +11 -11
- package/dist/Model/Repository/service.d.ts.map +1 -1
- package/dist/Model/Repository/validation.d.ts +17 -47
- package/dist/Model/Repository/validation.d.ts.map +1 -1
- package/dist/Model/Repository/validation.js +2 -2
- package/dist/Model/query/dsl.d.ts +22 -22
- package/dist/Model/query/dsl.d.ts.map +1 -1
- package/dist/Model/query/dsl.js +1 -1
- package/dist/Model/query/new-kid-interpreter.d.ts +1 -1
- package/dist/Model/query/new-kid-interpreter.js +7 -7
- package/dist/Operations.d.ts +22 -63
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Operations.js +14 -14
- package/dist/OperationsRepo.d.ts +23 -7
- package/dist/OperationsRepo.d.ts.map +1 -1
- package/dist/OperationsRepo.js +4 -5
- package/dist/QueueMaker/SQLQueue.d.ts +6 -8
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/QueueMaker/SQLQueue.js +20 -24
- package/dist/QueueMaker/errors.js +1 -1
- package/dist/QueueMaker/memQueue.d.ts +2 -5
- package/dist/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.js +22 -26
- package/dist/QueueMaker/sbqueue.d.ts +2 -5
- package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/QueueMaker/sbqueue.js +24 -28
- package/dist/RequestContext.d.ts +28 -41
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +4 -4
- package/dist/RequestFiberSet.d.ts +23 -50
- package/dist/RequestFiberSet.d.ts.map +1 -1
- package/dist/RequestFiberSet.js +14 -14
- package/dist/Store/ContextMapContainer.d.ts +4 -4
- package/dist/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/Store/ContextMapContainer.js +5 -5
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +21 -28
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +12 -16
- package/dist/Store/Memory.d.ts +2 -2
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +25 -33
- package/dist/Store/index.js +2 -2
- package/dist/Store/service.d.ts +9 -34
- package/dist/Store/service.d.ts.map +1 -1
- package/dist/Store/service.js +4 -4
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +10 -2
- package/dist/adapters/SQL/Model.d.ts +106 -162
- package/dist/adapters/SQL/Model.d.ts.map +1 -1
- package/dist/adapters/SQL/Model.js +92 -130
- package/dist/adapters/ServiceBus.d.ts +13 -44
- package/dist/adapters/ServiceBus.d.ts.map +1 -1
- package/dist/adapters/ServiceBus.js +13 -15
- package/dist/adapters/cosmos-client.d.ts +7 -3
- package/dist/adapters/cosmos-client.d.ts.map +1 -1
- package/dist/adapters/cosmos-client.js +5 -4
- package/dist/adapters/logger.d.ts +1 -1
- package/dist/adapters/logger.d.ts.map +1 -1
- package/dist/adapters/memQueue.d.ts +8 -21
- package/dist/adapters/memQueue.d.ts.map +1 -1
- package/dist/adapters/memQueue.js +4 -4
- package/dist/adapters/mongo-client.d.ts +6 -6
- package/dist/adapters/mongo-client.d.ts.map +1 -1
- package/dist/adapters/mongo-client.js +5 -4
- package/dist/adapters/redis-client.d.ts +14 -4
- package/dist/adapters/redis-client.d.ts.map +1 -1
- package/dist/adapters/redis-client.js +19 -18
- package/dist/api/ContextProvider.d.ts +10 -15
- package/dist/api/ContextProvider.d.ts.map +1 -1
- package/dist/api/ContextProvider.js +8 -8
- package/dist/api/codec.d.ts +1 -1
- package/dist/api/codec.d.ts.map +1 -1
- package/dist/api/codec.js +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
- package/dist/api/internal/auth.d.ts +3 -3
- package/dist/api/internal/auth.d.ts.map +1 -1
- package/dist/api/internal/auth.js +8 -8
- package/dist/api/internal/events.d.ts +2 -2
- package/dist/api/internal/events.d.ts.map +1 -1
- package/dist/api/internal/events.js +9 -9
- package/dist/api/internal/health.d.ts +1 -1
- package/dist/api/internal/health.d.ts.map +1 -1
- package/dist/api/internal/health.js +2 -2
- package/dist/api/layerUtils.d.ts +14 -14
- package/dist/api/layerUtils.d.ts.map +1 -1
- package/dist/api/layerUtils.js +5 -5
- package/dist/api/middlewares.d.ts +0 -75
- package/dist/api/middlewares.d.ts.map +1 -1
- package/dist/api/middlewares.js +6 -51
- package/dist/api/reportError.js +4 -4
- package/dist/api/routing/middleware/RouterMiddleware.d.ts +4 -4
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.d.ts +6 -7
- package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.js +9 -13
- package/dist/api/routing/schema/jwt.d.ts +1 -1
- package/dist/api/routing/schema/jwt.d.ts.map +1 -1
- package/dist/api/routing/schema/jwt.js +5 -4
- package/dist/api/routing/utils.d.ts +2 -2
- package/dist/api/routing/utils.d.ts.map +1 -1
- package/dist/api/routing/utils.js +10 -8
- package/dist/api/routing.d.ts +39 -37
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +17 -21
- package/dist/api/setupRequest.d.ts +4 -6
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +10 -9
- package/dist/arbs.d.ts +3 -3
- package/dist/arbs.d.ts.map +1 -1
- package/dist/arbs.js +2 -2
- package/dist/errorReporter.d.ts +1 -1
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +12 -12
- package/dist/fileUtil.d.ts +6 -6
- package/dist/fileUtil.d.ts.map +1 -1
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +19 -18
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +11 -13
- package/dist/logger/shared.d.ts +2 -2
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +7 -9
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/rateLimit.d.ts +2 -2
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +5 -5
- package/dist/test.d.ts +2 -2
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +6 -24
- package/package.json +19 -22
- package/src/CUPS.ts +15 -14
- package/src/Emailer/Sendgrid.ts +15 -13
- package/src/Emailer/service.ts +3 -3
- package/src/MainFiberSet.ts +16 -12
- package/src/Model/Repository/ext.ts +18 -16
- package/src/Model/Repository/internal/internal.ts +80 -69
- package/src/Model/Repository/legacy.ts +9 -9
- package/src/Model/Repository/makeRepo.ts +5 -5
- package/src/Model/Repository/service.ts +12 -12
- package/src/Model/Repository/validation.ts +1 -1
- package/src/Model/query/dsl.ts +13 -13
- package/src/Model/query/new-kid-interpreter.ts +8 -8
- package/src/Operations.ts +17 -14
- package/src/OperationsRepo.ts +3 -4
- package/src/QueueMaker/SQLQueue.ts +86 -89
- package/src/QueueMaker/errors.ts +1 -1
- package/src/QueueMaker/memQueue.ts +90 -91
- package/src/QueueMaker/sbqueue.ts +90 -92
- package/src/RequestContext.ts +3 -3
- package/src/RequestFiberSet.ts +17 -15
- package/src/Store/ContextMapContainer.ts +4 -4
- package/src/Store/Cosmos.ts +20 -27
- package/src/Store/Disk.ts +13 -17
- package/src/Store/Memory.ts +28 -34
- package/src/Store/index.ts +1 -1
- package/src/Store/service.ts +4 -4
- package/src/Store/utils.ts +9 -5
- package/src/adapters/SQL/Model.ts +255 -268
- package/src/adapters/ServiceBus.ts +17 -20
- package/src/adapters/cosmos-client.ts +5 -5
- package/src/adapters/memQueue.ts +3 -3
- package/src/adapters/mongo-client.ts +5 -5
- package/src/adapters/redis-client.ts +25 -19
- package/src/api/ContextProvider.ts +24 -34
- package/src/api/codec.ts +1 -1
- package/src/api/internal/auth.ts +11 -13
- package/src/api/internal/events.ts +11 -11
- package/src/api/internal/health.ts +1 -1
- package/src/api/layerUtils.ts +20 -20
- package/src/api/middlewares.ts +0 -97
- package/src/api/reportError.ts +3 -3
- package/src/api/routing/middleware/RouterMiddleware.ts +5 -6
- package/src/api/routing/middleware/middleware.ts +13 -25
- package/src/api/routing/schema/jwt.ts +9 -7
- package/src/api/routing/utils.ts +12 -10
- package/src/api/routing.ts +77 -79
- package/src/api/setupRequest.ts +9 -8
- package/src/arbs.ts +3 -3
- package/src/errorReporter.ts +12 -12
- package/src/logger/jsonLogger.ts +18 -17
- package/src/logger/logFmtLogger.ts +10 -12
- package/src/logger/shared.ts +6 -8
- package/src/rateLimit.ts +7 -7
- package/src/test.ts +7 -29
- package/test/contextProvider.test.ts +77 -70
- package/test/controller.test.ts +51 -39
- package/test/dist/contextProvider.test.d.ts.map +1 -1
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/fixtures.d.ts +33 -81
- package/test/dist/fixtures.d.ts.map +1 -1
- package/test/dist/fixtures.js +9 -8
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/dist/rawQuery.test.d.ts.map +1 -1
- package/test/dist/requires.test.d.ts.map +1 -1
- package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
- package/test/fixtures.ts +9 -7
- package/test/query.test.ts +49 -41
- package/test/rawQuery.test.ts +44 -40
- package/test/requires.test.ts +40 -31
- package/test/rpc-multi-middleware.test.ts +13 -14
- package/test/validateSample.test.ts +2 -2
- package/tsconfig.json +1 -27
- package/dist/api/internal/middlewares.d.ts +0 -15
- package/dist/api/internal/middlewares.d.ts.map +0 -1
- package/dist/api/internal/middlewares.js +0 -168
- package/src/api/internal/middlewares.ts +0 -279
package/test/dist/fixtures.d.ts
CHANGED
|
@@ -1,85 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect, Layer, S, ServiceMap } from "effect-app";
|
|
2
2
|
import { NotLoggedInError, UnauthorizedError } from "effect-app/client";
|
|
3
3
|
import { RpcContextMap, RpcX } from "effect-app/rpc";
|
|
4
|
-
declare const UserProfile_base: S.EnhancedClass<UserProfile, {
|
|
5
|
-
id:
|
|
6
|
-
roles: S
|
|
7
|
-
withDefault: S.
|
|
4
|
+
declare const UserProfile_base: S.EnhancedClass<UserProfile, S.Struct<{
|
|
5
|
+
id: S.String;
|
|
6
|
+
roles: S.$Array<S.String> & {
|
|
7
|
+
withDefault: S.withConstructorDefault<S.$Array<S.String> & S.WithoutConstructorDefault>;
|
|
8
8
|
};
|
|
9
|
-
},
|
|
10
|
-
readonly id: string;
|
|
11
|
-
readonly roles: readonly string[];
|
|
12
|
-
}, never, {
|
|
13
|
-
readonly id: string;
|
|
14
|
-
readonly roles: readonly string[];
|
|
15
|
-
}, {}, {}> & Context.Tag<UserProfile, UserProfile>;
|
|
9
|
+
}>, {}> & ServiceMap.Opaque<UserProfile, UserProfile>;
|
|
16
10
|
export declare class UserProfile extends UserProfile_base {
|
|
17
11
|
}
|
|
18
|
-
declare const Some_base:
|
|
19
|
-
a: number;
|
|
20
|
-
}) => Readonly<{
|
|
21
|
-
a: number;
|
|
22
|
-
}> & Context.TagClassShape<"Some", {
|
|
23
|
-
a: number;
|
|
24
|
-
}>) & {
|
|
25
|
-
toLayer: {
|
|
26
|
-
(): Layer.Layer<Some, never, never>;
|
|
27
|
-
<E_1, R_1>(eff: Effect.Effect<Omit<Some, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer.Layer<Some, E_1, R_1>;
|
|
28
|
-
};
|
|
29
|
-
toLayerScoped: {
|
|
30
|
-
(): Layer.Layer<Some, never, never>;
|
|
31
|
-
<E_1, R_2>(eff: Effect.Effect<Omit<Some, keyof Context.TagClassShape<any, any>>, E_1, R_2>): Layer.Layer<Some, E_1, Exclude<R_2, Scope.Scope>>;
|
|
32
|
-
};
|
|
33
|
-
of: (service: Context.TagClassShape<any, any>) => Some;
|
|
34
|
-
make: Effect.Effect<Some, never, never>;
|
|
35
|
-
} & Context.Tag<Some, Some> & Context.ServiceUse<Some, {
|
|
12
|
+
declare const Some_base: ServiceMap.OpaqueClass<Some, "Some", {
|
|
36
13
|
a: number;
|
|
37
|
-
}
|
|
14
|
+
}> & {
|
|
15
|
+
readonly make: Effect.Effect<{
|
|
16
|
+
a: number;
|
|
17
|
+
}, never, never>;
|
|
18
|
+
};
|
|
38
19
|
export declare class Some extends Some_base {
|
|
39
20
|
}
|
|
40
|
-
declare const SomeElse_base:
|
|
41
|
-
b: number;
|
|
42
|
-
}) => Readonly<{
|
|
43
|
-
b: number;
|
|
44
|
-
}> & Context.TagClassShape<"SomeElse", {
|
|
45
|
-
b: number;
|
|
46
|
-
}>) & {
|
|
47
|
-
toLayer: {
|
|
48
|
-
(): Layer.Layer<SomeElse, never, never>;
|
|
49
|
-
<E_1, R_1>(eff: Effect.Effect<Omit<SomeElse, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer.Layer<SomeElse, E_1, R_1>;
|
|
50
|
-
};
|
|
51
|
-
toLayerScoped: {
|
|
52
|
-
(): Layer.Layer<SomeElse, never, never>;
|
|
53
|
-
<E_1, R_2>(eff: Effect.Effect<Omit<SomeElse, keyof Context.TagClassShape<any, any>>, E_1, R_2>): Layer.Layer<SomeElse, E_1, Exclude<R_2, Scope.Scope>>;
|
|
54
|
-
};
|
|
55
|
-
of: (service: Context.TagClassShape<any, any>) => SomeElse;
|
|
56
|
-
make: Effect.Effect<SomeElse, never, never>;
|
|
57
|
-
} & Context.Tag<SomeElse, SomeElse> & Context.ServiceUse<SomeElse, {
|
|
21
|
+
declare const SomeElse_base: ServiceMap.OpaqueClass<SomeElse, "SomeElse", {
|
|
58
22
|
b: number;
|
|
59
|
-
}
|
|
23
|
+
}> & {
|
|
24
|
+
readonly make: Effect.Effect<{
|
|
25
|
+
b: number;
|
|
26
|
+
}, never, never>;
|
|
27
|
+
};
|
|
60
28
|
export declare class SomeElse extends SomeElse_base {
|
|
61
29
|
}
|
|
62
|
-
declare const SomeService_base:
|
|
63
|
-
a: number;
|
|
64
|
-
}) => Readonly<{
|
|
65
|
-
a: number;
|
|
66
|
-
}> & Context.TagClassShape<"SomeService", {
|
|
67
|
-
a: number;
|
|
68
|
-
}>) & {
|
|
69
|
-
toLayer: {
|
|
70
|
-
(): Layer.Layer<SomeService, never, never>;
|
|
71
|
-
<E_1, R_1>(eff: Effect.Effect<Omit<SomeService, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer.Layer<SomeService, E_1, R_1>;
|
|
72
|
-
};
|
|
73
|
-
toLayerScoped: {
|
|
74
|
-
(): Layer.Layer<SomeService, never, never>;
|
|
75
|
-
<E_1, R_2>(eff: Effect.Effect<Omit<SomeService, keyof Context.TagClassShape<any, any>>, E_1, R_2>): Layer.Layer<SomeService, E_1, Exclude<R_2, Scope.Scope>>;
|
|
76
|
-
};
|
|
77
|
-
of: (service: Context.TagClassShape<any, any>) => SomeService;
|
|
78
|
-
make: Effect.Effect<SomeService, never, never>;
|
|
79
|
-
} & Context.Tag<SomeService, SomeService> & Context.ServiceUse<SomeService, {
|
|
30
|
+
declare const SomeService_base: ServiceMap.OpaqueClass<SomeService, "SomeService", {
|
|
80
31
|
a: number;
|
|
81
|
-
}
|
|
32
|
+
}> & {
|
|
33
|
+
readonly make: Effect.Effect<{
|
|
34
|
+
a: number;
|
|
35
|
+
}, never, never>;
|
|
36
|
+
};
|
|
82
37
|
export declare class SomeService extends SomeService_base {
|
|
38
|
+
static readonly Default: Layer.Layer<SomeService, never, never>;
|
|
83
39
|
}
|
|
84
40
|
declare const SomeMiddleware_base: RpcX.RpcMiddleware.TagClass<SomeMiddleware, "SomeMiddleware", {}, {
|
|
85
41
|
provides: Some;
|
|
@@ -97,23 +53,23 @@ declare const RequestContextMap_base: (new () => {
|
|
|
97
53
|
readonly config: {
|
|
98
54
|
readonly allowAnonymous: RpcContextMap.RpcContextMap.Inverted<UserProfile, typeof NotLoggedInError>;
|
|
99
55
|
readonly requireRoles: RpcContextMap.RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>;
|
|
100
|
-
readonly test: RpcContextMap.RpcContextMap<never,
|
|
56
|
+
readonly test: RpcContextMap.RpcContextMap<never, S.Never>;
|
|
101
57
|
};
|
|
102
58
|
}) & {
|
|
103
59
|
config: {
|
|
104
60
|
readonly allowAnonymous: RpcContextMap.RpcContextMap.Inverted<UserProfile, typeof NotLoggedInError>;
|
|
105
61
|
readonly requireRoles: RpcContextMap.RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>;
|
|
106
|
-
readonly test: RpcContextMap.RpcContextMap<never,
|
|
62
|
+
readonly test: RpcContextMap.RpcContextMap<never, S.Never>;
|
|
107
63
|
};
|
|
108
|
-
getConfig: (rpc: import("
|
|
64
|
+
getConfig: (rpc: import("effect/unstable/rpc/Rpc").AnyWithProps) => RpcContextMap.GetContextConfig<{
|
|
109
65
|
readonly allowAnonymous: RpcContextMap.RpcContextMap.Inverted<UserProfile, typeof NotLoggedInError>;
|
|
110
66
|
readonly requireRoles: RpcContextMap.RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>;
|
|
111
|
-
readonly test: RpcContextMap.RpcContextMap<never,
|
|
67
|
+
readonly test: RpcContextMap.RpcContextMap<never, S.Never>;
|
|
112
68
|
}>;
|
|
113
69
|
get: <Key extends "allowAnonymous" | "requireRoles" | "test">(key: Key) => RpcX.RpcMiddleware.RpcDynamic<Key, {
|
|
114
70
|
readonly allowAnonymous: RpcContextMap.RpcContextMap.Inverted<UserProfile, typeof NotLoggedInError>;
|
|
115
71
|
readonly requireRoles: RpcContextMap.RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>;
|
|
116
|
-
readonly test: RpcContextMap.RpcContextMap<never,
|
|
72
|
+
readonly test: RpcContextMap.RpcContextMap<never, S.Never>;
|
|
117
73
|
}[Key]>;
|
|
118
74
|
};
|
|
119
75
|
export declare class RequestContextMap extends RequestContextMap_base {
|
|
@@ -137,7 +93,7 @@ export declare class RequireRoles extends RequireRoles_base {
|
|
|
137
93
|
}
|
|
138
94
|
export declare const RequireRolesLive: Layer.Layer<RequireRoles, never, SomeService>;
|
|
139
95
|
declare const Test_base: RpcX.RpcMiddleware.TagClass<Test, "Test", {
|
|
140
|
-
readonly dynamic: RpcX.RpcMiddleware.RpcDynamic<"test", RpcContextMap.RpcContextMap<never,
|
|
96
|
+
readonly dynamic: RpcX.RpcMiddleware.RpcDynamic<"test", RpcContextMap.RpcContextMap<never, S.Never>>;
|
|
141
97
|
}, {
|
|
142
98
|
requires: never;
|
|
143
99
|
provides: never;
|
|
@@ -145,14 +101,10 @@ declare const Test_base: RpcX.RpcMiddleware.TagClass<Test, "Test", {
|
|
|
145
101
|
export declare class Test extends Test_base {
|
|
146
102
|
}
|
|
147
103
|
export declare const TestLive: Layer.Layer<Test, never, never>;
|
|
148
|
-
declare const CustomError1_base: S.
|
|
149
|
-
readonly _tag: S.tag<"CustomError1">;
|
|
150
|
-
}>;
|
|
104
|
+
declare const CustomError1_base: S.ErrorClass<CustomError1, S.TaggedStruct<"CustomError1", {}>, import("effect/Cause").YieldableError>;
|
|
151
105
|
export declare class CustomError1 extends CustomError1_base {
|
|
152
106
|
}
|
|
153
|
-
declare const CustomError2_base: S.
|
|
154
|
-
readonly _tag: S.tag<"CustomError2">;
|
|
155
|
-
}>;
|
|
107
|
+
declare const CustomError2_base: S.ErrorClass<CustomError2, S.TaggedStruct<"CustomError2", {}>, import("effect/Cause").YieldableError>;
|
|
156
108
|
export declare class CustomError2 extends CustomError2_base {
|
|
157
109
|
}
|
|
158
110
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAS,UAAU,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;;;;;;;AAGpD,qBAAa,WAAY,SAAQ,gBAKhC;CACA;;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAAqE;CAAG;;;;;;;;AAClG,qBAAa,QAAS,SAAQ,aAA6E;CAAG;;;;;;;;AAE9G,qBAAa,WAAY,SAAQ,gBAA0E;IACzG,MAAM,CAAC,QAAQ,CAAC,OAAO,yCAA0B;CAClD;;cAGsF,IAAI;;AAA3F,qBAAa,cAAe,SAAQ,mBAA8E;CACjH;AAED,eAAO,MAAM,kBAAkB,2CAM9B,CAAA;;cAGgE,QAAQ;;AADzE,qBAAa,kBACX,SAAQ,uBAA0F;CAClG;AAEF,eAAO,MAAM,sBAAsB,+CAUlC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,iBAAkB,SAAQ,sBAIrC;CAAG;;;;cAEkF,QAAQ;;AAA/F,qBAAa,cAAe,SAAQ,mBAElC;CAAG;AAEL,eAAO,MAAM,kBAAkB,2CAyB9B,CAAA;;;;;;;;AAED,qBAAa,YAAa,SAAQ,iBAKhC;CAAG;AAEL,eAAO,MAAM,gBAAgB,+CAuB5B,CAAA;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAExB;CAAG;AAEL,eAAO,MAAM,QAAQ,iCAOpB,CAAA;;AAED,qBAAa,YAAa,SAAQ,iBAA+C;CAAG;;AACpF,qBAAa,YAAa,SAAQ,iBAA+C;CAAG"}
|
package/test/dist/fixtures.js
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect, Layer, S, Scope, ServiceMap } from "effect-app";
|
|
2
2
|
import { NotLoggedInError, UnauthorizedError } from "effect-app/client";
|
|
3
3
|
import { RpcContextMap, RpcX } from "effect-app/rpc";
|
|
4
4
|
import { TaggedError } from "effect-app/Schema";
|
|
5
|
-
export class UserProfile extends
|
|
5
|
+
export class UserProfile extends ServiceMap.assignTag("UserProfile")(S.Class("UserProfile")({
|
|
6
6
|
id: S.String,
|
|
7
7
|
roles: S.Array(S.String)
|
|
8
8
|
})) {
|
|
9
9
|
}
|
|
10
|
-
export class Some extends
|
|
10
|
+
export class Some extends ServiceMap.Opaque()("Some", { make: Effect.succeed({ a: 1 }) }) {
|
|
11
11
|
}
|
|
12
|
-
export class SomeElse extends
|
|
12
|
+
export class SomeElse extends ServiceMap.Opaque()("SomeElse", { make: Effect.succeed({ b: 2 }) }) {
|
|
13
13
|
}
|
|
14
14
|
const MakeSomeService = Effect.succeed({ a: 1 });
|
|
15
|
-
export class SomeService extends
|
|
15
|
+
export class SomeService extends ServiceMap.Opaque()("SomeService", { make: MakeSomeService }) {
|
|
16
|
+
static Default = this.toLayer(this.make);
|
|
16
17
|
}
|
|
17
18
|
// functionally equivalent to the one above
|
|
18
19
|
export class SomeMiddleware extends RpcX.RpcMiddleware.Tag()("SomeMiddleware") {
|
|
19
20
|
}
|
|
20
21
|
export const SomeMiddlewareLive = Layer.effect(SomeMiddleware, Effect.gen(function* () {
|
|
21
22
|
// yield* Effect.context<"test-dep">()
|
|
22
|
-
return (effect) => effect.pipe(Effect.provideService(Some,
|
|
23
|
+
return (effect) => effect.pipe(Effect.provideService(Some, Some.of({ a: 1 })));
|
|
23
24
|
}));
|
|
24
25
|
export class SomeElseMiddleware extends RpcX.RpcMiddleware.Tag()("SomeElseMiddleware") {
|
|
25
26
|
}
|
|
@@ -27,7 +28,7 @@ export const SomeElseMiddlewareLive = Layer.effect(SomeElseMiddleware, Effect.ge
|
|
|
27
28
|
// yield* Effect.context<"test-dep">()
|
|
28
29
|
return (effect) => Effect.gen(function* () {
|
|
29
30
|
// yield* Effect.context<"test-dep2">()
|
|
30
|
-
return yield* effect.pipe(Effect.provideService(SomeElse,
|
|
31
|
+
return yield* effect.pipe(Effect.provideService(SomeElse, SomeElse.of({ b: 2 })));
|
|
31
32
|
});
|
|
32
33
|
}));
|
|
33
34
|
export class RequestContextMap extends RpcContextMap.makeMap({
|
|
@@ -93,4 +94,4 @@ export class CustomError1 extends TaggedError()("CustomError1", {}) {
|
|
|
93
94
|
}
|
|
94
95
|
export class CustomError2 extends TaggedError()("CustomError2", {}) {
|
|
95
96
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUUvQyxNQUFNLE9BQU8sV0FBWSxTQUFRLFVBQVUsQ0FBQyxTQUFTLENBQTJCLGFBQWEsQ0FBQyxDQUM1RixDQUFDLENBQUMsS0FBSyxDQUFjLGFBQWEsQ0FBQyxDQUFDO0lBQ2xDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Q0FDekIsQ0FBQyxDQUNIO0NBQ0E7QUFFRCxNQUFNLE9BQU8sSUFBSyxTQUFRLFVBQVUsQ0FBQyxNQUFNLEVBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Q0FBRztBQUNsRyxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQVUsQ0FBQyxNQUFNLEVBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Q0FBRztBQUM5RyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7QUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqC,CAAC,
|
|
1
|
+
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqC,CAAC,EAAsB,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAarF,qBAAa,SAAU,SAAQ,cAM7B;CAAG;AACL,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IAEjC,UAAiB,OAAQ,SAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,SAAS,CAAC;KAAG;CACtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rawQuery.test.d.ts","sourceRoot":"","sources":["../rawQuery.test.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"rawQuery.test.d.ts","sourceRoot":"","sources":["../rawQuery.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,cAAc,EAA+C,MAAM,YAAY,CAAA;AAQ5H,eAAO,MAAM,EAAE,6CAWb,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requires.test.d.ts","sourceRoot":"","sources":["../requires.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"requires.test.d.ts","sourceRoot":"","sources":["../requires.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAU,CAAC,EAAc,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAKtC,OAAO,EAAE,cAAc,EAAyC,YAAY,EAAoB,IAAI,EAAE,kBAAkB,EAA0B,cAAc,EAAmC,IAAI,EAAY,MAAM,eAAe,CAAA;;cAGnK,IAAI;;AADzE,qBAAa,sBACX,SAAQ,2BAA8F;IAEtG,MAAM,CAAC,OAAO,oDASZ;CACH;AAqBD,eAAO,MAAM,eAAe;;;;;;;;;;SAMK,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-multi-middleware.test.d.ts","sourceRoot":"","sources":["../rpc-multi-middleware.test.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"rpc-multi-middleware.test.d.ts","sourceRoot":"","sources":["../rpc-multi-middleware.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,EAAU,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGhD,OAAO,EAAE,SAAS,EAAkD,MAAM,qBAAqB,CAAA;AAG/F,OAAO,EAAE,cAAc,EAAyC,YAAY,EAA0B,kBAAkB,EAA0B,cAAc,EAAmC,IAAI,EAAY,WAAW,EAAE,MAAM,eAAe,CAAA;AAErP,QAAA,MAAM,UAAU;;;;;;;;;;oCAGmB,CAAA;AAGnC,qBAAa,oBAAqB,SAAQ,UAAU;CAAG;;;;;;;;;;;;AAEvD,cAAM,UAAW,SAAQ,eAKkB;CACzC;AAsCF,eAAO,MAAM,OAAO,+FAMhB,CAAA;AAgBJ,eAAO,MAAM,YAAY,uLAItB,CAAA;AAEH,eAAO,MAAM,YAAY,yIAgByB,CAAA"}
|
package/test/fixtures.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect, Layer, S, Scope, ServiceMap } from "effect-app"
|
|
2
2
|
import { NotLoggedInError, UnauthorizedError } from "effect-app/client"
|
|
3
3
|
import { RpcContextMap, RpcX } from "effect-app/rpc"
|
|
4
4
|
import { TaggedError } from "effect-app/Schema"
|
|
5
5
|
|
|
6
|
-
export class UserProfile extends
|
|
6
|
+
export class UserProfile extends ServiceMap.assignTag<UserProfile, UserProfile>("UserProfile")(
|
|
7
7
|
S.Class<UserProfile>("UserProfile")({
|
|
8
8
|
id: S.String,
|
|
9
9
|
roles: S.Array(S.String)
|
|
@@ -11,10 +11,12 @@ export class UserProfile extends Context.assignTag<UserProfile, UserProfile>("Us
|
|
|
11
11
|
) {
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export class Some extends
|
|
15
|
-
export class SomeElse extends
|
|
14
|
+
export class Some extends ServiceMap.Opaque<Some>()("Some", { make: Effect.succeed({ a: 1 }) }) {}
|
|
15
|
+
export class SomeElse extends ServiceMap.Opaque<SomeElse>()("SomeElse", { make: Effect.succeed({ b: 2 }) }) {}
|
|
16
16
|
const MakeSomeService = Effect.succeed({ a: 1 })
|
|
17
|
-
export class SomeService extends
|
|
17
|
+
export class SomeService extends ServiceMap.Opaque<SomeService>()("SomeService", { make: MakeSomeService }) {
|
|
18
|
+
static readonly Default = this.toLayer(this.make)
|
|
19
|
+
}
|
|
18
20
|
|
|
19
21
|
// functionally equivalent to the one above
|
|
20
22
|
export class SomeMiddleware extends RpcX.RpcMiddleware.Tag<SomeMiddleware, { provides: Some }>()("SomeMiddleware") {
|
|
@@ -24,7 +26,7 @@ export const SomeMiddlewareLive = Layer.effect(
|
|
|
24
26
|
SomeMiddleware,
|
|
25
27
|
Effect.gen(function*() {
|
|
26
28
|
// yield* Effect.context<"test-dep">()
|
|
27
|
-
return (effect) => effect.pipe(Effect.provideService(Some,
|
|
29
|
+
return (effect) => effect.pipe(Effect.provideService(Some, Some.of({ a: 1 })))
|
|
28
30
|
})
|
|
29
31
|
)
|
|
30
32
|
|
|
@@ -39,7 +41,7 @@ export const SomeElseMiddlewareLive = Layer.effect(
|
|
|
39
41
|
return (effect) =>
|
|
40
42
|
Effect.gen(function*() {
|
|
41
43
|
// yield* Effect.context<"test-dep2">()
|
|
42
|
-
return yield* effect.pipe(Effect.provideService(SomeElse,
|
|
44
|
+
return yield* effect.pipe(Effect.provideService(SomeElse, SomeElse.of({ b: 2 })))
|
|
43
45
|
})
|
|
44
46
|
})
|
|
45
47
|
)
|
package/test/query.test.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable unused-imports/no-unused-vars */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
-
import { Effect, flow, Layer, Option, pipe, S, Struct } from "effect-app"
|
|
4
|
+
import { Effect, flow, Layer, Option, pipe, S, ServiceMap, Struct } from "effect-app"
|
|
5
5
|
import { inspect } from "util"
|
|
6
6
|
import { expect, expectTypeOf, it } from "vitest"
|
|
7
7
|
import { setupRequestContextFromCurrent } from "../src/api/setupRequest.js"
|
|
@@ -12,7 +12,7 @@ import { SomeService } from "./fixtures.js"
|
|
|
12
12
|
|
|
13
13
|
const str = S.Struct({ _tag: S.Literal("string"), value: S.String })
|
|
14
14
|
const num = S.Struct({ _tag: S.Literal("number"), value: S.Number })
|
|
15
|
-
const someUnion = S.Union(str, num)
|
|
15
|
+
const someUnion = S.Union([str, num])
|
|
16
16
|
|
|
17
17
|
export class Something extends S.Class<Something>("Something")({
|
|
18
18
|
id: S.StringId.withDefault,
|
|
@@ -23,7 +23,7 @@ export class Something extends S.Class<Something>("Something")({
|
|
|
23
23
|
}) {}
|
|
24
24
|
export declare namespace Something {
|
|
25
25
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
26
|
-
export interface Encoded extends S.
|
|
26
|
+
export interface Encoded extends S.Codec.Encoded<typeof Something> {}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
const q = make<Something.Encoded>()
|
|
@@ -38,9 +38,13 @@ const q = make<Something.Encoded>()
|
|
|
38
38
|
// for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
|
|
39
39
|
project(
|
|
40
40
|
S.transformToOrFail(
|
|
41
|
-
S.Struct(Struct.pick(Something.fields, "id", "displayName")),
|
|
42
|
-
S.Struct(Struct.pick(Something.fields, "id", "displayName")),
|
|
43
|
-
(_) =>
|
|
41
|
+
S.Struct(Struct.pick(Something.fields, ["id", "displayName"])),
|
|
42
|
+
S.Struct(Struct.pick(Something.fields, ["id", "displayName"])),
|
|
43
|
+
(_) =>
|
|
44
|
+
Effect.gen(function*() {
|
|
45
|
+
yield* SomeService
|
|
46
|
+
return _
|
|
47
|
+
})
|
|
44
48
|
)
|
|
45
49
|
)
|
|
46
50
|
)
|
|
@@ -91,12 +95,12 @@ it("works", () => {
|
|
|
91
95
|
}))(_)
|
|
92
96
|
))
|
|
93
97
|
|
|
94
|
-
expect(processed).toEqual(items.slice(0, 2).toReversed().map(Struct.pick("id", "displayName")))
|
|
98
|
+
expect(processed).toEqual(items.slice(0, 2).toReversed().map(Struct.pick(["id", "displayName"])))
|
|
95
99
|
})
|
|
96
100
|
|
|
97
101
|
// @effect-diagnostics-next-line missingEffectServiceDependency:off
|
|
98
|
-
class SomethingRepo extends
|
|
99
|
-
|
|
102
|
+
class SomethingRepo extends ServiceMap.Service<SomethingRepo>()("SomethingRepo", {
|
|
103
|
+
make: Effect.gen(function*() {
|
|
100
104
|
return yield* makeRepo("Something", Something, {})
|
|
101
105
|
})
|
|
102
106
|
}) {
|
|
@@ -104,7 +108,7 @@ class SomethingRepo extends Effect.Service<SomethingRepo>()("SomethingRepo", {
|
|
|
104
108
|
.effect(
|
|
105
109
|
SomethingRepo,
|
|
106
110
|
Effect.gen(function*() {
|
|
107
|
-
return SomethingRepo.
|
|
111
|
+
return SomethingRepo.of(yield* makeRepo("Something", Something, { makeInitial: Effect.sync(() => items) }))
|
|
108
112
|
})
|
|
109
113
|
)
|
|
110
114
|
.pipe(
|
|
@@ -134,9 +138,13 @@ it("works with repo", () =>
|
|
|
134
138
|
// for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
|
|
135
139
|
project(
|
|
136
140
|
S.transformToOrFail(
|
|
137
|
-
S.Struct(Struct.pick(Something.fields, "displayName")),
|
|
138
|
-
S.Struct(Struct.pick(Something.fields, "displayName")),
|
|
139
|
-
(_) =>
|
|
141
|
+
S.Struct(Struct.pick(Something.fields, ["displayName"])),
|
|
142
|
+
S.Struct(Struct.pick(Something.fields, ["displayName"])),
|
|
143
|
+
(_) =>
|
|
144
|
+
Effect.gen(function*() {
|
|
145
|
+
yield* SomeService
|
|
146
|
+
return _
|
|
147
|
+
})
|
|
140
148
|
)
|
|
141
149
|
)
|
|
142
150
|
)
|
|
@@ -148,11 +156,13 @@ it("works with repo", () =>
|
|
|
148
156
|
|
|
149
157
|
expectTypeOf(smtArr).toEqualTypeOf<readonly Something[]>()
|
|
150
158
|
|
|
151
|
-
|
|
152
|
-
|
|
159
|
+
console.log(" $$$$$$")
|
|
160
|
+
console.log(Struct.pick(["id", "displayName"]))
|
|
161
|
+
expect(q1).toEqual(items.slice(0, 2).toReversed().map(Struct.pick(["id", "displayName"])))
|
|
162
|
+
expect(q2).toEqual(items.slice(0, 2).toReversed().map(Struct.pick(["displayName"])))
|
|
153
163
|
})
|
|
154
164
|
.pipe(
|
|
155
|
-
Effect.provide(Layer.mergeAll(SomethingRepo.Test, SomeService.
|
|
165
|
+
Effect.provide(Layer.mergeAll(SomethingRepo.Test, SomeService.Default)),
|
|
156
166
|
setupRequestContextFromCurrent(),
|
|
157
167
|
Effect.runPromise
|
|
158
168
|
))
|
|
@@ -171,11 +181,11 @@ it("collect", () =>
|
|
|
171
181
|
// for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
|
|
172
182
|
project(
|
|
173
183
|
S.transformTo(
|
|
174
|
-
S.
|
|
175
|
-
...Struct.pick(Something.fields, "n"),
|
|
184
|
+
S.toEncoded(S.Struct({
|
|
185
|
+
...Struct.pick(Something.fields, ["n"]),
|
|
176
186
|
displayName: S.String
|
|
177
187
|
})),
|
|
178
|
-
S.
|
|
188
|
+
S.toType(S.Option(S.String)),
|
|
179
189
|
(_) =>
|
|
180
190
|
_.displayName === "Riley" && _.n === "2020-01-01T00:00:00.000Z"
|
|
181
191
|
? Option.some(`${_.displayName}-${_.n}`)
|
|
@@ -223,7 +233,7 @@ it("collect", () =>
|
|
|
223
233
|
expect(value).toEqual("hi")
|
|
224
234
|
})
|
|
225
235
|
.pipe(
|
|
226
|
-
Effect.provide(Layer.mergeAll(SomethingRepo.Test, SomeService.
|
|
236
|
+
Effect.provide(Layer.mergeAll(SomethingRepo.Test, SomeService.Default)),
|
|
227
237
|
setupRequestContextFromCurrent(),
|
|
228
238
|
Effect.runPromise
|
|
229
239
|
))
|
|
@@ -250,7 +260,7 @@ namespace Test {
|
|
|
250
260
|
export interface Encoded extends S.Struct.Encoded<typeof Test["fields"]> {}
|
|
251
261
|
}
|
|
252
262
|
|
|
253
|
-
const TestUnion = S.Union(Person, Animal, Test)
|
|
263
|
+
const TestUnion = S.Union([Person, Animal, Test])
|
|
254
264
|
type TestUnion = typeof TestUnion.Type
|
|
255
265
|
namespace TestUnion {
|
|
256
266
|
export type Encoded = typeof TestUnion.Encoded
|
|
@@ -487,7 +497,7 @@ it(
|
|
|
487
497
|
|
|
488
498
|
type Union = AA | BB | CC | DD
|
|
489
499
|
|
|
490
|
-
const repo = yield* makeRepo("test", S.Union(AA, BB, CC, DD), {})
|
|
500
|
+
const repo = yield* makeRepo("test", S.Union([AA, BB, CC, DD]), {})
|
|
491
501
|
|
|
492
502
|
const query1 = make<Union>().pipe(
|
|
493
503
|
where("id", "AA")
|
|
@@ -510,11 +520,10 @@ it(
|
|
|
510
520
|
.gen(function*() {
|
|
511
521
|
const schema = S.Struct({
|
|
512
522
|
id: S.String,
|
|
513
|
-
createdAt: S
|
|
514
|
-
.
|
|
515
|
-
.
|
|
516
|
-
|
|
517
|
-
)
|
|
523
|
+
createdAt: S.Date.pipe(
|
|
524
|
+
S.withDecodingDefault(() => new Date().toISOString()),
|
|
525
|
+
S.withConstructorDefault(() => Option.some(new Date()))
|
|
526
|
+
)
|
|
518
527
|
})
|
|
519
528
|
const repo = yield* makeRepo(
|
|
520
529
|
"test",
|
|
@@ -524,11 +533,10 @@ it(
|
|
|
524
533
|
|
|
525
534
|
const outputSchema = S.Struct({
|
|
526
535
|
id: S.Literal("123"),
|
|
527
|
-
createdAt: S
|
|
528
|
-
.
|
|
529
|
-
.
|
|
530
|
-
|
|
531
|
-
)
|
|
536
|
+
createdAt: S.Date.pipe(
|
|
537
|
+
S.withDecodingDefault(() => new Date().toISOString()),
|
|
538
|
+
S.withConstructorDefault(() => Option.some(new Date()))
|
|
539
|
+
)
|
|
532
540
|
})
|
|
533
541
|
|
|
534
542
|
const result = yield* repo.query(where("id", "123"), project(outputSchema))
|
|
@@ -575,7 +583,7 @@ it(
|
|
|
575
583
|
.gen(function*() {
|
|
576
584
|
const schema = S.Struct({
|
|
577
585
|
id: S.String,
|
|
578
|
-
literals: S.Union(S.Literal("a", "b", "c"), S.Null)
|
|
586
|
+
literals: S.Union([S.Literal("a", "b", "c"), S.Null])
|
|
579
587
|
})
|
|
580
588
|
|
|
581
589
|
type Schema = typeof schema.Type
|
|
@@ -619,7 +627,7 @@ it(
|
|
|
619
627
|
.gen(function*() {
|
|
620
628
|
const schema = S.Struct({
|
|
621
629
|
id: S.String,
|
|
622
|
-
literals: S.Union(S.String, S.Null)
|
|
630
|
+
literals: S.Union([S.String, S.Null])
|
|
623
631
|
})
|
|
624
632
|
|
|
625
633
|
type Schema = typeof schema.Type
|
|
@@ -671,7 +679,7 @@ it("remove null from one constituent of a tagged union", () =>
|
|
|
671
679
|
|
|
672
680
|
type Union = AA | BB
|
|
673
681
|
|
|
674
|
-
const repo = yield* makeRepo("test", S.Union(AA, BB), {})
|
|
682
|
+
const repo = yield* makeRepo("test", S.Union([AA, BB]), {})
|
|
675
683
|
|
|
676
684
|
const query1 = make<Union>().pipe(
|
|
677
685
|
where("id", "AA"),
|
|
@@ -729,7 +737,7 @@ it("refine 3", () =>
|
|
|
729
737
|
|
|
730
738
|
type Union = AA | BB | CC | DD
|
|
731
739
|
|
|
732
|
-
const repo = yield* makeRepo("test", S.Union(AA, BB, CC, DD), {})
|
|
740
|
+
const repo = yield* makeRepo("test", S.Union([AA, BB, CC, DD]), {})
|
|
733
741
|
|
|
734
742
|
const query1 = make<Union>().pipe(
|
|
735
743
|
where("id", "AA")
|
|
@@ -773,7 +781,7 @@ it("refine inner without imposing a projection", () =>
|
|
|
773
781
|
|
|
774
782
|
class Data extends S.Class<Data>("Data")({
|
|
775
783
|
id: S.String,
|
|
776
|
-
union: S.Union(AA, BB)
|
|
784
|
+
union: S.Union([AA, BB])
|
|
777
785
|
}) {}
|
|
778
786
|
|
|
779
787
|
const repo = yield* makeRepo("data", Data, {})
|
|
@@ -1001,20 +1009,20 @@ it("refine union with nested union", () =>
|
|
|
1001
1009
|
|
|
1002
1010
|
class Container1 extends S.TaggedClass<Container1>()("Container1", {
|
|
1003
1011
|
id: S.String,
|
|
1004
|
-
nested: S.Union(A, B, C)
|
|
1012
|
+
nested: S.Union([A, B, C])
|
|
1005
1013
|
}) {}
|
|
1006
1014
|
|
|
1007
1015
|
class Container2 extends S.TaggedClass<Container2>()("Container2", {
|
|
1008
1016
|
id: S.String,
|
|
1009
|
-
nested: S.Union(B, C, D)
|
|
1017
|
+
nested: S.Union([B, C, D])
|
|
1010
1018
|
}) {}
|
|
1011
1019
|
|
|
1012
1020
|
class Container3 extends S.TaggedClass<Container3>()("Container3", {
|
|
1013
1021
|
id: S.String,
|
|
1014
|
-
nested: S.Union(C, D, E)
|
|
1022
|
+
nested: S.Union([C, D, E])
|
|
1015
1023
|
}) {}
|
|
1016
1024
|
|
|
1017
|
-
const Containers = S.Union(Container1, Container2, Container3)
|
|
1025
|
+
const Containers = S.Union([Container1, Container2, Container3])
|
|
1018
1026
|
type Containers = typeof Containers.Type
|
|
1019
1027
|
|
|
1020
1028
|
const repo = yield* makeRepo("containers", Containers, {})
|