@effect/platform 0.93.3 → 0.93.4
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.
|
@@ -24,17 +24,14 @@ const clientAbortFiberId = exports.clientAbortFiberId = /*#__PURE__*/(0, _Global
|
|
|
24
24
|
const causeResponse = cause => {
|
|
25
25
|
const [effect, stripped] = Cause.reduce(cause, [Effect.succeed(internalServerError), Cause.empty], (acc, cause) => {
|
|
26
26
|
switch (cause._tag) {
|
|
27
|
-
case "Empty":
|
|
28
|
-
{
|
|
29
|
-
return Option.some(acc);
|
|
30
|
-
}
|
|
31
27
|
case "Fail":
|
|
32
28
|
{
|
|
33
|
-
return Option.some([Respondable.toResponseOrElse(cause.error, internalServerError), cause]);
|
|
29
|
+
return Option.some([Respondable.toResponseOrElse(cause.error, internalServerError), combineCauses(acc[1], cause)]);
|
|
34
30
|
}
|
|
35
31
|
case "Die":
|
|
36
32
|
{
|
|
37
|
-
|
|
33
|
+
const isResponse = internalServerResponse.isServerResponse(cause.defect);
|
|
34
|
+
return Option.some([Respondable.toResponseOrElseDefect(cause.defect, internalServerError), isResponse ? acc[1] : combineCauses(acc[1], cause)]);
|
|
38
35
|
}
|
|
39
36
|
case "Interrupt":
|
|
40
37
|
{
|
|
@@ -57,8 +54,16 @@ const causeResponse = cause => {
|
|
|
57
54
|
return [response, Cause.sequential(stripped, Cause.die(response))];
|
|
58
55
|
});
|
|
59
56
|
};
|
|
60
|
-
/** @internal */
|
|
61
57
|
exports.causeResponse = causeResponse;
|
|
58
|
+
const combineCauses = (left, right) => {
|
|
59
|
+
if (Cause.isEmptyType(left)) {
|
|
60
|
+
return right;
|
|
61
|
+
} else if (Cause.isEmptyType(right)) {
|
|
62
|
+
return left;
|
|
63
|
+
}
|
|
64
|
+
return Cause.sequential(left, right);
|
|
65
|
+
};
|
|
66
|
+
/** @internal */
|
|
62
67
|
const causeResponseStripped = cause => {
|
|
63
68
|
let response;
|
|
64
69
|
const stripped = Cause.stripSomeDefects(cause, defect => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpServerError.js","names":["Cause","_interopRequireWildcard","require","Effect","FiberId","_GlobalValue","Option","Predicate","Respondable","internalServerResponse","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","exports","Symbol","for","isServerError","u","hasProperty","clientAbortFiberId","globalValue","runtime","causeResponse","cause","effect","stripped","reduce","succeed","internalServerError","empty","acc","_tag","some","toResponseOrElse","error","
|
|
1
|
+
{"version":3,"file":"httpServerError.js","names":["Cause","_interopRequireWildcard","require","Effect","FiberId","_GlobalValue","Option","Predicate","Respondable","internalServerResponse","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","exports","Symbol","for","isServerError","u","hasProperty","clientAbortFiberId","globalValue","runtime","causeResponse","cause","effect","stripped","reduce","succeed","internalServerError","empty","acc","_tag","some","toResponseOrElse","error","combineCauses","isResponse","isServerResponse","defect","toResponseOrElseDefect","none","response","fiberId","clientAbortError","serverAbortError","map","isEmptyType","die","sequential","left","right","causeResponseStripped","stripSomeDefects","status","exitResponse","exit","value"],"sources":["../../../src/internal/httpServerError.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -16,17 +16,14 @@ export const clientAbortFiberId = /*#__PURE__*/globalValue("@effect/platform/Htt
|
|
|
16
16
|
export const causeResponse = cause => {
|
|
17
17
|
const [effect, stripped] = Cause.reduce(cause, [Effect.succeed(internalServerError), Cause.empty], (acc, cause) => {
|
|
18
18
|
switch (cause._tag) {
|
|
19
|
-
case "Empty":
|
|
20
|
-
{
|
|
21
|
-
return Option.some(acc);
|
|
22
|
-
}
|
|
23
19
|
case "Fail":
|
|
24
20
|
{
|
|
25
|
-
return Option.some([Respondable.toResponseOrElse(cause.error, internalServerError), cause]);
|
|
21
|
+
return Option.some([Respondable.toResponseOrElse(cause.error, internalServerError), combineCauses(acc[1], cause)]);
|
|
26
22
|
}
|
|
27
23
|
case "Die":
|
|
28
24
|
{
|
|
29
|
-
|
|
25
|
+
const isResponse = internalServerResponse.isServerResponse(cause.defect);
|
|
26
|
+
return Option.some([Respondable.toResponseOrElseDefect(cause.defect, internalServerError), isResponse ? acc[1] : combineCauses(acc[1], cause)]);
|
|
30
27
|
}
|
|
31
28
|
case "Interrupt":
|
|
32
29
|
{
|
|
@@ -49,6 +46,14 @@ export const causeResponse = cause => {
|
|
|
49
46
|
return [response, Cause.sequential(stripped, Cause.die(response))];
|
|
50
47
|
});
|
|
51
48
|
};
|
|
49
|
+
const combineCauses = (left, right) => {
|
|
50
|
+
if (Cause.isEmptyType(left)) {
|
|
51
|
+
return right;
|
|
52
|
+
} else if (Cause.isEmptyType(right)) {
|
|
53
|
+
return left;
|
|
54
|
+
}
|
|
55
|
+
return Cause.sequential(left, right);
|
|
56
|
+
};
|
|
52
57
|
/** @internal */
|
|
53
58
|
export const causeResponseStripped = cause => {
|
|
54
59
|
let response;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpServerError.js","names":["Cause","Effect","FiberId","globalValue","Option","Predicate","Respondable","internalServerResponse","TypeId","Symbol","for","isServerError","u","hasProperty","clientAbortFiberId","runtime","causeResponse","cause","effect","stripped","reduce","succeed","internalServerError","empty","acc","_tag","some","toResponseOrElse","error","
|
|
1
|
+
{"version":3,"file":"httpServerError.js","names":["Cause","Effect","FiberId","globalValue","Option","Predicate","Respondable","internalServerResponse","TypeId","Symbol","for","isServerError","u","hasProperty","clientAbortFiberId","runtime","causeResponse","cause","effect","stripped","reduce","succeed","internalServerError","empty","acc","_tag","some","toResponseOrElse","error","combineCauses","isResponse","isServerResponse","defect","toResponseOrElseDefect","none","response","fiberId","clientAbortError","serverAbortError","map","isEmptyType","die","sequential","left","right","causeResponseStripped","stripSomeDefects","status","exitResponse","exit","value"],"sources":["../../../src/internal/httpServerError.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform",
|
|
3
|
-
"version": "0.93.
|
|
3
|
+
"version": "0.93.4",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"multipasta": "^0.2.7"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"effect": "^3.19.
|
|
19
|
+
"effect": "^3.19.6"
|
|
20
20
|
},
|
|
21
21
|
"publishConfig": {
|
|
22
22
|
"provenance": true
|
|
@@ -33,14 +33,19 @@ export const causeResponse = <E>(
|
|
|
33
33
|
[Effect.succeed(internalServerError), Cause.empty as Cause.Cause<E>] as const,
|
|
34
34
|
(acc, cause) => {
|
|
35
35
|
switch (cause._tag) {
|
|
36
|
-
case "Empty": {
|
|
37
|
-
return Option.some(acc)
|
|
38
|
-
}
|
|
39
36
|
case "Fail": {
|
|
40
|
-
return Option.some(
|
|
37
|
+
return Option.some(
|
|
38
|
+
[Respondable.toResponseOrElse(cause.error, internalServerError), combineCauses(acc[1], cause)] as const
|
|
39
|
+
)
|
|
41
40
|
}
|
|
42
41
|
case "Die": {
|
|
43
|
-
|
|
42
|
+
const isResponse = internalServerResponse.isServerResponse(cause.defect)
|
|
43
|
+
return Option.some(
|
|
44
|
+
[
|
|
45
|
+
Respondable.toResponseOrElseDefect(cause.defect, internalServerError),
|
|
46
|
+
isResponse ? acc[1] : combineCauses(acc[1], cause)
|
|
47
|
+
] as const
|
|
48
|
+
)
|
|
44
49
|
}
|
|
45
50
|
case "Interrupt": {
|
|
46
51
|
if (acc[1]._tag !== "Empty") {
|
|
@@ -63,6 +68,15 @@ export const causeResponse = <E>(
|
|
|
63
68
|
})
|
|
64
69
|
}
|
|
65
70
|
|
|
71
|
+
const combineCauses = <A = never, B = never>(left: Cause.Cause<A>, right: Cause.Cause<B>): Cause.Cause<A | B> => {
|
|
72
|
+
if (Cause.isEmptyType(left)) {
|
|
73
|
+
return right
|
|
74
|
+
} else if (Cause.isEmptyType(right)) {
|
|
75
|
+
return left
|
|
76
|
+
}
|
|
77
|
+
return Cause.sequential(left, right)
|
|
78
|
+
}
|
|
79
|
+
|
|
66
80
|
/** @internal */
|
|
67
81
|
export const causeResponseStripped = <E>(
|
|
68
82
|
cause: Cause.Cause<E>
|