effect-app 4.0.0-beta.13 → 4.0.0-beta.131
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 +503 -0
- package/dist/Config/SecretURL.js +2 -2
- package/dist/Config.d.ts +7 -0
- package/dist/Config.d.ts.map +1 -0
- package/dist/Config.js +6 -0
- package/dist/ConfigProvider.d.ts +39 -0
- package/dist/ConfigProvider.d.ts.map +1 -0
- package/dist/ConfigProvider.js +42 -0
- package/dist/{ServiceMap.d.ts → Context.d.ts} +14 -18
- package/dist/Context.d.ts.map +1 -0
- package/dist/Context.js +66 -0
- package/dist/Effect.d.ts +8 -9
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +3 -6
- package/dist/Layer.d.ts +5 -4
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +1 -1
- package/dist/Operations.d.ts +198 -33
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Pure.d.ts +2 -2
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +13 -13
- package/dist/Schema/Class.d.ts +48 -10
- package/dist/Schema/Class.d.ts.map +1 -1
- package/dist/Schema/Class.js +120 -16
- package/dist/Schema/SpecialJsonSchema.d.ts +33 -0
- package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
- package/dist/Schema/SpecialJsonSchema.js +122 -0
- package/dist/Schema/SpecialOpenApi.d.ts +32 -0
- package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
- package/dist/Schema/SpecialOpenApi.js +123 -0
- package/dist/Schema/brand.d.ts +10 -1
- package/dist/Schema/brand.d.ts.map +1 -1
- package/dist/Schema/brand.js +1 -1
- package/dist/Schema/email.d.ts.map +1 -1
- package/dist/Schema/email.js +9 -4
- package/dist/Schema/ext.d.ts +112 -47
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +115 -53
- package/dist/Schema/moreStrings.d.ts +110 -10
- package/dist/Schema/moreStrings.d.ts.map +1 -1
- package/dist/Schema/moreStrings.js +19 -10
- package/dist/Schema/numbers.d.ts +126 -14
- package/dist/Schema/numbers.d.ts.map +1 -1
- package/dist/Schema/numbers.js +10 -9
- package/dist/Schema/phoneNumber.d.ts.map +1 -1
- package/dist/Schema/phoneNumber.js +8 -3
- package/dist/Schema/strings.d.ts +36 -4
- package/dist/Schema/strings.d.ts.map +1 -1
- package/dist/Schema/strings.js +1 -1
- package/dist/Schema.d.ts +74 -55
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +85 -64
- package/dist/client/apiClientFactory.d.ts +12 -28
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/apiClientFactory.js +16 -17
- package/dist/client/clientFor.d.ts +6 -5
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/errors.d.ts +18 -9
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +35 -10
- package/dist/client/makeClient.d.ts +73 -28
- package/dist/client/makeClient.d.ts.map +1 -1
- package/dist/client/makeClient.js +49 -23
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +5 -5
- package/dist/ids.d.ts +2 -2
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +3 -2
- package/dist/index.d.ts +3 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -8
- package/dist/middleware.d.ts +2 -2
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +3 -3
- package/dist/rpc/MiddlewareMaker.d.ts +4 -3
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
- package/dist/rpc/MiddlewareMaker.js +23 -24
- package/dist/rpc/RpcContextMap.d.ts +2 -2
- package/dist/rpc/RpcContextMap.d.ts.map +1 -1
- package/dist/rpc/RpcContextMap.js +4 -4
- package/dist/rpc/RpcMiddleware.d.ts +4 -3
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +1 -1
- package/dist/utils/gen.d.ts +1 -1
- package/dist/utils/gen.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +2 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -3
- package/dist/utils.d.ts +7 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +8 -2
- package/package.json +30 -14
- package/src/Config/SecretURL.ts +1 -1
- package/src/Config.ts +14 -0
- package/src/ConfigProvider.ts +48 -0
- package/src/{ServiceMap.ts → Context.ts} +51 -59
- package/src/Effect.ts +11 -14
- package/src/Layer.ts +5 -4
- package/src/Pure.ts +17 -18
- package/src/Schema/Class.ts +157 -30
- package/src/Schema/SpecialJsonSchema.ts +137 -0
- package/src/Schema/SpecialOpenApi.ts +130 -0
- package/src/Schema/brand.ts +18 -3
- package/src/Schema/email.ts +10 -2
- package/src/Schema/ext.ts +196 -87
- package/src/Schema/moreStrings.ts +31 -17
- package/src/Schema/numbers.ts +14 -13
- package/src/Schema/phoneNumber.ts +8 -1
- package/src/Schema/strings.ts +4 -4
- package/src/Schema.ts +195 -104
- package/src/client/apiClientFactory.ts +104 -112
- package/src/client/clientFor.ts +6 -1
- package/src/client/errors.ts +42 -17
- package/src/client/makeClient.ts +150 -61
- package/src/http/Request.ts +7 -4
- package/src/ids.ts +2 -1
- package/src/index.ts +3 -10
- package/src/middleware.ts +2 -2
- package/src/rpc/MiddlewareMaker.ts +33 -44
- package/src/rpc/RpcContextMap.ts +6 -5
- package/src/rpc/RpcMiddleware.ts +5 -4
- package/src/utils/gen.ts +1 -1
- package/src/utils/logger.ts +2 -2
- package/src/utils.ts +8 -4
- package/test/dist/moreStrings.test.d.ts.map +1 -0
- package/test/dist/rpc.test.d.ts.map +1 -1
- package/test/dist/secretURL.test.d.ts.map +1 -0
- package/test/dist/special.test.d.ts.map +1 -0
- package/test/moreStrings.test.ts +17 -0
- package/test/rpc.test.ts +30 -6
- package/test/schema.test.ts +517 -4
- package/test/secretURL.test.ts +157 -0
- package/test/special.test.ts +862 -0
- package/test/utils.test.ts +2 -2
- package/tsconfig.base.json +0 -1
- package/tsconfig.json +0 -1
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js +0 -91
package/dist/client/errors.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** @effect-diagnostics overriddenSchemaConstructor:skip-file */
|
|
2
|
-
import {
|
|
2
|
+
import { TaggedErrorClass } from "effect-app/Schema";
|
|
3
3
|
import * as Cause from "effect/Cause";
|
|
4
4
|
import * as S from "../Schema.js";
|
|
5
5
|
export const tryToJson = (error) => {
|
|
@@ -22,7 +22,7 @@ export const tryToJson = (error) => {
|
|
|
22
22
|
};
|
|
23
23
|
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
24
24
|
// @ts-expect-error type not used
|
|
25
|
-
export class NotFoundError extends
|
|
25
|
+
export class NotFoundError extends TaggedErrorClass()("NotFoundError", {
|
|
26
26
|
type: S.String,
|
|
27
27
|
id: S.Unknown
|
|
28
28
|
}) {
|
|
@@ -32,23 +32,32 @@ export class NotFoundError extends TaggedError()("NotFoundError", {
|
|
|
32
32
|
get message() {
|
|
33
33
|
return `Didn't find ${this.type}#${JSON.stringify(this.id)}`;
|
|
34
34
|
}
|
|
35
|
+
toString() {
|
|
36
|
+
return `NotFoundError: ${this.message}`;
|
|
37
|
+
}
|
|
35
38
|
}
|
|
36
39
|
const messageFallback = (messageOrObject) => typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject ?? "" };
|
|
37
|
-
export class InvalidStateError extends
|
|
40
|
+
export class InvalidStateError extends TaggedErrorClass()("InvalidStateError", {
|
|
38
41
|
message: S.String
|
|
39
42
|
}) {
|
|
40
43
|
constructor(messageOrObject, disableValidation) {
|
|
41
44
|
super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject }, disableValidation);
|
|
42
45
|
}
|
|
46
|
+
toString() {
|
|
47
|
+
return `InvalidStateError: ${this.message}`;
|
|
48
|
+
}
|
|
43
49
|
}
|
|
44
|
-
export class ServiceUnavailableError extends
|
|
50
|
+
export class ServiceUnavailableError extends TaggedErrorClass()("ServiceUnavailableError", {
|
|
45
51
|
message: S.String
|
|
46
52
|
}) {
|
|
47
53
|
constructor(messageOrObject, disableValidation) {
|
|
48
54
|
super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject }, disableValidation);
|
|
49
55
|
}
|
|
56
|
+
toString() {
|
|
57
|
+
return `ServiceUnavailableError: ${this.message}`;
|
|
58
|
+
}
|
|
50
59
|
}
|
|
51
|
-
export class ValidationError extends
|
|
60
|
+
export class ValidationError extends TaggedErrorClass()("ValidationError", {
|
|
52
61
|
errors: S.Array(S.Unknown)
|
|
53
62
|
}) {
|
|
54
63
|
constructor(props, disableValidation) {
|
|
@@ -57,32 +66,44 @@ export class ValidationError extends TaggedError()("ValidationError", {
|
|
|
57
66
|
get message() {
|
|
58
67
|
return `Validation failed: ${this.errors.map((e) => JSON.stringify(e, undefined, 2)).join(",\n")}`;
|
|
59
68
|
}
|
|
69
|
+
toString() {
|
|
70
|
+
return `ValidationError: ${this.message}`;
|
|
71
|
+
}
|
|
60
72
|
}
|
|
61
|
-
export class NotLoggedInError extends
|
|
73
|
+
export class NotLoggedInError extends TaggedErrorClass()("NotLoggedInError", {
|
|
62
74
|
message: S.String
|
|
63
75
|
}) {
|
|
64
76
|
constructor(messageOrObject, disableValidation) {
|
|
65
77
|
super(messageFallback(messageOrObject), disableValidation);
|
|
66
78
|
}
|
|
79
|
+
toString() {
|
|
80
|
+
return `NotLoggedInError: ${this.message}`;
|
|
81
|
+
}
|
|
67
82
|
}
|
|
68
83
|
/**
|
|
69
84
|
* The user carries a valid Userprofile, but there is a problem with the login none the less.
|
|
70
85
|
*/
|
|
71
|
-
export class LoginError extends
|
|
86
|
+
export class LoginError extends TaggedErrorClass()("NotLoggedInError", {
|
|
72
87
|
message: S.String
|
|
73
88
|
}) {
|
|
74
89
|
constructor(messageOrObject, disableValidation) {
|
|
75
90
|
super(messageFallback(messageOrObject), disableValidation);
|
|
76
91
|
}
|
|
92
|
+
toString() {
|
|
93
|
+
return `LoginError: ${this.message}`;
|
|
94
|
+
}
|
|
77
95
|
}
|
|
78
|
-
export class UnauthorizedError extends
|
|
96
|
+
export class UnauthorizedError extends TaggedErrorClass()("UnauthorizedError", {
|
|
79
97
|
message: S.String
|
|
80
98
|
}) {
|
|
81
99
|
constructor(messageOrObject, disableValidation) {
|
|
82
100
|
super(messageFallback(messageOrObject), disableValidation);
|
|
83
101
|
}
|
|
102
|
+
toString() {
|
|
103
|
+
return `UnauthorizedError: ${this.message}`;
|
|
104
|
+
}
|
|
84
105
|
}
|
|
85
|
-
export class OptimisticConcurrencyException extends
|
|
106
|
+
export class OptimisticConcurrencyException extends TaggedErrorClass()("OptimisticConcurrencyException", { message: S.String }) {
|
|
86
107
|
details;
|
|
87
108
|
raw;
|
|
88
109
|
constructor(args, disableValidation) {
|
|
@@ -91,6 +112,9 @@ export class OptimisticConcurrencyException extends TaggedError()("OptimisticCon
|
|
|
91
112
|
this.details = args;
|
|
92
113
|
}
|
|
93
114
|
}
|
|
115
|
+
toString() {
|
|
116
|
+
return `OptimisticConcurrencyException: ${this.message}`;
|
|
117
|
+
}
|
|
94
118
|
}
|
|
95
119
|
const MutationOnlyErrors = [
|
|
96
120
|
InvalidStateError,
|
|
@@ -134,6 +158,7 @@ export class CauseException extends Error {
|
|
|
134
158
|
this.originalCause = originalCause;
|
|
135
159
|
this._tag = _tag;
|
|
136
160
|
Error.stackTraceLimit = limit;
|
|
161
|
+
this.cause = Cause.squash(originalCause);
|
|
137
162
|
// v4: makeFiberFailure removed — use Cause.prettyErrors instead
|
|
138
163
|
const errors = Cause.prettyErrors(originalCause);
|
|
139
164
|
const first = errors[0];
|
|
@@ -189,4 +214,4 @@ export const tryToReport = (error) => {
|
|
|
189
214
|
}
|
|
190
215
|
}
|
|
191
216
|
};
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0VBQWdFO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxDQUFDLE1BQU0sY0FBYyxDQUFBO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQWdELEVBQUUsRUFBRTtJQUM1RSxJQUFJLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsSUFBSSxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDekIsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUM7Z0JBQ0gsT0FBTyw0QkFBNEIsR0FBRyxFQUFFLENBQUE7WUFDMUMsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLDBDQUEwQyxDQUFBO1lBQ25ELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELHlEQUF5RDtBQUN6RCxpQ0FBaUM7QUFDakMsTUFBTSxPQUFPLGFBQWlDLFNBQVEsZ0JBQWdCLEVBQTJCLENBQUMsZUFBZSxFQUFFO0lBQ2pILElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNkLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTztDQUNkLENBQUM7SUFDQSxZQUNFLEtBQXFELEVBQ3JELGlCQUEyQjtRQUUzQixLQUFLLENBQUMsS0FBSyxFQUFFLGlCQUF3QixDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUNELElBQWEsT0FBTztRQUNsQixPQUFPLGVBQWdCLElBQVksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMs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
|
|
@@ -1,41 +1,86 @@
|
|
|
1
1
|
import { type GetContextConfig, type GetEffectError, type RequestContextMapTagAny } from "../rpc/RpcContextMap.js";
|
|
2
2
|
import * as S from "../Schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Whatever the input, we will only decode or encode to void
|
|
5
|
+
*/
|
|
6
|
+
export declare const ForceVoid: S.decodeTo<S.Any, S.declare<unknown, unknown>, never, never>;
|
|
3
7
|
type SchemaOrFields<T> = T extends S.Top ? T : T extends S.Struct.Fields ? S.Struct<T> : S.Void;
|
|
4
|
-
type
|
|
5
|
-
new (...args: any[]): any;
|
|
8
|
+
type TaggedRequestForResult<Self, Tag extends string, Payload extends S.Struct.Fields, Success extends S.Top, Error extends S.Top, Config, ModuleName extends string, Type extends "command" | "query"> = S.EnhancedClass<Self, S.TaggedStruct<Tag, Payload>, {}> & {
|
|
6
9
|
readonly _tag: Tag;
|
|
7
|
-
readonly fields: {
|
|
8
|
-
readonly _tag: S.tag<Tag>;
|
|
9
|
-
} & Payload;
|
|
10
10
|
readonly success: Success;
|
|
11
11
|
readonly error: Error;
|
|
12
12
|
readonly config: Config;
|
|
13
13
|
readonly "~decodingServices": S.Codec.DecodingServices<Success> | S.Codec.DecodingServices<Error>;
|
|
14
|
+
readonly "~encodingServices": S.Codec.EncodingServices<Success> | S.Codec.EncodingServices<Error>;
|
|
15
|
+
readonly id: `${ModuleName}.${Tag}`;
|
|
16
|
+
readonly moduleName: ModuleName;
|
|
17
|
+
readonly type: Type;
|
|
14
18
|
};
|
|
15
19
|
export declare const makeRpcClient: <RequestContextMap extends RequestContextMapTagAny, GeneralErrors extends S.Top = never>(rcs: RequestContextMap, generalErrors?: GeneralErrors) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
20
|
+
TaggedRequestFor: <ModuleName extends string>(moduleName: ModuleName) => {
|
|
21
|
+
readonly moduleName: ModuleName;
|
|
22
|
+
/**
|
|
23
|
+
* Create query request classes for this module.
|
|
24
|
+
* Queries read state and should not mutate server state.
|
|
25
|
+
*/
|
|
26
|
+
readonly Query: (<Self>() => {
|
|
27
|
+
<Tag extends string, Payload extends S.Struct.Fields, C extends {
|
|
28
|
+
success: S.Top | S.Struct.Fields;
|
|
29
|
+
error: S.Top | S.Struct.Fields;
|
|
30
|
+
}>(tag: Tag, fields: Payload, config: GetContextConfig<RequestContextMap["config"]> & C): TaggedRequestForResult<Self, Tag, Payload, SchemaOrFields<C["success"]>, C extends {
|
|
31
|
+
error: infer E;
|
|
32
|
+
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C>>, GeneralErrors]>, Omit<C, "error" | "success">, ModuleName, "query">;
|
|
33
|
+
<Tag extends string, Payload_1 extends S.Struct.Fields, C_1 extends Pick<{
|
|
34
|
+
success: S.Top | S.Struct.Fields;
|
|
35
|
+
error: S.Top | S.Struct.Fields;
|
|
36
|
+
}, "success">>(tag: Tag, fields: Payload_1, config: GetContextConfig<RequestContextMap["config"]> & C_1): TaggedRequestForResult<Self, Tag, Payload_1, SchemaOrFields<C_1["success"]>, C_1 extends {
|
|
37
|
+
error: infer E;
|
|
38
|
+
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C_1> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C_1>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C_1>>, GeneralErrors]>, Omit<C_1, "error" | "success">, ModuleName, "query">;
|
|
39
|
+
<Tag extends string, Payload_2 extends S.Struct.Fields, C_2 extends Pick<{
|
|
40
|
+
success: S.Top | S.Struct.Fields;
|
|
41
|
+
error: S.Top | S.Struct.Fields;
|
|
42
|
+
}, "error">>(tag: Tag, fields: Payload_2, config: GetContextConfig<RequestContextMap["config"]> & C_2): TaggedRequestForResult<Self, Tag, Payload_2, S.decodeTo<S.Any, S.declare<unknown, unknown>, never, never>, C_2 extends {
|
|
43
|
+
error: infer E;
|
|
44
|
+
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C_2> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C_2>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C_2>>, GeneralErrors]>, Omit<C_2, "error" | "success">, ModuleName, "query">;
|
|
45
|
+
<Tag extends string, Payload_3 extends S.Struct.Fields, C_3 extends Record<string, any>>(tag: Tag, fields: Payload_3, config: C_3 & GetContextConfig<RequestContextMap["config"]>): TaggedRequestForResult<Self, Tag, Payload_3, S.decodeTo<S.Any, S.declare<unknown, unknown>, never, never>, C_3 extends {
|
|
46
|
+
error: infer E;
|
|
47
|
+
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C_3> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C_3>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C_3>>, GeneralErrors]>, Omit<C_3, "error" | "success">, ModuleName, "query">;
|
|
48
|
+
<Tag extends string, Payload_4 extends S.Struct.Fields>(tag: Tag, fields: Payload_4): TaggedRequestForResult<Self, Tag, Payload_4, S.decodeTo<S.Any, S.declare<unknown, unknown>, never, never>, [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], {}> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], {}>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], {}>>, GeneralErrors]>, Record<string, never>, ModuleName, "query">;
|
|
49
|
+
}) & {
|
|
50
|
+
readonly moduleName: ModuleName;
|
|
51
|
+
readonly type: "query";
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Create command request classes for this module.
|
|
55
|
+
* Commands mutate state and should avoid returning complex read models.
|
|
56
|
+
*/
|
|
57
|
+
readonly Command: (<Self>() => {
|
|
58
|
+
<Tag extends string, Payload extends S.Struct.Fields, C extends {
|
|
59
|
+
success: S.Top | S.Struct.Fields;
|
|
60
|
+
error: S.Top | S.Struct.Fields;
|
|
61
|
+
}>(tag: Tag, fields: Payload, config: GetContextConfig<RequestContextMap["config"]> & C): TaggedRequestForResult<Self, Tag, Payload, SchemaOrFields<C["success"]>, C extends {
|
|
62
|
+
error: infer E;
|
|
63
|
+
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C>>, GeneralErrors]>, Omit<C, "error" | "success">, ModuleName, "command">;
|
|
64
|
+
<Tag extends string, Payload_1 extends S.Struct.Fields, C_1 extends Pick<{
|
|
65
|
+
success: S.Top | S.Struct.Fields;
|
|
66
|
+
error: S.Top | S.Struct.Fields;
|
|
67
|
+
}, "success">>(tag: Tag, fields: Payload_1, config: GetContextConfig<RequestContextMap["config"]> & C_1): TaggedRequestForResult<Self, Tag, Payload_1, SchemaOrFields<C_1["success"]>, C_1 extends {
|
|
68
|
+
error: infer E;
|
|
69
|
+
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C_1> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C_1>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C_1>>, GeneralErrors]>, Omit<C_1, "error" | "success">, ModuleName, "command">;
|
|
70
|
+
<Tag extends string, Payload_2 extends S.Struct.Fields, C_2 extends Pick<{
|
|
71
|
+
success: S.Top | S.Struct.Fields;
|
|
72
|
+
error: S.Top | S.Struct.Fields;
|
|
73
|
+
}, "error">>(tag: Tag, fields: Payload_2, config: GetContextConfig<RequestContextMap["config"]> & C_2): TaggedRequestForResult<Self, Tag, Payload_2, S.decodeTo<S.Any, S.declare<unknown, unknown>, never, never>, C_2 extends {
|
|
74
|
+
error: infer E;
|
|
75
|
+
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C_2> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C_2>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C_2>>, GeneralErrors]>, Omit<C_2, "error" | "success">, ModuleName, "command">;
|
|
76
|
+
<Tag extends string, Payload_3 extends S.Struct.Fields, C_3 extends Record<string, any>>(tag: Tag, fields: Payload_3, config: C_3 & GetContextConfig<RequestContextMap["config"]>): TaggedRequestForResult<Self, Tag, Payload_3, S.decodeTo<S.Any, S.declare<unknown, unknown>, never, never>, C_3 extends {
|
|
77
|
+
error: infer E;
|
|
78
|
+
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C_3> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C_3>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C_3>>, GeneralErrors]>, Omit<C_3, "error" | "success">, ModuleName, "command">;
|
|
79
|
+
<Tag extends string, Payload_4 extends S.Struct.Fields>(tag: Tag, fields: Payload_4): TaggedRequestForResult<Self, Tag, Payload_4, S.decodeTo<S.Any, S.declare<unknown, unknown>, never, never>, [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], {}> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], {}>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], {}>>, GeneralErrors]>, Record<string, never>, ModuleName, "command">;
|
|
80
|
+
}) & {
|
|
81
|
+
readonly moduleName: ModuleName;
|
|
82
|
+
readonly type: "command";
|
|
83
|
+
};
|
|
39
84
|
};
|
|
40
85
|
};
|
|
41
86
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeClient.d.ts","sourceRoot":"","sources":["../../src/client/makeClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"makeClient.d.ts","sourceRoot":"","sources":["../../src/client/makeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,61 @@
|
|
|
1
|
+
import { SchemaTransformation } from "effect";
|
|
1
2
|
import * as S from "../Schema.js";
|
|
2
3
|
import { AST } from "../Schema.js";
|
|
3
4
|
const merge = (a, b) => a !== undefined && b.length ? S.Union([a, ...b]) : a !== undefined ? a : b.length ? S.Union(b) : S.Never;
|
|
4
5
|
/**
|
|
5
6
|
* Whatever the input, we will only decode or encode to void
|
|
6
7
|
*/
|
|
7
|
-
const ForceVoid = S
|
|
8
|
+
export const ForceVoid = S
|
|
9
|
+
.declare((_) => true)
|
|
10
|
+
.pipe(S.decodeTo(S.Any, SchemaTransformation.transform({ decode: () => void 0, encode: () => void 0 })));
|
|
8
11
|
export const makeRpcClient = (rcs, generalErrors) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
success: successSchema,
|
|
25
|
-
error: failureSchema,
|
|
26
|
-
config
|
|
27
|
-
});
|
|
28
|
-
return RequestClass;
|
|
12
|
+
// TODO: filter errors based on config + take care of inversion
|
|
13
|
+
const errorSchemas = Object.values(rcs.config).map((_) => _.error);
|
|
14
|
+
function makeRequestClass(tag, fields, config) {
|
|
15
|
+
const failureSchema = merge(config?.error ? S.isSchema(config.error) ? config.error : S.Struct(config.error) : undefined, [...errorSchemas, generalErrors].filter(Boolean));
|
|
16
|
+
const successSchema = config?.success
|
|
17
|
+
? S.isSchema(config.success)
|
|
18
|
+
? AST.isVoid(config.success.ast) ? ForceVoid : config.success
|
|
19
|
+
: S.Struct(config.success)
|
|
20
|
+
: ForceVoid;
|
|
21
|
+
const RequestClass = S.TaggedClass()(tag, fields);
|
|
22
|
+
Object.assign(RequestClass, {
|
|
23
|
+
_tag: tag,
|
|
24
|
+
success: successSchema,
|
|
25
|
+
error: failureSchema,
|
|
26
|
+
config
|
|
29
27
|
});
|
|
28
|
+
return RequestClass;
|
|
29
|
+
}
|
|
30
|
+
function makeTaggedRequestWithMeta(moduleName, type) {
|
|
31
|
+
function TaggedRequestWithMeta() {
|
|
32
|
+
return ((tag, fields, config) => {
|
|
33
|
+
const cls = makeRequestClass(tag, fields, config);
|
|
34
|
+
Object.assign(cls, { id: `${moduleName}.${tag}`, moduleName, type });
|
|
35
|
+
return cls;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return Object.assign(TaggedRequestWithMeta, { moduleName, type });
|
|
39
|
+
}
|
|
40
|
+
function TaggedRequestFor(moduleName) {
|
|
41
|
+
const Query = makeTaggedRequestWithMeta(moduleName, "query");
|
|
42
|
+
const Command = makeTaggedRequestWithMeta(moduleName, "command");
|
|
43
|
+
return {
|
|
44
|
+
moduleName,
|
|
45
|
+
/**
|
|
46
|
+
* Create query request classes for this module.
|
|
47
|
+
* Queries read state and should not mutate server state.
|
|
48
|
+
*/
|
|
49
|
+
Query,
|
|
50
|
+
/**
|
|
51
|
+
* Create command request classes for this module.
|
|
52
|
+
* Commands mutate state and should avoid returning complex read models.
|
|
53
|
+
*/
|
|
54
|
+
Command
|
|
55
|
+
};
|
|
30
56
|
}
|
|
31
57
|
return {
|
|
32
|
-
|
|
58
|
+
TaggedRequestFor
|
|
33
59
|
};
|
|
34
60
|
};
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvbWFrZUNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFN0MsT0FBTyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUVsQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxDQUFhLEVBQUUsRUFBRSxDQUN0QyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFMUc7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQztLQUN2QixPQUFPLENBQUMsQ0FBQyxDQUFVLEVBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUM7S0FDM0MsSUFBSSxDQUNILENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxTQUFTLENBQW1CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDcEgsQ0FBQTtBQTJCSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FHM0IsR0FBc0IsRUFBRSxhQUE2QixF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../src/http/Request.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../src/http/Request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAkC,MAAM,mBAAmB,CAAA;AAE/F,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,QAAQ,GAAG,eAAe,CAAC;IAC3G,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CACjB;AAKD,eAAO,MAAM,oBAAoB,GAC/B,UAAU,kBAAkB,qFAOzB,CAAA;AAEL,eAAO,MAAM,UAAU,GAAI,QAAQ,UAAU,CAAC,UAAU,qGAmBlD,CAAA"}
|
package/dist/http/Request.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Option } from "effect";
|
|
1
2
|
import * as Effect from "../Effect.js";
|
|
2
3
|
import { HttpClient, HttpClientError, HttpClientRequest, HttpHeaders } from "./internal/lib.js";
|
|
3
4
|
// TODO: consider rebuilding the text/json helpers to use a cached effect
|
|
@@ -10,14 +11,13 @@ export const responseWithJsonBody = (response) => Effect.map(response.json, (bod
|
|
|
10
11
|
}));
|
|
11
12
|
export const demandJson = (client) => HttpClient
|
|
12
13
|
.mapRequest(client, (_) => HttpClientRequest.acceptJson(_))
|
|
13
|
-
.pipe(HttpClient.transform((r, request) => Effect.tap(r, (response) =>
|
|
14
|
-
.get(response.headers, "Content-Type")
|
|
15
|
-
?.startsWith("application/json")
|
|
14
|
+
.pipe(HttpClient.transform((r, request) => Effect.tap(r, (response) => Option
|
|
15
|
+
.exists(HttpHeaders.get(response.headers, "Content-Type"), (_) => _.startsWith("application/json"))
|
|
16
16
|
? Effect.void
|
|
17
17
|
: Effect.fail(new HttpClientError.DecodeError({
|
|
18
18
|
request,
|
|
19
19
|
response,
|
|
20
20
|
description: "not json response: "
|
|
21
|
-
+ HttpHeaders.get(response.headers, "Content-Type")
|
|
21
|
+
+ Option.getOrElse(HttpHeaders.get(response.headers, "Content-Type"), () => "<missing>")
|
|
22
22
|
})))));
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odHRwL1JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUUvQixPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQU0vRix5RUFBeUU7QUFDekUsMEZBQTBGO0FBRTFGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLFFBQTRCLEVBQzVCLEVBQUUsQ0FDRixNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQTZCLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUk7SUFDSixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87SUFDekIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYTtDQUN0QyxDQUFDLENBQUMsQ0FBQTtBQUVMLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQTZCLEVBQUUsRUFBRSxDQUMxRCxVQUFVO0tBQ1AsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDekIsTUFBTTtLQUNELE1BQU0sQ0FDTCxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLEVBQ2pELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQ3hDO0lBQ0gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lBQ2IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ1gsSUFBSSxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQzlCLE9BQU87UUFDUCxRQUFRO1FBQ1IsV0FBVyxFQUFFLHFCQUFxQjtjQUM5QixNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDM0YsQ0FBQyxDQUNILENBQUMsQ0FDUCxDQUFDLENBQUEifQ==
|
package/dist/ids.d.ts
CHANGED
|
@@ -8,10 +8,10 @@ export interface RequestIdBrand extends StringIdBrand {
|
|
|
8
8
|
export type RequestId = NonEmptyString255;
|
|
9
9
|
export declare const RequestId: S.WithDefaults<Codec<NonEmptyString255, string, never, never> & {
|
|
10
10
|
make: () => NonEmptyString255;
|
|
11
|
-
withDefault: S.withConstructorDefault<
|
|
11
|
+
withDefault: S.withConstructorDefault<S.Top & S.WithoutConstructorDefault>;
|
|
12
12
|
}> & Codec<NonEmptyString255, string, never, never> & {
|
|
13
13
|
make: () => NonEmptyString255;
|
|
14
|
-
withDefault: S.withConstructorDefault<
|
|
14
|
+
withDefault: S.withConstructorDefault<S.Top & S.WithoutConstructorDefault>;
|
|
15
15
|
};
|
|
16
16
|
export interface UserProfileIdBrand extends Simplify<B.Brand<"UserProfileId"> & StringIdBrand> {
|
|
17
17
|
}
|
package/dist/ids.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAmB,MAAM,mBAAmB,CAAA;AACjI,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAG9B,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,MAAM,CAAA;CAClC;AAED,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAA;AAEzC,eAAO,MAAM,SAAS;gBAIkB,iBAAiB;;;gBAAjB,iBAAiB;;CAOjC,CAAA;AAExB,MAAM,WAAW,kBAAmB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;CAAG;AACjG,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,kBAAkB,CAAA;AACzD,eAAO,MAAM,aAAa;;;;;;4FAAmC,CAAA"}
|
package/dist/ids.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
1
2
|
import { brandedStringId, NonEmptyString255, StringId, withDefaultMake } from "effect-app/Schema";
|
|
2
3
|
import { S } from "./index.js";
|
|
3
4
|
import { extendM } from "./utils.js";
|
|
@@ -7,9 +8,9 @@ export const RequestId = extendM(Object
|
|
|
7
8
|
const make = StringId.make;
|
|
8
9
|
return ({
|
|
9
10
|
make,
|
|
10
|
-
withDefault:
|
|
11
|
+
withDefault: S.withConstructorDefault(Effect.sync(make))(s)
|
|
11
12
|
});
|
|
12
13
|
})
|
|
13
14
|
.pipe(withDefaultMake);
|
|
14
15
|
export const UserProfileId = brandedStringId();
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2lkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQWMsaUJBQWlCLEVBQUUsUUFBUSxFQUFzQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUdqSSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFPcEMsdUZBQXVGO0FBQ3ZGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQzlCLE1BQU07S0FDSCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBTyxFQUFFLGlCQUFnRSxDQUFDLEVBQ25ILENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDSixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBK0IsQ0FBQTtJQUNyRCxPQUFPLENBQUM7UUFDTixJQUFJO1FBQ0osV0FBVyxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBMkMsQ0FBQztLQUN0RyxDQUFDLENBQUE7QUFDSixDQUFDLENBQ0Y7S0FDRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7QUFJeEIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGVBQWUsRUFBaUIsQ0FBQSJ9
|
package/dist/index.d.ts
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import "./builtin.js";
|
|
2
|
-
import * as ServiceMap from "./ServiceMap.js";
|
|
3
2
|
export * as Fnc from "./Function.js";
|
|
4
3
|
export * as Utils from "./utils.js";
|
|
5
4
|
export * as Array from "./Array.js";
|
|
5
|
+
export * as Config from "./Config.js";
|
|
6
|
+
export * as ConfigProvider from "./ConfigProvider.js";
|
|
7
|
+
export * as Context from "./Context.js";
|
|
6
8
|
export * as Effect from "./Effect.js";
|
|
7
9
|
export * as Layer from "./Layer.js";
|
|
8
10
|
export * as NonEmptySet from "./NonEmptySet.js";
|
|
9
|
-
export * as ServiceMap from "./ServiceMap.js";
|
|
10
11
|
export * as Set from "./Set.js";
|
|
11
|
-
export {
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated use ServiceMap directly instead
|
|
14
|
-
*/
|
|
15
|
-
ServiceMap as Context };
|
|
16
12
|
export { type NonEmptyArray, type NonEmptyReadonlyArray } from "./Array.js";
|
|
17
13
|
export * from "effect";
|
|
18
14
|
export type * as Types from "./Types.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAE3E,cAAc,QAAQ,CAAA;AAEtB,YAAY,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,CAAC,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import "./builtin.js";
|
|
2
|
-
import * as ServiceMap from "./ServiceMap.js";
|
|
3
2
|
export * as Fnc from "./Function.js";
|
|
4
3
|
export * as Utils from "./utils.js";
|
|
5
4
|
export * as Array from "./Array.js";
|
|
5
|
+
export * as Config from "./Config.js";
|
|
6
|
+
export * as ConfigProvider from "./ConfigProvider.js";
|
|
7
|
+
export * as Context from "./Context.js";
|
|
6
8
|
export * as Effect from "./Effect.js";
|
|
7
9
|
export * as Layer from "./Layer.js";
|
|
8
10
|
export * as NonEmptySet from "./NonEmptySet.js";
|
|
9
|
-
export * as ServiceMap from "./ServiceMap.js";
|
|
10
11
|
export * as Set from "./Set.js";
|
|
11
|
-
export {
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated use ServiceMap directly instead
|
|
14
|
-
*/
|
|
15
|
-
ServiceMap as Context };
|
|
16
12
|
export * from "effect";
|
|
17
13
|
export * as SecretURL from "./Config/SecretURL.js";
|
|
18
14
|
export * as S from "./Schema.js";
|
|
19
15
|
export { copy } from "./utils.js";
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxjQUFjLENBQUE7QUFFckIsT0FBTyxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUE7QUFDcEMsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUE7QUFFbkMsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDckMsT0FBTyxLQUFLLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEtBQUssV0FBVyxNQUFNLGtCQUFrQixDQUFBO0FBQy9DLE9BQU8sS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFBO0FBSS9CLGNBQWMsUUFBUSxDQUFBO0FBSXRCLE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUE7QUFDbEQsT0FBTyxLQUFLLENBQUMsTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQSJ9
|
package/dist/middleware.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Context } from "effect-app";
|
|
2
2
|
import { RpcX } from "./rpc.js";
|
|
3
|
-
declare const DevMode_base:
|
|
3
|
+
declare const DevMode_base: Context.Reference<boolean>;
|
|
4
4
|
export declare class DevMode extends DevMode_base {
|
|
5
5
|
}
|
|
6
6
|
declare const RequestCacheMiddleware_base: RpcX.RpcMiddleware.TagClass<RequestCacheMiddleware, "RequestCacheMiddleware", {}, {
|
package/dist/middleware.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;;AAE/B,qBAAa,OAAQ,SAAQ,YAA2D;CAAG;;;;;AAE3F,qBAAa,sBACX,SAAQ,2BAA0E;CAClF;;;;;AAEF,qBAAa,mCACX,SAAQ,wCAAoG;CAC5G;;;;;AAEF,qBAAa,gBAAiB,SAAQ,qBAA8D;CAAG;;;;;AAEvG,qBAAa,iBAAkB,SAAQ,sBAAgE;CAAG;AAE1G,eAAO,MAAM,yBAAyB,yIAK5B,CAAA"}
|
package/dist/middleware.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import {
|
|
2
|
+
import { Context } from "effect-app";
|
|
3
3
|
import { RpcX } from "./rpc.js";
|
|
4
|
-
export class DevMode extends
|
|
4
|
+
export class DevMode extends Context.Reference("DevMode", { defaultValue: () => false }) {
|
|
5
5
|
}
|
|
6
6
|
export class RequestCacheMiddleware extends RpcX.RpcMiddleware.Tag()("RequestCacheMiddleware") {
|
|
7
7
|
}
|
|
@@ -17,4 +17,4 @@ export const DefaultGenericMiddlewares = [
|
|
|
17
17
|
LoggerMiddleware,
|
|
18
18
|
DevModeMiddleware
|
|
19
19
|
];
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFL0IsTUFBTSxPQUFPLE9BQVEsU0FBUSxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztDQUFHO0FBRTNGLE1BQU0sT0FBTyxzQkFDWCxTQUFRLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUEwQixDQUFDLHdCQUF3QixDQUFDO0NBQ2xGO0FBRUYsTUFBTSxPQUFPLG1DQUNYLFNBQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQXVDLENBQUMscUNBQXFDLENBQUM7Q0FDNUc7QUFFRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQW9CLENBQUMsa0JBQWtCLENBQUM7Q0FBRztBQUV2RyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQXFCLENBQUMsbUJBQW1CLENBQUM7Q0FBRztBQUUxRyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxzQkFBc0I7SUFDdEIsbUNBQW1DO0lBQ25DLGdCQUFnQjtJQUNoQixpQkFBaUI7Q0FDVCxDQUFBIn0=
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Effect, Layer, type Schema, Schema as S, type Scope
|
|
1
|
+
import { Effect, Layer, type Schema, Schema as S, type Scope } from "effect";
|
|
2
2
|
import { type NonEmptyArray, type NonEmptyReadonlyArray } from "effect/Array";
|
|
3
3
|
import { type Simplify } from "effect/Types";
|
|
4
4
|
import { Rpc, type RpcGroup, type RpcSchema } from "effect/unstable/rpc";
|
|
5
5
|
import { type HandlersFrom } from "effect/unstable/rpc/RpcGroup";
|
|
6
|
+
import * as Context from "../Context.js";
|
|
6
7
|
import { type TypeTestId } from "../TypeTest.js";
|
|
7
8
|
import { type GetContextConfig, type RequestContextMapTagAny, type RpcContextMap } from "./RpcContextMap.js";
|
|
8
9
|
import { type AddMiddleware, type AnyDynamic, type RpcDynamic, type TagClassAny } from "./RpcMiddleware.js";
|
|
@@ -18,11 +19,11 @@ export interface MiddlewareMaker<Self, Id extends string, RequestContextMap exte
|
|
|
18
19
|
provides: MiddlewareMaker.ManyProvided<MiddlewareProviders> extends never ? never : MakeTags<MiddlewareMaker.ManyProvided<MiddlewareProviders>>;
|
|
19
20
|
requires: Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>> extends never ? never : MakeTags<Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>>>;
|
|
20
21
|
}> {
|
|
21
|
-
readonly layer: Layer.Layer<Self, never,
|
|
22
|
+
readonly layer: Layer.Layer<Self, never, Context.Service.Identifier<MiddlewareProviders[number]>>;
|
|
22
23
|
readonly requestContext: RequestContextTag<RequestContextMap>;
|
|
23
24
|
readonly requestContextMap: RequestContextMap;
|
|
24
25
|
}
|
|
25
|
-
export interface RequestContextTag<RequestContextMap extends Record<string, RpcContextMap.Any>> extends
|
|
26
|
+
export interface RequestContextTag<RequestContextMap extends Record<string, RpcContextMap.Any>> extends Context.Service<"RequestContextConfig", GetContextConfig<RequestContextMap>> {
|
|
26
27
|
}
|
|
27
28
|
export declare namespace MiddlewareMaker {
|
|
28
29
|
type Any = TagClassAny;
|