effect-app 4.0.0-beta.2 → 4.0.0-beta.200
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 +960 -0
- package/dist/Array.d.ts +1 -1
- package/dist/Chunk.d.ts +1 -1
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Config/SecretURL.d.ts +1 -1
- package/dist/Config/SecretURL.d.ts.map +1 -1
- package/dist/Config/SecretURL.js +2 -2
- package/dist/Config/internal/configSecretURL.d.ts +1 -1
- package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
- 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/Context.d.ts +40 -0
- package/dist/Context.d.ts.map +1 -0
- package/dist/Context.js +67 -0
- package/dist/Effect.d.ts +9 -10
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +3 -6
- package/dist/Function.d.ts +1 -1
- package/dist/Function.d.ts.map +1 -1
- package/dist/Inputify.type.d.ts +1 -1
- package/dist/Layer.d.ts +7 -6
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +1 -1
- package/dist/NonEmptySet.d.ts +1 -1
- package/dist/NonEmptySet.d.ts.map +1 -1
- package/dist/Option.d.ts +1 -1
- package/dist/Option.d.ts.map +1 -1
- package/dist/Pure.d.ts +5 -5
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +13 -13
- package/dist/Schema/Class.d.ts +66 -20
- package/dist/Schema/Class.d.ts.map +1 -1
- package/dist/Schema/Class.js +189 -22
- package/dist/Schema/FastCheck.d.ts +1 -1
- package/dist/Schema/FastCheck.d.ts.map +1 -1
- package/dist/Schema/Methods.d.ts +1 -1
- package/dist/Schema/SchemaParser.d.ts +5 -0
- package/dist/Schema/SchemaParser.d.ts.map +1 -0
- package/dist/Schema/SchemaParser.js +6 -0
- 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 +14 -6
- package/dist/Schema/brand.d.ts.map +1 -1
- package/dist/Schema/brand.js +1 -1
- package/dist/Schema/email.d.ts +1 -1
- package/dist/Schema/email.d.ts.map +1 -1
- package/dist/Schema/email.js +9 -5
- package/dist/Schema/ext.d.ts +121 -48
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +134 -52
- package/dist/Schema/moreStrings.d.ts +117 -17
- package/dist/Schema/moreStrings.d.ts.map +1 -1
- package/dist/Schema/moreStrings.js +19 -18
- package/dist/Schema/numbers.d.ts +127 -15
- package/dist/Schema/numbers.d.ts.map +1 -1
- package/dist/Schema/numbers.js +10 -12
- package/dist/Schema/phoneNumber.d.ts +1 -1
- package/dist/Schema/phoneNumber.d.ts.map +1 -1
- package/dist/Schema/phoneNumber.js +8 -4
- package/dist/Schema/schema.d.ts +1 -1
- package/dist/Schema/strings.d.ts +37 -5
- package/dist/Schema/strings.d.ts.map +1 -1
- package/dist/Schema/strings.js +1 -5
- package/dist/Schema.d.ts +159 -58
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +136 -68
- package/dist/Set.d.ts +1 -1
- package/dist/Set.d.ts.map +1 -1
- package/dist/TypeTest.d.ts +1 -1
- package/dist/Types.d.ts +1 -1
- package/dist/Widen.type.d.ts +1 -1
- package/dist/_ext/Array.d.ts +1 -1
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/date.d.ts +1 -1
- package/dist/_ext/misc.d.ts +1 -1
- package/dist/_ext/ord.ext.d.ts +1 -1
- package/dist/_ext/ord.ext.d.ts.map +1 -1
- package/dist/builtin.d.ts +1 -1
- package/dist/builtin.d.ts.map +1 -1
- package/dist/client/InvalidationKeys.d.ts +29 -0
- package/dist/client/InvalidationKeys.d.ts.map +1 -0
- package/dist/client/InvalidationKeys.js +33 -0
- package/dist/client/apiClientFactory.d.ts +18 -32
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/apiClientFactory.js +98 -36
- package/dist/client/clientFor.d.ts +51 -17
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/clientFor.js +9 -1
- package/dist/client/errors.d.ts +49 -25
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +43 -17
- package/dist/client/makeClient.d.ts +468 -32
- package/dist/client/makeClient.d.ts.map +1 -1
- package/dist/client/makeClient.js +61 -34
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -1
- package/dist/faker.d.ts +1 -1
- package/dist/faker.d.ts.map +1 -1
- package/dist/http/Request.d.ts +2 -2
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +5 -5
- package/dist/http/internal/lib.d.ts +1 -1
- package/dist/http.d.ts +1 -1
- package/dist/ids.d.ts +9 -9
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +3 -2
- package/dist/index.d.ts +5 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -9
- package/dist/logger.d.ts +1 -1
- package/dist/middleware.d.ts +16 -9
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +13 -9
- package/dist/rpc/Invalidation.d.ts +397 -0
- package/dist/rpc/Invalidation.d.ts.map +1 -0
- package/dist/rpc/Invalidation.js +150 -0
- package/dist/rpc/MiddlewareMaker.d.ts +6 -5
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
- package/dist/rpc/MiddlewareMaker.js +51 -28
- package/dist/rpc/RpcContextMap.d.ts +3 -3
- package/dist/rpc/RpcContextMap.d.ts.map +1 -1
- package/dist/rpc/RpcContextMap.js +4 -4
- package/dist/rpc/RpcMiddleware.d.ts +6 -5
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +1 -1
- package/dist/rpc.d.ts +2 -2
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +2 -2
- package/dist/transform.d.ts +1 -1
- package/dist/transform.d.ts.map +1 -1
- package/dist/transform.js +3 -3
- package/dist/utils/effectify.d.ts +1 -1
- package/dist/utils/extend.d.ts +1 -1
- package/dist/utils/extend.d.ts.map +1 -1
- package/dist/utils/gen.d.ts +2 -2
- package/dist/utils/gen.d.ts.map +1 -1
- package/dist/utils/logLevel.d.ts +2 -2
- package/dist/utils/logLevel.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +3 -3
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -3
- package/dist/utils.d.ts +48 -10
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +33 -8
- package/dist/validation/validators.d.ts +1 -1
- package/dist/validation/validators.d.ts.map +1 -1
- package/dist/validation.d.ts +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/package.json +46 -28
- package/src/Config/SecretURL.ts +2 -1
- package/src/Config.ts +14 -0
- package/src/ConfigProvider.ts +48 -0
- package/src/{ServiceMap.ts → Context.ts} +58 -64
- package/src/Effect.ts +12 -14
- package/src/Layer.ts +6 -5
- package/src/Pure.ts +17 -18
- package/src/Schema/Class.ts +268 -62
- package/src/Schema/SchemaParser.ts +12 -0
- package/src/Schema/SpecialJsonSchema.ts +137 -0
- package/src/Schema/SpecialOpenApi.ts +130 -0
- package/src/Schema/brand.ts +21 -7
- package/src/Schema/email.ts +10 -3
- package/src/Schema/ext.ts +226 -86
- package/src/Schema/moreStrings.ts +37 -32
- package/src/Schema/numbers.ts +14 -16
- package/src/Schema/phoneNumber.ts +8 -2
- package/src/Schema/strings.ts +4 -8
- package/src/Schema.ts +350 -107
- package/src/client/InvalidationKeys.ts +50 -0
- package/src/client/apiClientFactory.ts +227 -136
- package/src/client/clientFor.ts +86 -29
- package/src/client/errors.ts +61 -26
- package/src/client/makeClient.ts +530 -80
- package/src/client.ts +1 -0
- package/src/http/Request.ts +7 -4
- package/src/ids.ts +3 -2
- package/src/index.ts +5 -11
- package/src/middleware.ts +12 -10
- package/src/rpc/Invalidation.ts +221 -0
- package/src/rpc/MiddlewareMaker.ts +61 -51
- package/src/rpc/README.md +2 -2
- package/src/rpc/RpcContextMap.ts +6 -5
- package/src/rpc/RpcMiddleware.ts +6 -5
- package/src/rpc.ts +1 -1
- package/src/transform.ts +2 -2
- package/src/utils/gen.ts +1 -1
- package/src/utils/logger.ts +2 -2
- package/src/utils.ts +73 -15
- 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 +38 -6
- package/test/schema.test.ts +609 -4
- package/test/secretURL.test.ts +157 -0
- package/test/special.test.ts +1023 -0
- package/test/utils.test.ts +6 -6
- package/tsconfig.base.json +3 -4
- package/tsconfig.json +0 -1
- package/tsconfig.json.bak +2 -2
- package/tsconfig.src.json +29 -29
- package/tsconfig.test.json +2 -2
- package/dist/Operations.d.ts +0 -87
- package/dist/Operations.d.ts.map +0 -1
- package/dist/Operations.js +0 -29
- package/dist/ServiceMap.d.ts +0 -44
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js +0 -91
- package/dist/Struct.d.ts +0 -44
- package/dist/Struct.d.ts.map +0 -1
- package/dist/Struct.js +0 -29
- package/eslint.config.mjs +0 -26
- package/src/Operations.ts +0 -55
- package/src/Struct.ts +0 -54
package/src/client/errors.ts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
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
|
|
|
6
|
-
export const tryToJson = (error:
|
|
6
|
+
export const tryToJson = (error: unknown) => {
|
|
7
7
|
try {
|
|
8
|
-
|
|
8
|
+
const errorJson = (error as any).toJSON()
|
|
9
|
+
return errorJson && typeof errorJson === "object" ? errorJson as Record<string, unknown> : { error }
|
|
9
10
|
} catch {
|
|
10
11
|
try {
|
|
11
|
-
return error.toString()
|
|
12
|
+
return { error: (error as any).toString() }
|
|
12
13
|
} catch (err) {
|
|
13
14
|
try {
|
|
14
|
-
return `Failed to convert error: ${err}`
|
|
15
|
+
return { error: `Failed to convert error: ${err}` }
|
|
15
16
|
} catch {
|
|
16
|
-
return `Failed to convert error: unknown failure`
|
|
17
|
+
return { error: `Failed to convert error: unknown failure` }
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
}
|
|
@@ -21,7 +22,7 @@ export const tryToJson = (error: { toJSON(): unknown; toString(): string }) => {
|
|
|
21
22
|
|
|
22
23
|
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
23
24
|
// @ts-expect-error type not used
|
|
24
|
-
export class NotFoundError<ItemType = string> extends
|
|
25
|
+
export class NotFoundError<ItemType = string> extends TaggedErrorClass<NotFoundError<ItemType>>()("NotFoundError", {
|
|
25
26
|
type: S.String,
|
|
26
27
|
id: S.Unknown
|
|
27
28
|
}) {
|
|
@@ -29,70 +30,97 @@ export class NotFoundError<ItemType = string> extends TaggedError<NotFoundError<
|
|
|
29
30
|
props: { type: string; id: unknown; cause?: unknown },
|
|
30
31
|
disableValidation?: boolean
|
|
31
32
|
) {
|
|
32
|
-
super(props
|
|
33
|
+
super(props, disableValidation as any)
|
|
33
34
|
}
|
|
34
35
|
override get message() {
|
|
35
36
|
return `Didn't find ${(this as any).type}#${JSON.stringify((this as any).id)}`
|
|
36
37
|
}
|
|
38
|
+
override toString() {
|
|
39
|
+
return `NotFoundError: ${this.message}`
|
|
40
|
+
}
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
const messageFallback = (messageOrObject?: string | { message: string }) =>
|
|
40
44
|
typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject ?? "" }
|
|
41
45
|
|
|
42
|
-
export class InvalidStateError extends
|
|
46
|
+
export class InvalidStateError extends TaggedErrorClass<InvalidStateError>()("InvalidStateError", {
|
|
43
47
|
message: S.String
|
|
44
48
|
}) {
|
|
45
49
|
constructor(messageOrObject: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
|
|
46
|
-
super(
|
|
50
|
+
super(
|
|
51
|
+
typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject },
|
|
52
|
+
disableValidation as any
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
override toString() {
|
|
56
|
+
return `InvalidStateError: ${this.message}`
|
|
47
57
|
}
|
|
48
58
|
}
|
|
49
59
|
|
|
50
|
-
export class ServiceUnavailableError extends
|
|
60
|
+
export class ServiceUnavailableError extends TaggedErrorClass<ServiceUnavailableError>()("ServiceUnavailableError", {
|
|
51
61
|
message: S.String
|
|
52
62
|
}) {
|
|
53
63
|
constructor(messageOrObject: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
|
|
54
|
-
super(
|
|
64
|
+
super(
|
|
65
|
+
typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject },
|
|
66
|
+
disableValidation as any
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
override toString() {
|
|
70
|
+
return `ServiceUnavailableError: ${this.message}`
|
|
55
71
|
}
|
|
56
72
|
}
|
|
57
73
|
|
|
58
|
-
export class ValidationError extends
|
|
74
|
+
export class ValidationError extends TaggedErrorClass<ValidationError>()("ValidationError", {
|
|
59
75
|
errors: S.Array(S.Unknown)
|
|
60
76
|
}) {
|
|
61
77
|
constructor(
|
|
62
78
|
props: { errors: ReadonlyArray<unknown>; cause?: unknown },
|
|
63
79
|
disableValidation?: boolean
|
|
64
80
|
) {
|
|
65
|
-
super(props
|
|
81
|
+
super(props, disableValidation as any)
|
|
66
82
|
}
|
|
67
83
|
override get message() {
|
|
68
84
|
return `Validation failed: ${(this as any).errors.map((e: any) => JSON.stringify(e, undefined, 2)).join(",\n")}`
|
|
69
85
|
}
|
|
86
|
+
override toString() {
|
|
87
|
+
return `ValidationError: ${this.message}`
|
|
88
|
+
}
|
|
70
89
|
}
|
|
71
90
|
|
|
72
|
-
export class NotLoggedInError extends
|
|
91
|
+
export class NotLoggedInError extends TaggedErrorClass<NotLoggedInError>()("NotLoggedInError", {
|
|
73
92
|
message: S.String
|
|
74
93
|
}) {
|
|
75
94
|
constructor(messageOrObject?: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
|
|
76
|
-
super(messageFallback(messageOrObject)
|
|
95
|
+
super(messageFallback(messageOrObject), disableValidation as any)
|
|
96
|
+
}
|
|
97
|
+
override toString() {
|
|
98
|
+
return `NotLoggedInError: ${this.message}`
|
|
77
99
|
}
|
|
78
100
|
}
|
|
79
101
|
|
|
80
102
|
/**
|
|
81
103
|
* The user carries a valid Userprofile, but there is a problem with the login none the less.
|
|
82
104
|
*/
|
|
83
|
-
export class LoginError extends
|
|
105
|
+
export class LoginError extends TaggedErrorClass<LoginError>()("NotLoggedInError", {
|
|
84
106
|
message: S.String
|
|
85
107
|
}) {
|
|
86
108
|
constructor(messageOrObject?: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
|
|
87
|
-
super(messageFallback(messageOrObject)
|
|
109
|
+
super(messageFallback(messageOrObject), disableValidation as any)
|
|
110
|
+
}
|
|
111
|
+
override toString() {
|
|
112
|
+
return `LoginError: ${this.message}`
|
|
88
113
|
}
|
|
89
114
|
}
|
|
90
115
|
|
|
91
|
-
export class UnauthorizedError extends
|
|
116
|
+
export class UnauthorizedError extends TaggedErrorClass<UnauthorizedError>()("UnauthorizedError", {
|
|
92
117
|
message: S.String
|
|
93
118
|
}) {
|
|
94
119
|
constructor(messageOrObject?: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
|
|
95
|
-
super(messageFallback(messageOrObject)
|
|
120
|
+
super(messageFallback(messageOrObject), disableValidation as any)
|
|
121
|
+
}
|
|
122
|
+
override toString() {
|
|
123
|
+
return `UnauthorizedError: ${this.message}`
|
|
96
124
|
}
|
|
97
125
|
}
|
|
98
126
|
|
|
@@ -104,7 +132,7 @@ type OptimisticConcurrencyDetails = {
|
|
|
104
132
|
readonly found?: string | undefined
|
|
105
133
|
}
|
|
106
134
|
|
|
107
|
-
export class OptimisticConcurrencyException extends
|
|
135
|
+
export class OptimisticConcurrencyException extends TaggedErrorClass<OptimisticConcurrencyException>()(
|
|
108
136
|
"OptimisticConcurrencyException",
|
|
109
137
|
{ message: S.String }
|
|
110
138
|
) {
|
|
@@ -116,11 +144,17 @@ export class OptimisticConcurrencyException extends TaggedError<OptimisticConcur
|
|
|
116
144
|
| ({ message: string; cause?: unknown; raw?: unknown }),
|
|
117
145
|
disableValidation?: boolean
|
|
118
146
|
) {
|
|
119
|
-
super(
|
|
147
|
+
super(
|
|
148
|
+
"message" in args ? args : { message: `Existing ${args.type} ${args.id} record changed` },
|
|
149
|
+
disableValidation as any
|
|
150
|
+
)
|
|
120
151
|
if (!("message" in args)) {
|
|
121
152
|
this.details = args
|
|
122
153
|
}
|
|
123
154
|
}
|
|
155
|
+
override toString() {
|
|
156
|
+
return `OptimisticConcurrencyException: ${this.message}`
|
|
157
|
+
}
|
|
124
158
|
}
|
|
125
159
|
|
|
126
160
|
const MutationOnlyErrors = [
|
|
@@ -174,6 +208,7 @@ export class CauseException<E> extends Error {
|
|
|
174
208
|
Error.stackTraceLimit = 0
|
|
175
209
|
super()
|
|
176
210
|
Error.stackTraceLimit = limit
|
|
211
|
+
this.cause = Cause.squash(originalCause)
|
|
177
212
|
// v4: makeFiberFailure removed — use Cause.prettyErrors instead
|
|
178
213
|
const errors = Cause.prettyErrors(originalCause)
|
|
179
214
|
const first = errors[0]
|
|
@@ -213,17 +248,17 @@ export class CauseException<E> extends Error {
|
|
|
213
248
|
}
|
|
214
249
|
}
|
|
215
250
|
|
|
216
|
-
export const tryToReport = (error: { toReport(): unknown
|
|
251
|
+
export const tryToReport = (error: { toReport(): Record<string, unknown>; toString(): string }) => {
|
|
217
252
|
try {
|
|
218
253
|
return error.toReport()
|
|
219
254
|
} catch {
|
|
220
255
|
try {
|
|
221
|
-
return error.toString()
|
|
256
|
+
return { error: error.toString() }
|
|
222
257
|
} catch (err) {
|
|
223
258
|
try {
|
|
224
|
-
return `Failed to convert error: ${err}`
|
|
259
|
+
return { error: `Failed to convert error: ${err}` }
|
|
225
260
|
} catch {
|
|
226
|
-
return `Failed to convert error: unknown failure`
|
|
261
|
+
return { error: `Failed to convert error: unknown failure` }
|
|
227
262
|
}
|
|
228
263
|
}
|
|
229
264
|
}
|