effect-errors 1.3.12 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +10 -6
  2. package/cjs/capture-errors.js +74 -0
  3. package/cjs/capture-errors.js.map +1 -0
  4. package/cjs/index.js +61 -0
  5. package/cjs/index.js.map +1 -0
  6. package/cjs/logic/errors/capture-errors-from-cause.js +18 -0
  7. package/cjs/logic/errors/capture-errors-from-cause.js.map +1 -0
  8. package/cjs/logic/errors/extract-error-details.js +63 -0
  9. package/cjs/logic/errors/extract-error-details.js.map +1 -0
  10. package/cjs/logic/errors/parse-error.js +24 -0
  11. package/cjs/logic/errors/parse-error.js.map +1 -0
  12. package/cjs/logic/pretty-printing/format-failures-title.js +15 -0
  13. package/cjs/logic/pretty-printing/format-failures-title.js.map +1 -0
  14. package/cjs/logic/pretty-printing/format-span-attributes.js +55 -0
  15. package/cjs/logic/pretty-printing/format-span-attributes.js.map +1 -0
  16. package/cjs/logic/pretty-printing/maybe-print-node-stacktrace.js +24 -0
  17. package/cjs/logic/pretty-printing/maybe-print-node-stacktrace.js.map +1 -0
  18. package/cjs/logic/pretty-printing/maybe-print-span-attributes.js +31 -0
  19. package/cjs/logic/pretty-printing/maybe-print-span-attributes.js.map +1 -0
  20. package/cjs/logic/pretty-printing/maybe-warn-about-plain-strings.js +20 -0
  21. package/cjs/logic/pretty-printing/maybe-warn-about-plain-strings.js.map +1 -0
  22. package/cjs/logic/pretty-printing/print-effect-stacktrace.js +24 -0
  23. package/cjs/logic/pretty-printing/print-effect-stacktrace.js.map +1 -0
  24. package/cjs/logic/spans/get-span-attributes.js +33 -0
  25. package/cjs/logic/spans/get-span-attributes.js.map +1 -0
  26. package/cjs/logic/spans/get-span-duration.js +21 -0
  27. package/cjs/logic/spans/get-span-duration.js.map +1 -0
  28. package/cjs/logic/spans/spans-stack-trailing-char.js +15 -0
  29. package/cjs/logic/spans/spans-stack-trailing-char.js.map +1 -0
  30. package/cjs/logic/spans/split-spans-attributes-by-type.js +23 -0
  31. package/cjs/logic/spans/split-spans-attributes-by-type.js.map +1 -0
  32. package/cjs/logic/stack/filter-stack.js +21 -0
  33. package/cjs/logic/stack/filter-stack.js.map +1 -0
  34. package/cjs/logic/strip-cwd-path.js +10 -0
  35. package/cjs/logic/strip-cwd-path.js.map +1 -0
  36. package/cjs/pretty-print.js +43 -0
  37. package/cjs/pretty-print.js.map +1 -0
  38. package/cjs/runners/run-promise.js +18 -0
  39. package/cjs/runners/run-promise.js.map +1 -0
  40. package/cjs/runners/run-sync.js +18 -0
  41. package/cjs/runners/run-sync.js.map +1 -0
  42. package/cjs/types/pretty-error.type.js +22 -0
  43. package/cjs/types/pretty-error.type.js.map +1 -0
  44. package/cjs/types/pretty-print-options.type.js +12 -0
  45. package/cjs/types/pretty-print-options.type.js.map +1 -0
  46. package/{capture-errors.d.ts → dts/capture-errors.d.ts} +3 -1
  47. package/dts/capture-errors.d.ts.map +1 -0
  48. package/dts/index.d.ts +6 -0
  49. package/dts/index.d.ts.map +1 -0
  50. package/{logic → dts/logic}/errors/capture-errors-from-cause.d.ts +1 -0
  51. package/dts/logic/errors/capture-errors-from-cause.d.ts.map +1 -0
  52. package/{logic → dts/logic}/errors/extract-error-details.d.ts +1 -0
  53. package/dts/logic/errors/extract-error-details.d.ts.map +1 -0
  54. package/{logic → dts/logic}/errors/parse-error.d.ts +1 -0
  55. package/dts/logic/errors/parse-error.d.ts.map +1 -0
  56. package/dts/logic/pretty-printing/format-failures-title.d.ts +2 -0
  57. package/dts/logic/pretty-printing/format-failures-title.d.ts.map +1 -0
  58. package/dts/logic/pretty-printing/format-span-attributes.d.ts +7 -0
  59. package/dts/logic/pretty-printing/format-span-attributes.d.ts.map +1 -0
  60. package/dts/logic/pretty-printing/maybe-print-node-stacktrace.d.ts +4 -0
  61. package/dts/logic/pretty-printing/maybe-print-node-stacktrace.d.ts.map +1 -0
  62. package/dts/logic/pretty-printing/maybe-print-span-attributes.d.ts +4 -0
  63. package/dts/logic/pretty-printing/maybe-print-span-attributes.d.ts.map +1 -0
  64. package/dts/logic/pretty-printing/maybe-warn-about-plain-strings.d.ts +2 -0
  65. package/dts/logic/pretty-printing/maybe-warn-about-plain-strings.d.ts.map +1 -0
  66. package/dts/logic/pretty-printing/print-effect-stacktrace.d.ts +4 -0
  67. package/dts/logic/pretty-printing/print-effect-stacktrace.d.ts.map +1 -0
  68. package/dts/logic/spans/get-span-attributes.d.ts +5 -0
  69. package/dts/logic/spans/get-span-attributes.d.ts.map +1 -0
  70. package/{logic → dts/logic}/spans/get-span-duration.d.ts +1 -0
  71. package/dts/logic/spans/get-span-duration.d.ts.map +1 -0
  72. package/{logic → dts/logic}/spans/spans-stack-trailing-char.d.ts +1 -0
  73. package/dts/logic/spans/spans-stack-trailing-char.d.ts.map +1 -0
  74. package/dts/logic/spans/split-spans-attributes-by-type.d.ts +7 -0
  75. package/dts/logic/spans/split-spans-attributes-by-type.d.ts.map +1 -0
  76. package/{logic → dts/logic}/stack/filter-stack.d.ts +1 -0
  77. package/dts/logic/stack/filter-stack.d.ts.map +1 -0
  78. package/{logic → dts/logic}/strip-cwd-path.d.ts +1 -0
  79. package/dts/logic/strip-cwd-path.d.ts.map +1 -0
  80. package/dts/pretty-print.d.ts +4 -0
  81. package/dts/pretty-print.d.ts.map +1 -0
  82. package/{runners → dts/runners}/run-promise.d.ts +1 -0
  83. package/dts/runners/run-promise.d.ts.map +1 -0
  84. package/{runners → dts/runners}/run-sync.d.ts +1 -0
  85. package/dts/runners/run-sync.d.ts.map +1 -0
  86. package/{types → dts/types}/pretty-error.type.d.ts +1 -0
  87. package/dts/types/pretty-error.type.d.ts.map +1 -0
  88. package/{types → dts/types}/pretty-print-options.type.d.ts +1 -0
  89. package/dts/types/pretty-print-options.type.d.ts.map +1 -0
  90. package/esm/capture-errors.js +67 -0
  91. package/esm/capture-errors.js.map +1 -0
  92. package/{index.d.ts → esm/index.js} +1 -0
  93. package/esm/index.js.map +1 -0
  94. package/esm/logic/errors/capture-errors-from-cause.js +11 -0
  95. package/esm/logic/errors/capture-errors-from-cause.js.map +1 -0
  96. package/esm/logic/errors/extract-error-details.js +56 -0
  97. package/esm/logic/errors/extract-error-details.js.map +1 -0
  98. package/esm/logic/errors/parse-error.js +17 -0
  99. package/esm/logic/errors/parse-error.js.map +1 -0
  100. package/esm/logic/pretty-printing/format-failures-title.js +3 -0
  101. package/esm/logic/pretty-printing/format-failures-title.js.map +1 -0
  102. package/esm/logic/pretty-printing/format-span-attributes.js +43 -0
  103. package/esm/logic/pretty-printing/format-span-attributes.js.map +1 -0
  104. package/esm/logic/pretty-printing/maybe-print-node-stacktrace.js +12 -0
  105. package/esm/logic/pretty-printing/maybe-print-node-stacktrace.js.map +1 -0
  106. package/esm/logic/pretty-printing/maybe-print-span-attributes.js +19 -0
  107. package/esm/logic/pretty-printing/maybe-print-span-attributes.js.map +1 -0
  108. package/esm/logic/pretty-printing/maybe-warn-about-plain-strings.js +8 -0
  109. package/esm/logic/pretty-printing/maybe-warn-about-plain-strings.js.map +1 -0
  110. package/esm/logic/pretty-printing/print-effect-stacktrace.js +12 -0
  111. package/esm/logic/pretty-printing/print-effect-stacktrace.js.map +1 -0
  112. package/esm/logic/spans/get-span-attributes.js +21 -0
  113. package/esm/logic/spans/get-span-attributes.js.map +1 -0
  114. package/esm/logic/spans/get-span-duration.js +9 -0
  115. package/esm/logic/spans/get-span-duration.js.map +1 -0
  116. package/esm/logic/spans/spans-stack-trailing-char.js +3 -0
  117. package/esm/logic/spans/spans-stack-trailing-char.js.map +1 -0
  118. package/esm/logic/spans/split-spans-attributes-by-type.js +16 -0
  119. package/esm/logic/spans/split-spans-attributes-by-type.js.map +1 -0
  120. package/esm/logic/stack/filter-stack.js +14 -0
  121. package/esm/logic/stack/filter-stack.js.map +1 -0
  122. package/esm/logic/strip-cwd-path.js +3 -0
  123. package/esm/logic/strip-cwd-path.js.map +1 -0
  124. package/esm/pretty-print.js +31 -0
  125. package/esm/pretty-print.js.map +1 -0
  126. package/esm/runners/run-promise.js +11 -0
  127. package/esm/runners/run-promise.js.map +1 -0
  128. package/esm/runners/run-sync.js +11 -0
  129. package/esm/runners/run-sync.js.map +1 -0
  130. package/esm/types/pretty-error.type.js +15 -0
  131. package/esm/types/pretty-error.type.js.map +1 -0
  132. package/esm/types/pretty-print-options.type.js +6 -0
  133. package/esm/types/pretty-print-options.type.js.map +1 -0
  134. package/package.json +29 -14
  135. package/capture-errors.js +0 -51
  136. package/capture-errors.test.d.ts +0 -1
  137. package/capture-errors.test.js +0 -162
  138. package/examples/errors/fetch-error.d.ts +0 -9
  139. package/examples/errors/fetch-error.js +0 -27
  140. package/examples/errors/file-error.d.ts +0 -9
  141. package/examples/errors/file-error.js +0 -27
  142. package/examples/errors/user-not-found.error.d.ts +0 -9
  143. package/examples/errors/user-not-found.error.js +0 -27
  144. package/examples/from-promise.d.ts +0 -5
  145. package/examples/from-promise.js +0 -113
  146. package/examples/parallel-errors.d.ts +0 -4
  147. package/examples/parallel-errors.js +0 -69
  148. package/examples/util/filename.effect.d.ts +0 -2
  149. package/examples/util/filename.effect.js +0 -11
  150. package/index.js +0 -21
  151. package/logic/errors/capture-errors-from-cause.js +0 -41
  152. package/logic/errors/extract-error-details.js +0 -74
  153. package/logic/errors/parse-error.js +0 -19
  154. package/logic/spans/get-span-attributes.d.ts +0 -1
  155. package/logic/spans/get-span-attributes.js +0 -36
  156. package/logic/spans/get-span-duration.js +0 -15
  157. package/logic/spans/spans-stack-trailing-char.js +0 -11
  158. package/logic/stack/filter-stack.js +0 -39
  159. package/logic/strip-cwd-path.js +0 -8
  160. package/pretty-print.d.ts +0 -3
  161. package/pretty-print.js +0 -75
  162. package/runners/run-promise.js +0 -89
  163. package/runners/run-sync.js +0 -17
  164. package/tests/mocks/console.mock.d.ts +0 -9
  165. package/tests/mocks/console.mock.js +0 -66
  166. package/tests/runners/effect-cause.d.ts +0 -2
  167. package/tests/runners/effect-cause.js +0 -49
  168. package/types/pretty-error.type.js +0 -14
  169. package/types/pretty-print-options.type.js +0 -8
@@ -1,162 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var vitest_1 = require("vitest");
40
- var capture_errors_1 = require("./capture-errors");
41
- var from_promise_1 = require("./examples/from-promise");
42
- var parallel_errors_1 = require("./examples/parallel-errors");
43
- var console_mock_1 = require("./tests/mocks/console.mock");
44
- var effect_cause_1 = require("./tests/runners/effect-cause");
45
- void (0, console_mock_1.mockConsole)({
46
- info: vitest_1.vi.fn(),
47
- });
48
- (0, vitest_1.describe)('captureErrors function', function () {
49
- (0, vitest_1.it)('should capture errors from promises', function () { return __awaiter(void 0, void 0, void 0, function () {
50
- var cause, result, _a, errorType, isPlainString, message, spans, stack;
51
- return __generator(this, function (_b) {
52
- switch (_b.label) {
53
- case 0: return [4 /*yield*/, (0, effect_cause_1.effectCause)(from_promise_1.fromPromiseTask)];
54
- case 1:
55
- cause = _b.sent();
56
- result = (0, capture_errors_1.captureErrors)(cause, {
57
- reverseSpans: false,
58
- stripCwd: false,
59
- });
60
- (0, vitest_1.expect)(result.interrupted).toBe(false);
61
- (0, vitest_1.expect)(result.errors).toHaveLength(1);
62
- _a = result.errors[0], errorType = _a.errorType, isPlainString = _a.isPlainString, message = _a.message, spans = _a.spans, stack = _a.stack;
63
- (0, vitest_1.expect)(errorType).toBe('FetchError');
64
- (0, vitest_1.expect)(isPlainString).toBe(false);
65
- (0, vitest_1.expect)(message.toString()).toStrictEqual('TypeError: fetch failed');
66
- (0, vitest_1.expect)(spans).toHaveLength(2);
67
- (0, vitest_1.expect)(spans === null || spans === void 0 ? void 0 : spans[0].name).toBe('fetchUser');
68
- (0, vitest_1.expect)(spans === null || spans === void 0 ? void 0 : spans[0].attributes).toHaveAttributes([
69
- {
70
- key: 'userId',
71
- value: '123',
72
- },
73
- ]);
74
- (0, vitest_1.expect)(spans === null || spans === void 0 ? void 0 : spans[1].attributes).toHaveAttributes([]);
75
- (0, vitest_1.expect)(stack).not.toHaveLength(0);
76
- return [2 /*return*/];
77
- }
78
- });
79
- }); });
80
- // eslint-disable-next-line complexity
81
- (0, vitest_1.it)('should capture parallel errors', function () { return __awaiter(void 0, void 0, void 0, function () {
82
- var cause, result, firstError, secondError, thirdError;
83
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
84
- return __generator(this, function (_u) {
85
- switch (_u.label) {
86
- case 0: return [4 /*yield*/, (0, effect_cause_1.effectCause)(parallel_errors_1.withParallelErrorsTask)];
87
- case 1:
88
- cause = _u.sent();
89
- result = (0, capture_errors_1.captureErrors)(cause, {
90
- reverseSpans: false,
91
- stripCwd: false,
92
- });
93
- (0, vitest_1.expect)(result.interrupted).toBe(false);
94
- (0, vitest_1.expect)(result.errors).toHaveLength(3);
95
- firstError = result.errors[0];
96
- (0, vitest_1.expect)(firstError.errorType).toBe('UserNotFound');
97
- (0, vitest_1.expect)(firstError.isPlainString).toBe(false);
98
- (0, vitest_1.expect)(firstError.message).toStrictEqual('Oh no, this user does no exist!');
99
- (0, vitest_1.expect)(firstError.spans).toHaveLength(3);
100
- (0, vitest_1.expect)((_a = firstError.spans) === null || _a === void 0 ? void 0 : _a[0].name).toBe('readUser');
101
- (0, vitest_1.expect)((_b = firstError.spans) === null || _b === void 0 ? void 0 : _b[0].attributes).toHaveAttributes([
102
- {
103
- key: 'name',
104
- value: 'yolo',
105
- },
106
- ]);
107
- (0, vitest_1.expect)((_c = firstError.spans) === null || _c === void 0 ? void 0 : _c[1].name).toBe('parallelGet');
108
- (0, vitest_1.expect)((_d = firstError.spans) === null || _d === void 0 ? void 0 : _d[1].attributes).toHaveAttributes([
109
- {
110
- key: 'names',
111
- value: ['yolo', 'bro', 'cool'],
112
- },
113
- ]);
114
- (0, vitest_1.expect)((_e = firstError.spans) === null || _e === void 0 ? void 0 : _e[2].name).toBe('withParallelErrorsTask');
115
- (0, vitest_1.expect)((_f = firstError.spans) === null || _f === void 0 ? void 0 : _f[2].attributes).toHaveAttributes([]);
116
- secondError = result.errors[1];
117
- (0, vitest_1.expect)(secondError.errorType).toBe('UserNotFound');
118
- (0, vitest_1.expect)(secondError.isPlainString).toBe(false);
119
- (0, vitest_1.expect)(secondError.message).toStrictEqual('Oh no, this user does no exist!');
120
- (0, vitest_1.expect)(secondError.spans).toHaveLength(3);
121
- (0, vitest_1.expect)((_g = secondError.spans) === null || _g === void 0 ? void 0 : _g[0].name).toBe('readUser');
122
- (0, vitest_1.expect)((_h = secondError.spans) === null || _h === void 0 ? void 0 : _h[0].attributes).toHaveAttributes([
123
- {
124
- key: 'name',
125
- value: 'bro',
126
- },
127
- ]);
128
- (0, vitest_1.expect)((_j = secondError.spans) === null || _j === void 0 ? void 0 : _j[1].name).toBe('parallelGet');
129
- (0, vitest_1.expect)((_k = secondError.spans) === null || _k === void 0 ? void 0 : _k[1].attributes).toHaveAttributes([
130
- {
131
- key: 'names',
132
- value: ['yolo', 'bro', 'cool'],
133
- },
134
- ]);
135
- (0, vitest_1.expect)((_l = secondError.spans) === null || _l === void 0 ? void 0 : _l[2].name).toBe('withParallelErrorsTask');
136
- (0, vitest_1.expect)((_m = secondError.spans) === null || _m === void 0 ? void 0 : _m[2].attributes).toHaveAttributes([]);
137
- thirdError = result.errors[2];
138
- (0, vitest_1.expect)(thirdError.errorType).toBe('UserNotFound');
139
- (0, vitest_1.expect)(thirdError.isPlainString).toBe(false);
140
- (0, vitest_1.expect)(thirdError.message).toStrictEqual('Oh no, this user does no exist!');
141
- (0, vitest_1.expect)(thirdError.spans).toHaveLength(3);
142
- (0, vitest_1.expect)((_o = thirdError.spans) === null || _o === void 0 ? void 0 : _o[0].name).toBe('readUser');
143
- (0, vitest_1.expect)((_p = thirdError.spans) === null || _p === void 0 ? void 0 : _p[0].attributes).toHaveAttributes([
144
- {
145
- key: 'name',
146
- value: 'cool',
147
- },
148
- ]);
149
- (0, vitest_1.expect)((_q = thirdError.spans) === null || _q === void 0 ? void 0 : _q[1].name).toBe('parallelGet');
150
- (0, vitest_1.expect)((_r = thirdError.spans) === null || _r === void 0 ? void 0 : _r[1].attributes).toHaveAttributes([
151
- {
152
- key: 'names',
153
- value: ['yolo', 'bro', 'cool'],
154
- },
155
- ]);
156
- (0, vitest_1.expect)((_s = thirdError.spans) === null || _s === void 0 ? void 0 : _s[2].name).toBe('withParallelErrorsTask');
157
- (0, vitest_1.expect)((_t = thirdError.spans) === null || _t === void 0 ? void 0 : _t[2].attributes).toHaveAttributes([]);
158
- return [2 /*return*/];
159
- }
160
- });
161
- }); });
162
- });
@@ -1,9 +0,0 @@
1
- declare const FetchError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
2
- readonly _tag: "FetchError";
3
- } & Readonly<A>;
4
- export declare class FetchError extends FetchError_base<{
5
- cause?: unknown;
6
- message?: string;
7
- }> {
8
- }
9
- export {};
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.FetchError = void 0;
19
- var Data_1 = require("effect/Data");
20
- var FetchError = /** @class */ (function (_super) {
21
- __extends(FetchError, _super);
22
- function FetchError() {
23
- return _super !== null && _super.apply(this, arguments) || this;
24
- }
25
- return FetchError;
26
- }((0, Data_1.TaggedError)('FetchError')));
27
- exports.FetchError = FetchError;
@@ -1,9 +0,0 @@
1
- declare const FileError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
2
- readonly _tag: "FileError";
3
- } & Readonly<A>;
4
- export declare class FileError extends FileError_base<{
5
- cause?: unknown;
6
- message?: string;
7
- }> {
8
- }
9
- export {};
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.FileError = void 0;
19
- var Data_1 = require("effect/Data");
20
- var FileError = /** @class */ (function (_super) {
21
- __extends(FileError, _super);
22
- function FileError() {
23
- return _super !== null && _super.apply(this, arguments) || this;
24
- }
25
- return FileError;
26
- }((0, Data_1.TaggedError)('FileError')));
27
- exports.FileError = FileError;
@@ -1,9 +0,0 @@
1
- declare const UserNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
2
- readonly _tag: "UserNotFound";
3
- } & Readonly<A>;
4
- export declare class UserNotFoundError extends UserNotFoundError_base<{
5
- cause?: unknown;
6
- message?: string;
7
- }> {
8
- }
9
- export {};
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.UserNotFoundError = void 0;
19
- var Data_1 = require("effect/Data");
20
- var UserNotFoundError = /** @class */ (function (_super) {
21
- __extends(UserNotFoundError, _super);
22
- function UserNotFoundError() {
23
- return _super !== null && _super.apply(this, arguments) || this;
24
- }
25
- return UserNotFoundError;
26
- }((0, Data_1.TaggedError)('UserNotFound')));
27
- exports.UserNotFoundError = UserNotFoundError;
@@ -1,5 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { FetchError } from './errors/fetch-error';
3
- import { FileError } from './errors/file-error';
4
- export declare const fromPromiseTask: Effect.Effect<any, FetchError | FileError, never>;
5
- export default fromPromiseTask;
@@ -1,113 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __values = (this && this.__values) || function(o) {
39
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
40
- if (m) return m.call(o);
41
- if (o && typeof o.length === "number") return {
42
- next: function () {
43
- if (o && i >= o.length) o = void 0;
44
- return { value: o && o[i++], done: !o };
45
- }
46
- };
47
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.fromPromiseTask = void 0;
51
- var effect_1 = require("effect");
52
- var fs_extra_1 = require("fs-extra");
53
- var fetch_error_1 = require("./errors/fetch-error");
54
- var file_error_1 = require("./errors/file-error");
55
- var filename_effect_1 = require("./util/filename.effect");
56
- var readUser = effect_1.Effect.withSpan('readUser')(effect_1.Effect.tryPromise({
57
- try: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
58
- switch (_a.label) {
59
- case 0: return [4 /*yield*/, (0, fs_extra_1.readJson)('./src/examples/data/user.json')];
60
- case 1: return [2 /*return*/, _a.sent()];
61
- }
62
- }); }); },
63
- catch: function (e) { return new file_error_1.FileError({ cause: e }); },
64
- }));
65
- var fetchTask = function (userId) {
66
- return effect_1.Effect.withSpan('fetchUser', {
67
- attributes: {
68
- userId: userId,
69
- },
70
- })(effect_1.Effect.tryPromise({
71
- try: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
72
- switch (_a.label) {
73
- case 0: return [4 /*yield*/, fetch("https://yolo-bro-oh-no.org/users/".concat(userId))];
74
- case 1: return [2 /*return*/, _a.sent()];
75
- }
76
- }); }); },
77
- catch: function (e) {
78
- return new fetch_error_1.FetchError({
79
- cause: e,
80
- });
81
- },
82
- }));
83
- };
84
- var unwrapResponseTask = function (response) {
85
- return effect_1.Effect.withSpan('unwrapFetchUserResponse')(effect_1.Effect.tryPromise({
86
- try: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
87
- switch (_a.label) {
88
- case 0: return [4 /*yield*/, response.json()];
89
- case 1: return [2 /*return*/, _a.sent()];
90
- }
91
- }); }); },
92
- catch: function (e) { return new fetch_error_1.FetchError({ cause: e }); },
93
- }));
94
- };
95
- exports.fromPromiseTask = effect_1.Effect.withSpan('fromPromiseTask')(effect_1.Effect.gen(function () {
96
- var id, response;
97
- return __generator(this, function (_a) {
98
- switch (_a.label) {
99
- case 0: return [5 /*yield**/, __values((0, filename_effect_1.filename)(__filename))];
100
- case 1:
101
- _a.sent();
102
- return [5 /*yield**/, __values(readUser)];
103
- case 2:
104
- id = (_a.sent()).id;
105
- return [5 /*yield**/, __values(fetchTask(id))];
106
- case 3:
107
- response = _a.sent();
108
- return [5 /*yield**/, __values(unwrapResponseTask(response))];
109
- case 4: return [2 /*return*/, _a.sent()];
110
- }
111
- });
112
- }));
113
- exports.default = exports.fromPromiseTask;
@@ -1,4 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { UserNotFoundError } from './errors/user-not-found.error';
3
- export declare const withParallelErrorsTask: Effect.Effect<[void, never[]], UserNotFoundError, never>;
4
- export default withParallelErrorsTask;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.withParallelErrorsTask = void 0;
40
- var effect_1 = require("effect");
41
- var user_not_found_error_1 = require("./errors/user-not-found.error");
42
- var filename_effect_1 = require("./util/filename.effect");
43
- var readUser = function (name) {
44
- return effect_1.Effect.withSpan('readUser', {
45
- attributes: {
46
- name: name,
47
- },
48
- })(effect_1.Effect.tryPromise({
49
- // eslint-disable-next-line prefer-promise-reject-errors
50
- try: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
51
- switch (_a.label) {
52
- case 0: return [4 /*yield*/, Promise.reject('Oh no, this user does no exist!')];
53
- case 1: return [2 /*return*/, _a.sent()];
54
- }
55
- }); }); },
56
- catch: function (e) { return new user_not_found_error_1.UserNotFoundError({ cause: e }); },
57
- }));
58
- };
59
- var parallelGet = function (names) {
60
- return effect_1.Effect.withSpan('parallelGet', {
61
- attributes: {
62
- names: names,
63
- },
64
- })(effect_1.Effect.all(names.map(readUser), {
65
- concurrency: 'unbounded',
66
- }));
67
- };
68
- exports.withParallelErrorsTask = effect_1.Effect.withSpan('withParallelErrorsTask')(effect_1.Effect.all([(0, filename_effect_1.filename)(__filename), parallelGet(['yolo', 'bro', 'cool'])]));
69
- exports.default = exports.withParallelErrorsTask;
@@ -1,2 +0,0 @@
1
- import { Effect } from 'effect';
2
- export declare const filename: (path: string) => Effect.Effect<void, never, never>;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filename = void 0;
4
- var effect_1 = require("effect");
5
- var cwdRegex = new RegExp(process.cwd(), 'g');
6
- var filename = function (path) {
7
- return effect_1.Effect.sync(function () {
8
- console.info("\r\n\uD83D\uDCC1 ".concat(path.replace(cwdRegex, '.')));
9
- });
10
- };
11
- exports.filename = filename;
package/index.js DELETED
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./pretty-print"), exports);
18
- __exportStar(require("./runners/run-promise"), exports);
19
- __exportStar(require("./runners/run-sync"), exports);
20
- __exportStar(require("./types/pretty-print-options.type"), exports);
21
- __exportStar(require("./capture-errors"), exports);
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
- if (ar || !(i in from)) {
21
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
- ar[i] = from[i];
23
- }
24
- }
25
- return to.concat(ar || Array.prototype.slice.call(from));
26
- };
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.captureErrorsFrom = void 0;
29
- var Cause_1 = require("effect/Cause");
30
- var parse_error_1 = require("./parse-error");
31
- var captureErrorsFrom = function (cause) {
32
- return (0, Cause_1.reduceWithContext)(cause, undefined, {
33
- emptyCase: function () { return []; },
34
- dieCase: function (_, unknownError) { return [(0, parse_error_1.parseError)(unknownError)]; },
35
- failCase: function (_, error) { return [(0, parse_error_1.parseError)(error)]; },
36
- interruptCase: function () { return []; },
37
- parallelCase: function (_, l, r) { return __spreadArray(__spreadArray([], __read(l), false), __read(r), false); },
38
- sequentialCase: function (_, l, r) { return __spreadArray(__spreadArray([], __read(l), false), __read(r), false); },
39
- });
40
- };
41
- exports.captureErrorsFrom = captureErrorsFrom;
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.extractErrorDetails = void 0;
20
- var Function_1 = require("effect/Function");
21
- var Predicate_1 = require("effect/Predicate");
22
- var extractErrorDetails = function (error) {
23
- if (typeof error === 'string') {
24
- return {
25
- isPlainString: true,
26
- message: error,
27
- };
28
- }
29
- // TaggedError with cause
30
- if (error instanceof Error &&
31
- (0, Predicate_1.hasProperty)(error, 'cause') &&
32
- (0, Predicate_1.hasProperty)(error, '_tag')) {
33
- return {
34
- isPlainString: false,
35
- type: error._tag,
36
- message: error.cause,
37
- };
38
- }
39
- // TaggedError with error ctor
40
- if (error instanceof Error && (0, Predicate_1.hasProperty)(error, 'error')) {
41
- return {
42
- isPlainString: false,
43
- type: error.name,
44
- message: error.error,
45
- };
46
- }
47
- // Plain objects with tag attribute
48
- if ((0, Predicate_1.hasProperty)(error, '_tag') && (0, Predicate_1.hasProperty)(error, 'message')) {
49
- return {
50
- isPlainString: false,
51
- type: error._tag,
52
- message: error.message,
53
- };
54
- }
55
- // Plain objects with toString impl
56
- if ((0, Predicate_1.hasProperty)(error, 'toString') &&
57
- (0, Function_1.isFunction)(error.toString) &&
58
- error.toString !== Object.prototype.toString &&
59
- error.toString !== Array.prototype.toString) {
60
- var message = error.toString();
61
- var maybeWithUnderlyingType = message.split(': ');
62
- if (maybeWithUnderlyingType.length > 1) {
63
- var _a = __read(maybeWithUnderlyingType), type = _a[0], message_1 = _a.slice(1);
64
- return {
65
- isPlainString: false,
66
- type: type,
67
- message: message_1,
68
- };
69
- }
70
- return { message: message, isPlainString: false };
71
- }
72
- return { message: "Error: ".concat(JSON.stringify(error)), isPlainString: false };
73
- };
74
- exports.extractErrorDetails = extractErrorDetails;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseError = void 0;
4
- var Predicate_1 = require("effect/Predicate");
5
- var pretty_error_type_1 = require("../../types/pretty-error.type");
6
- var extract_error_details_1 = require("./extract-error-details");
7
- var spanSymbol = Symbol.for('effect/SpanAnnotation');
8
- var parseError = function (error) {
9
- var _a;
10
- var span = (0, Predicate_1.hasProperty)(error, spanSymbol)
11
- ? error[spanSymbol]
12
- : undefined;
13
- var _b = (0, extract_error_details_1.extractErrorDetails)(error), message = _b.message, type = _b.type, isPlainString = _b.isPlainString;
14
- if (error instanceof Error) {
15
- return new pretty_error_type_1.PrettyError(message, (_a = error.stack) === null || _a === void 0 ? void 0 : _a.split('\n').filter(function (el) { return /at (.*)/.exec(el); }).join('\r\n'), span, false, type);
16
- }
17
- return new pretty_error_type_1.PrettyError(message, undefined, span, isPlainString, type);
18
- };
19
- exports.parseError = parseError;