effect-errors 1.5.7 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +135 -19
- package/cjs/capture-errors.js.map +1 -1
- package/cjs/source-maps/transform-raw-error.js +3 -2
- package/cjs/source-maps/transform-raw-error.js.map +1 -1
- package/dts/capture-errors.d.ts +2 -3
- package/dts/capture-errors.d.ts.map +1 -1
- package/dts/source-maps/transform-raw-error.d.ts +4 -2
- package/dts/source-maps/transform-raw-error.d.ts.map +1 -1
- package/esm/capture-errors.js.map +1 -1
- package/esm/source-maps/transform-raw-error.js +3 -2
- package/esm/source-maps/transform-raw-error.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -42,7 +42,7 @@ await runPromise(
|
|
|
42
42
|
);
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
You can also directly import the `prettyPrint` function to do whatever with it
|
|
45
|
+
You can also directly import the `prettyPrint` function to do whatever you want with it 🤷
|
|
46
46
|
|
|
47
47
|
```typescript
|
|
48
48
|
import { prettyPrint } from 'effect-errors';
|
|
@@ -56,7 +56,7 @@ await Effect.runPromise(
|
|
|
56
56
|
Effect.catchAll((e) => {
|
|
57
57
|
console.error(prettyPrint(e));
|
|
58
58
|
|
|
59
|
-
return Effect.fail('❌ runPromise failure')
|
|
59
|
+
return Effect.fail('❌ runPromise failure');
|
|
60
60
|
}),
|
|
61
61
|
),
|
|
62
62
|
);
|
|
@@ -65,7 +65,7 @@ await Effect.runPromise(
|
|
|
65
65
|
Signature is the following:
|
|
66
66
|
|
|
67
67
|
```typescript
|
|
68
|
-
const prettyPrint: <E>(cause: Cause<E>, options?: PrettyPrintOptions) => string
|
|
68
|
+
const prettyPrint: <E>(cause: Cause<E>, options?: PrettyPrintOptions) => string
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
`PrettyPrintOptions` allows you to tweak the following:
|
|
@@ -96,7 +96,7 @@ import { Schema } from '@effect/schema';
|
|
|
96
96
|
export class FileNotFoundError extends Schema.TaggedError<SchemaError>()(
|
|
97
97
|
'FileNotFound',
|
|
98
98
|
{
|
|
99
|
-
cause: Schema.
|
|
99
|
+
cause: Schema.Defect,
|
|
100
100
|
},
|
|
101
101
|
) {}
|
|
102
102
|
```
|
|
@@ -148,33 +148,33 @@ You might want to apply your own logic to reported errors data; for example if y
|
|
|
148
148
|
```typescript
|
|
149
149
|
interface ErrorSpan {
|
|
150
150
|
name: string;
|
|
151
|
-
attributes:
|
|
152
|
-
|
|
151
|
+
attributes: Record<string, unknown>;
|
|
152
|
+
durationInMilliseconds: number | undefined;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
interface ErrorData {
|
|
155
|
+
export interface ErrorData {
|
|
156
156
|
errorType: unknown;
|
|
157
157
|
message: unknown;
|
|
158
|
-
stack
|
|
159
|
-
sources
|
|
160
|
-
spans
|
|
158
|
+
stack: string[] | undefined;
|
|
159
|
+
sources: ErrorRelatedSources[] | undefined;
|
|
160
|
+
spans: ErrorSpan[] | undefined;
|
|
161
161
|
isPlainString: boolean;
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
interface CapturedErrors {
|
|
164
|
+
export interface CapturedErrors {
|
|
165
165
|
interrupted: boolean;
|
|
166
166
|
errors: ErrorData[];
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
interface CaptureErrorsOptions {
|
|
169
|
+
export interface CaptureErrorsOptions {
|
|
170
170
|
reverseSpans?: boolean;
|
|
171
171
|
stripCwd?: boolean;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
const captureErrors: <E>(
|
|
175
|
-
cause: Cause<E>,
|
|
176
|
-
|
|
177
|
-
) => CapturedErrors
|
|
175
|
+
cause: Cause<E>,
|
|
176
|
+
options?: CaptureErrorsOptions
|
|
177
|
+
) => Effect.Effect<CapturedErrors, FsError>
|
|
178
178
|
```
|
|
179
179
|
|
|
180
180
|
You can use `captureErrors` like so:
|
|
@@ -185,15 +185,131 @@ import { captureErrors } from 'effect-errors';
|
|
|
185
185
|
await Effect.runPromise(
|
|
186
186
|
pipe(
|
|
187
187
|
effect,
|
|
188
|
-
Effect.catchAll((e) =>
|
|
189
|
-
|
|
188
|
+
Effect.catchAll((e) =>
|
|
189
|
+
Effect.gen(function* () {
|
|
190
|
+
const errors = yield* captureErrors(e);
|
|
190
191
|
|
|
191
|
-
|
|
192
|
-
|
|
192
|
+
// ...
|
|
193
|
+
}),
|
|
194
|
+
),
|
|
193
195
|
),
|
|
194
196
|
);
|
|
195
197
|
```
|
|
196
198
|
|
|
199
|
+
Capturing errors from the [`from-promise` bundle](./src/tests/bundle/from-promise.js) would return something like this, for example:
|
|
200
|
+
|
|
201
|
+
```json
|
|
202
|
+
{
|
|
203
|
+
"interrupted": false,
|
|
204
|
+
"errors": [
|
|
205
|
+
{
|
|
206
|
+
"errorType": "FetchError",
|
|
207
|
+
"message": {
|
|
208
|
+
"code": "ConnectionRefused",
|
|
209
|
+
"path": "https://yolo-bro-oh-no.org/users/123",
|
|
210
|
+
"errno": 0
|
|
211
|
+
},
|
|
212
|
+
"stack": [
|
|
213
|
+
"at new e (:1:28)",
|
|
214
|
+
"at new <anonymous> (./src/tests/bundle/from-promise.js:31:85157)",
|
|
215
|
+
"at new t (:1:28)",
|
|
216
|
+
"at new za (:1:28)",
|
|
217
|
+
"at catch (./src/tests/bundle/from-promise.js:36:352)",
|
|
218
|
+
"at <anonymous> (./src/tests/bundle/from-promise.js:24:27585)",
|
|
219
|
+
"at processTicksAndRejections (:12:39)"
|
|
220
|
+
],
|
|
221
|
+
"sources": [
|
|
222
|
+
{
|
|
223
|
+
"runPath": "/Users/jpb06/repos/perso/effect-errors/src/tests/bundle/from-promise.js:36:213",
|
|
224
|
+
"sourcesPath": "/Users/jpb06/repos/perso/effect-errors/src/examples/from-promise.ts:25:10",
|
|
225
|
+
"source": [
|
|
226
|
+
{
|
|
227
|
+
"line": 22,
|
|
228
|
+
"code": ");"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"line": 23,
|
|
232
|
+
"code": ""
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"line": 24,
|
|
236
|
+
"code": "const fetchTask = (userId: string) =>"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"line": 25,
|
|
240
|
+
"code": " Effect.withSpan('fetchUser', { attributes: { userId } })(",
|
|
241
|
+
"column": 10
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"line": 26,
|
|
245
|
+
"code": " Effect.tryPromise({"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"line": 27,
|
|
249
|
+
"code": " try: async () =>"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"line": 28,
|
|
253
|
+
"code": " await fetch(`https://yolo-bro-oh-no.org/users/${userId}`),"
|
|
254
|
+
}
|
|
255
|
+
]
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"runPath": "/Users/jpb06/repos/perso/effect-errors/src/tests/bundle/from-promise.js:36:490",
|
|
259
|
+
"sourcesPath": "/Users/jpb06/repos/perso/effect-errors/src/examples/from-promise.ts:44:39",
|
|
260
|
+
"source": [
|
|
261
|
+
{
|
|
262
|
+
"line": 41,
|
|
263
|
+
"code": " }),"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"line": 42,
|
|
267
|
+
"code": " );"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"line": 43,
|
|
271
|
+
"code": ""
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"line": 44,
|
|
275
|
+
"code": "export const fromPromiseTask = Effect.withSpan('fromPromiseTask')(",
|
|
276
|
+
"column": 39
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"line": 45,
|
|
280
|
+
"code": " Effect.gen(function* () {"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"line": 46,
|
|
284
|
+
"code": " yield* filename(fileName);"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"line": 47,
|
|
288
|
+
"code": ""
|
|
289
|
+
}
|
|
290
|
+
]
|
|
291
|
+
}
|
|
292
|
+
],
|
|
293
|
+
"spans": [
|
|
294
|
+
{
|
|
295
|
+
"name": "fromPromiseTask",
|
|
296
|
+
"attributes": {},
|
|
297
|
+
"durationInMilliseconds": 20
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"name": "fetchUser",
|
|
301
|
+
"attributes": {
|
|
302
|
+
"userId": "123"
|
|
303
|
+
},
|
|
304
|
+
"durationInMilliseconds": 13
|
|
305
|
+
}
|
|
306
|
+
],
|
|
307
|
+
"isPlainString": false
|
|
308
|
+
}
|
|
309
|
+
]
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
197
313
|
## ⚡ examples
|
|
198
314
|
|
|
199
315
|
### 🔶 error logging - `runPromise` / `runSync`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-errors.js","names":["_effect","require","_Cause","_captureErrorsFromCause","_transformRawError","captureErrors","cause","options","reverseSpans","stripCwd","Effect","gen","isInterruptedOnly","interrupted","errors","rawErrors","captureErrorsFrom","forEach","transformRawError","exports"],"sources":["../../src/capture-errors.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAD,OAAA;
|
|
1
|
+
{"version":3,"file":"capture-errors.js","names":["_effect","require","_Cause","_captureErrorsFromCause","_transformRawError","captureErrors","cause","options","reverseSpans","stripCwd","Effect","gen","isInterruptedOnly","interrupted","errors","rawErrors","captureErrorsFrom","forEach","transformRawError","exports"],"sources":["../../src/capture-errors.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAD,OAAA;AAGA,IAAAE,uBAAA,gBAAAF,OAAA;AAEA,IAAAG,kBAAA,gBAAAH,OAAA;AA2BO,MAAMI,aAAa,GAAGA,CAC3BC,KAAe,EACfC,OAAA,GAAgC;EAC9BC,YAAY,EAAE,IAAI;EAClBC,QAAQ,EAAE;CACX,KAEDT,OAAA,CAAAU,MAAM,CAACC,GAAG,CAAC,aAAS;EAClB,IAAI,IAAAT,MAAA,CAAAU,iBAAiB,EAACN,KAAK,CAAC,EAAE;IAC5B,OAAO;MACLO,WAAW,EAAE,IAAI;MACjBC,MAAM,EAAE;KACT;EACH;EAEA,MAAMC,SAAS,GAAG,IAAAZ,uBAAA,CAAAa,iBAAiB,EAAIV,KAAK,CAAC;EAC7C,MAAMQ,MAAM,GAAG,OAAOd,OAAA,CAAAU,MAAM,CAACO,OAAO,CAACF,SAAS,EAAE,IAAAX,kBAAA,CAAAc,iBAAiB,EAACX,OAAO,CAAC,CAAC;EAE3E,OAAO;IACLM,WAAW,EAAE,KAAK;IAClBC;GACD;AACH,CAAC,CAAC;AAACK,OAAA,CAAAd,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -34,11 +34,12 @@ const transformRawError = ({
|
|
|
34
34
|
stacktrace
|
|
35
35
|
} = (0, _splitSpansAttributesByType.splitSpansAttributesByTypes)(allAttributes);
|
|
36
36
|
const errorSources = yield* (0, _maybeMapSourcemaps.maybeMapSourcemaps)(stacktrace);
|
|
37
|
+
const duration = status._tag === 'Ended' ? +`${(status.endTime - status.startTime) / BigInt(1000000)}` : undefined;
|
|
37
38
|
sources.push(...errorSources);
|
|
38
39
|
spans.push({
|
|
39
40
|
name,
|
|
40
|
-
attributes,
|
|
41
|
-
|
|
41
|
+
attributes: Object.fromEntries(attributes),
|
|
42
|
+
durationInMilliseconds: duration
|
|
42
43
|
});
|
|
43
44
|
current = _effect.Option.getOrUndefined(current.parent);
|
|
44
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-raw-error.js","names":["_effect","require","_splitSpansAttributesByType","_stackRegex","_stripCwdPath","_maybeMapSourcemaps","transformRawError","reverseSpans","stripCwd","message","stack","maybeStack","span","errorType","isPlainString","Effect","gen","sources","spans","undefined","current","_tag","name","attributes","allAttributes","status","stacktrace","splitSpansAttributesByTypes","errorSources","maybeMapSourcemaps","push","Option","getOrUndefined","parent","stripCwdPath","replaceAll","stackAtRegex","split","length","toReversed","exports"],"sources":["../../../src/source-maps/transform-raw-error.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AAIA,IAAAC,2BAAA,gBAAAD,OAAA;AACA,IAAAE,WAAA,gBAAAF,OAAA;AACA,IAAAG,aAAA,gBAAAH,OAAA;AAIA,IAAAI,mBAAA,gBAAAJ,OAAA;AAEO,MAAMK,iBAAiB,GAC5BA,CAAC;EAAEC,YAAY;EAAEC;AAAQ,CAAwB,KACjD,CAAC;EACCC,OAAO;EACPC,KAAK,EAAEC,UAAU;EACjBC,IAAI;EACJC,SAAS;EACTC;AAAa,CACD,KACZd,OAAA,CAAAe,MAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,OAAO,GAA0B,EAAE;EACzC,MAAMC,KAAK,GAAG,EAAE;EAEhB,IAAIN,IAAI,KAAKO,SAAS,EAAE;IACtB,IAAIC,OAAO,GAA+BR,IAAI;IAE9C,OAAOQ,OAAO,KAAKD,SAAS,IAAIC,OAAO,CAACC,IAAI,KAAK,MAAM,EAAE;MACvD,MAAM;QAAEC,IAAI;QAAEC,UAAU,EAAEC,aAAa;QAAEC;MAAM,CAAE,GAAGL,OAAO;MAE3D,MAAM;QAAEG,UAAU;QAAEG;MAAU,CAAE,GAC9B,IAAAxB,2BAAA,CAAAyB,2BAA2B,EAACH,aAAa,CAAC;MAE5C,MAAMI,YAAY,GAAG,OAAO,IAAAvB,mBAAA,CAAAwB,kBAAkB,EAACH,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"transform-raw-error.js","names":["_effect","require","_splitSpansAttributesByType","_stackRegex","_stripCwdPath","_maybeMapSourcemaps","transformRawError","reverseSpans","stripCwd","message","stack","maybeStack","span","errorType","isPlainString","Effect","gen","sources","spans","undefined","current","_tag","name","attributes","allAttributes","status","stacktrace","splitSpansAttributesByTypes","errorSources","maybeMapSourcemaps","duration","endTime","startTime","BigInt","push","Object","fromEntries","durationInMilliseconds","Option","getOrUndefined","parent","stripCwdPath","replaceAll","stackAtRegex","split","length","toReversed","exports"],"sources":["../../../src/source-maps/transform-raw-error.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AAIA,IAAAC,2BAAA,gBAAAD,OAAA;AACA,IAAAE,WAAA,gBAAAF,OAAA;AACA,IAAAG,aAAA,gBAAAH,OAAA;AAIA,IAAAI,mBAAA,gBAAAJ,OAAA;AAEO,MAAMK,iBAAiB,GAC5BA,CAAC;EAAEC,YAAY;EAAEC;AAAQ,CAAwB,KACjD,CAAC;EACCC,OAAO;EACPC,KAAK,EAAEC,UAAU;EACjBC,IAAI;EACJC,SAAS;EACTC;AAAa,CACD,KACZd,OAAA,CAAAe,MAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,OAAO,GAA0B,EAAE;EACzC,MAAMC,KAAK,GAAG,EAAE;EAEhB,IAAIN,IAAI,KAAKO,SAAS,EAAE;IACtB,IAAIC,OAAO,GAA+BR,IAAI;IAE9C,OAAOQ,OAAO,KAAKD,SAAS,IAAIC,OAAO,CAACC,IAAI,KAAK,MAAM,EAAE;MACvD,MAAM;QAAEC,IAAI;QAAEC,UAAU,EAAEC,aAAa;QAAEC;MAAM,CAAE,GAAGL,OAAO;MAE3D,MAAM;QAAEG,UAAU;QAAEG;MAAU,CAAE,GAC9B,IAAAxB,2BAAA,CAAAyB,2BAA2B,EAACH,aAAa,CAAC;MAE5C,MAAMI,YAAY,GAAG,OAAO,IAAAvB,mBAAA,CAAAwB,kBAAkB,EAACH,UAAU,CAAC;MAE1D,MAAMI,QAAQ,GACZL,MAAM,CAACJ,IAAI,KAAK,OAAO,GACnB,CAAC,GAAG,CAACI,MAAM,CAACM,OAAO,GAAGN,MAAM,CAACO,SAAS,IAAIC,MAAM,CAAC,OAAO,CAAC,EAAE,GAC3Dd,SAAS;MAEfF,OAAO,CAACiB,IAAI,CAAC,GAAGN,YAAY,CAAC;MAC7BV,KAAK,CAACgB,IAAI,CAAC;QACTZ,IAAI;QACJC,UAAU,EAAEY,MAAM,CAACC,WAAW,CAACb,UAAU,CAAC;QAC1Cc,sBAAsB,EAAEP;OACzB,CAAC;MACFV,OAAO,GAAGpB,OAAA,CAAAsC,MAAM,CAACC,cAAc,CAACnB,OAAO,CAACoB,MAAM,CAAC;IACjD;EACF;EAEA,IAAI9B,KAAK;EACT,IAAIC,UAAU,KAAKQ,SAAS,EAAE;IAC5BT,KAAK,GAAGF,QAAQ,KAAK,IAAI,GAAG,IAAAJ,aAAA,CAAAqC,YAAY,EAAC9B,UAAU,CAAC,GAAGA,UAAU;EACnE;EAEA,OAAO;IACLE,SAAS;IACTJ,OAAO;IACPC,KAAK,EAAEA,KAAK,EAAEgC,UAAU,CAACvC,WAAA,CAAAwC,YAAY,EAAE,KAAK,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC;IAC3D3B,OAAO,EAAEA,OAAO,CAAC4B,MAAM,GAAG,CAAC,GAAG5B,OAAO,GAAGE,SAAS;IACjDD,KAAK,EAAEX,YAAY,KAAK,IAAI,GAAGW,KAAK,CAAC4B,UAAU,EAAE,GAAG5B,KAAK;IACzDJ;GACD;AACH,CAAC,CAAC;AAACiC,OAAA,CAAAzC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
package/dts/capture-errors.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Effect } from 'effect';
|
|
2
2
|
import { type Cause } from 'effect/Cause';
|
|
3
|
-
import { type SpanStatus } from 'effect/Tracer';
|
|
4
3
|
import { type FsError } from './logic/effects/fs/fs-error.js';
|
|
5
4
|
import { type ErrorRelatedSources } from './source-maps/get-sources-from-map-file.js';
|
|
6
5
|
export interface ErrorSpan {
|
|
7
6
|
name: string;
|
|
8
|
-
attributes:
|
|
9
|
-
|
|
7
|
+
attributes: Record<string, unknown>;
|
|
8
|
+
durationInMilliseconds: number | undefined;
|
|
10
9
|
}
|
|
11
10
|
export interface ErrorData {
|
|
12
11
|
errorType: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-errors.d.ts","sourceRoot":"","sources":["../../src/capture-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"capture-errors.d.ts","sourceRoot":"","sources":["../../src/capture-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAGtF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAAC;IAC3C,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,SACtB,KAAK,CAAC,CAAC,CAAC,YACN,oBAAoB,KAI5B,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAgBpC,CAAC"}
|
|
@@ -9,8 +9,10 @@ export declare const transformRawError: ({ reverseSpans, stripCwd }: CaptureErro
|
|
|
9
9
|
sources: ErrorRelatedSources[] | undefined;
|
|
10
10
|
spans: {
|
|
11
11
|
name: string;
|
|
12
|
-
attributes:
|
|
13
|
-
|
|
12
|
+
attributes: {
|
|
13
|
+
[k: string]: unknown;
|
|
14
|
+
};
|
|
15
|
+
durationInMilliseconds: number | undefined;
|
|
14
16
|
}[];
|
|
15
17
|
isPlainString: boolean;
|
|
16
18
|
}, import("../logic/effects/fs/fs-error.js").FsError, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-raw-error.d.ts","sourceRoot":"","sources":["../../../src/source-maps/transform-raw-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAGxC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIjE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E,eAAO,MAAM,iBAAiB,+BACC,oBAAoB,uEAO9C,WAAW
|
|
1
|
+
{"version":3,"file":"transform-raw-error.d.ts","sourceRoot":"","sources":["../../../src/source-maps/transform-raw-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAGxC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIjE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E,eAAO,MAAM,iBAAiB,+BACC,oBAAoB,uEAO9C,WAAW;;;;;;;;;;;;;4DA4CV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-errors.js","names":["Effect","isInterruptedOnly","captureErrorsFrom","transformRawError","captureErrors","cause","options","reverseSpans","stripCwd","gen","interrupted","errors","rawErrors","forEach"],"sources":["../../src/capture-errors.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,SAAqBC,iBAAiB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"file":"capture-errors.js","names":["Effect","isInterruptedOnly","captureErrorsFrom","transformRawError","captureErrors","cause","options","reverseSpans","stripCwd","gen","interrupted","errors","rawErrors","forEach"],"sources":["../../src/capture-errors.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,SAAqBC,iBAAiB,QAAQ,cAAc;AAG5D,SAASC,iBAAiB,QAAQ,6CAA6C;AAE/E,SAASC,iBAAiB,QAAQ,sCAAsC;AA2BxE,OAAO,MAAMC,aAAa,GAAGA,CAC3BC,KAAe,EACfC,OAAA,GAAgC;EAC9BC,YAAY,EAAE,IAAI;EAClBC,QAAQ,EAAE;CACX,KAEDR,MAAM,CAACS,GAAG,CAAC,aAAS;EAClB,IAAIR,iBAAiB,CAACI,KAAK,CAAC,EAAE;IAC5B,OAAO;MACLK,WAAW,EAAE,IAAI;MACjBC,MAAM,EAAE;KACT;EACH;EAEA,MAAMC,SAAS,GAAGV,iBAAiB,CAAIG,KAAK,CAAC;EAC7C,MAAMM,MAAM,GAAG,OAAOX,MAAM,CAACa,OAAO,CAACD,SAAS,EAAET,iBAAiB,CAACG,OAAO,CAAC,CAAC;EAE3E,OAAO;IACLI,WAAW,EAAE,KAAK;IAClBC;GACD;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -28,11 +28,12 @@ export const transformRawError = ({
|
|
|
28
28
|
stacktrace
|
|
29
29
|
} = splitSpansAttributesByTypes(allAttributes);
|
|
30
30
|
const errorSources = yield* maybeMapSourcemaps(stacktrace);
|
|
31
|
+
const duration = status._tag === 'Ended' ? +`${(status.endTime - status.startTime) / BigInt(1000000)}` : undefined;
|
|
31
32
|
sources.push(...errorSources);
|
|
32
33
|
spans.push({
|
|
33
34
|
name,
|
|
34
|
-
attributes,
|
|
35
|
-
|
|
35
|
+
attributes: Object.fromEntries(attributes),
|
|
36
|
+
durationInMilliseconds: duration
|
|
36
37
|
});
|
|
37
38
|
current = Option.getOrUndefined(current.parent);
|
|
38
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-raw-error.js","names":["Effect","Option","splitSpansAttributesByTypes","stackAtRegex","stripCwdPath","maybeMapSourcemaps","transformRawError","reverseSpans","stripCwd","message","stack","maybeStack","span","errorType","isPlainString","gen","sources","spans","undefined","current","_tag","name","attributes","allAttributes","status","stacktrace","errorSources","push","getOrUndefined","parent","replaceAll","split","length","toReversed"],"sources":["../../../src/source-maps/transform-raw-error.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,EAAEC,MAAM,QAAQ,QAAQ;AAIvC,SAASC,2BAA2B,QAAQ,kDAAkD;AAC9F,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,YAAY,QAAQ,4BAA4B;AAIzD,SAASC,kBAAkB,QAAQ,2BAA2B;AAE9D,OAAO,MAAMC,iBAAiB,GAC5BA,CAAC;EAAEC,YAAY;EAAEC;AAAQ,CAAwB,KACjD,CAAC;EACCC,OAAO;EACPC,KAAK,EAAEC,UAAU;EACjBC,IAAI;EACJC,SAAS;EACTC;AAAa,CACD,KACZd,MAAM,CAACe,GAAG,CAAC,aAAS;EAClB,MAAMC,OAAO,GAA0B,EAAE;EACzC,MAAMC,KAAK,GAAG,EAAE;EAEhB,IAAIL,IAAI,KAAKM,SAAS,EAAE;IACtB,IAAIC,OAAO,GAA+BP,IAAI;IAE9C,OAAOO,OAAO,KAAKD,SAAS,IAAIC,OAAO,CAACC,IAAI,KAAK,MAAM,EAAE;MACvD,MAAM;QAAEC,IAAI;QAAEC,UAAU,EAAEC,aAAa;QAAEC;MAAM,CAAE,GAAGL,OAAO;MAE3D,MAAM;QAAEG,UAAU;QAAEG;MAAU,CAAE,GAC9BvB,2BAA2B,CAACqB,aAAa,CAAC;MAE5C,MAAMG,YAAY,GAAG,OAAOrB,kBAAkB,CAACoB,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"transform-raw-error.js","names":["Effect","Option","splitSpansAttributesByTypes","stackAtRegex","stripCwdPath","maybeMapSourcemaps","transformRawError","reverseSpans","stripCwd","message","stack","maybeStack","span","errorType","isPlainString","gen","sources","spans","undefined","current","_tag","name","attributes","allAttributes","status","stacktrace","errorSources","duration","endTime","startTime","BigInt","push","Object","fromEntries","durationInMilliseconds","getOrUndefined","parent","replaceAll","split","length","toReversed"],"sources":["../../../src/source-maps/transform-raw-error.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,EAAEC,MAAM,QAAQ,QAAQ;AAIvC,SAASC,2BAA2B,QAAQ,kDAAkD;AAC9F,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,YAAY,QAAQ,4BAA4B;AAIzD,SAASC,kBAAkB,QAAQ,2BAA2B;AAE9D,OAAO,MAAMC,iBAAiB,GAC5BA,CAAC;EAAEC,YAAY;EAAEC;AAAQ,CAAwB,KACjD,CAAC;EACCC,OAAO;EACPC,KAAK,EAAEC,UAAU;EACjBC,IAAI;EACJC,SAAS;EACTC;AAAa,CACD,KACZd,MAAM,CAACe,GAAG,CAAC,aAAS;EAClB,MAAMC,OAAO,GAA0B,EAAE;EACzC,MAAMC,KAAK,GAAG,EAAE;EAEhB,IAAIL,IAAI,KAAKM,SAAS,EAAE;IACtB,IAAIC,OAAO,GAA+BP,IAAI;IAE9C,OAAOO,OAAO,KAAKD,SAAS,IAAIC,OAAO,CAACC,IAAI,KAAK,MAAM,EAAE;MACvD,MAAM;QAAEC,IAAI;QAAEC,UAAU,EAAEC,aAAa;QAAEC;MAAM,CAAE,GAAGL,OAAO;MAE3D,MAAM;QAAEG,UAAU;QAAEG;MAAU,CAAE,GAC9BvB,2BAA2B,CAACqB,aAAa,CAAC;MAE5C,MAAMG,YAAY,GAAG,OAAOrB,kBAAkB,CAACoB,UAAU,CAAC;MAE1D,MAAME,QAAQ,GACZH,MAAM,CAACJ,IAAI,KAAK,OAAO,GACnB,CAAC,GAAG,CAACI,MAAM,CAACI,OAAO,GAAGJ,MAAM,CAACK,SAAS,IAAIC,MAAM,CAAC,OAAO,CAAC,EAAE,GAC3DZ,SAAS;MAEfF,OAAO,CAACe,IAAI,CAAC,GAAGL,YAAY,CAAC;MAC7BT,KAAK,CAACc,IAAI,CAAC;QACTV,IAAI;QACJC,UAAU,EAAEU,MAAM,CAACC,WAAW,CAACX,UAAU,CAAC;QAC1CY,sBAAsB,EAAEP;OACzB,CAAC;MACFR,OAAO,GAAGlB,MAAM,CAACkC,cAAc,CAAChB,OAAO,CAACiB,MAAM,CAAC;IACjD;EACF;EAEA,IAAI1B,KAAK;EACT,IAAIC,UAAU,KAAKO,SAAS,EAAE;IAC5BR,KAAK,GAAGF,QAAQ,KAAK,IAAI,GAAGJ,YAAY,CAACO,UAAU,CAAC,GAAGA,UAAU;EACnE;EAEA,OAAO;IACLE,SAAS;IACTJ,OAAO;IACPC,KAAK,EAAEA,KAAK,EAAE2B,UAAU,CAAClC,YAAY,EAAE,KAAK,CAAC,CAACmC,KAAK,CAAC,MAAM,CAAC;IAC3DtB,OAAO,EAAEA,OAAO,CAACuB,MAAM,GAAG,CAAC,GAAGvB,OAAO,GAAGE,SAAS;IACjDD,KAAK,EAAEV,YAAY,KAAK,IAAI,GAAGU,KAAK,CAACuB,UAAU,EAAE,GAAGvB,KAAK;IACzDH;GACD;AACH,CAAC,CAAC","ignoreList":[]}
|