@dxos/effect 0.8.4-main.84f28bd → 0.8.4-main.ae835ea
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/dist/lib/browser/index.mjs +142 -51
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +142 -51
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/ast.d.ts +2 -1
- package/dist/types/src/ast.d.ts.map +1 -1
- package/dist/types/src/context.d.ts +2 -1
- package/dist/types/src/context.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts +31 -1
- package/dist/types/src/errors.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/interrupt.test.d.ts +2 -0
- package/dist/types/src/interrupt.test.d.ts.map +1 -0
- package/dist/types/src/jsonPath.d.ts +1 -1
- package/dist/types/src/jsonPath.d.ts.map +1 -1
- package/dist/types/src/layers.test.d.ts +2 -0
- package/dist/types/src/layers.test.d.ts.map +1 -0
- package/dist/types/src/otel.d.ts +17 -0
- package/dist/types/src/otel.d.ts.map +1 -0
- package/dist/types/src/otel.test.d.ts +2 -0
- package/dist/types/src/otel.test.d.ts.map +1 -0
- package/dist/types/src/resource.d.ts +4 -0
- package/dist/types/src/resource.d.ts.map +1 -0
- package/dist/types/src/resource.test.d.ts +2 -0
- package/dist/types/src/resource.test.d.ts.map +1 -0
- package/dist/types/src/testing.d.ts +67 -0
- package/dist/types/src/testing.d.ts.map +1 -0
- package/dist/types/src/url.d.ts +3 -1
- package/dist/types/src/url.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -7
- package/src/ast.test.ts +4 -3
- package/src/ast.ts +29 -16
- package/src/context.ts +2 -1
- package/src/errors.test.ts +1 -1
- package/src/errors.ts +87 -25
- package/src/index.ts +2 -0
- package/src/interrupt.test.ts +33 -0
- package/src/jsonPath.test.ts +1 -1
- package/src/jsonPath.ts +2 -1
- package/src/layers.test.ts +110 -0
- package/src/otel.test.ts +125 -0
- package/src/otel.ts +45 -0
- package/src/resource.test.ts +32 -0
- package/src/resource.ts +25 -0
- package/src/sanity.test.ts +6 -5
- package/src/testing.ts +110 -0
- package/src/url.test.ts +1 -1
- package/src/url.ts +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/ast.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/ast.ts":{"bytes":43767,"imports":[{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/jsonPath.ts":{"bytes":9832,"imports":[{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"jsonpath-plus","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"src/url.ts":{"bytes":7881,"imports":[{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/context.ts":{"bytes":1719,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true}],"format":"esm"},"src/errors.ts":{"bytes":19285,"imports":[{"path":"effect/Cause","kind":"import-statement","external":true},{"path":"effect/Chunk","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Exit","kind":"import-statement","external":true},{"path":"effect/GlobalValue","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true}],"format":"esm"},"src/testing.ts":{"bytes":6498,"imports":[{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true}],"format":"esm"},"src/resource.ts":{"bytes":2173,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":947,"imports":[{"path":"src/ast.ts","kind":"import-statement","original":"./ast"},{"path":"src/jsonPath.ts","kind":"import-statement","original":"./jsonPath"},{"path":"src/url.ts","kind":"import-statement","original":"./url"},{"path":"src/context.ts","kind":"import-statement","original":"./context"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/testing.ts","kind":"import-statement","original":"./testing"},{"path":"src/resource.ts","kind":"import-statement","original":"./resource"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":46371},"dist/lib/browser/index.mjs":{"imports":[{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"jsonpath-plus","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"effect/Cause","kind":"import-statement","external":true},{"path":"effect/Chunk","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Exit","kind":"import-statement","external":true},{"path":"effect/GlobalValue","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true}],"exports":["JsonPath","JsonProp","ParamKeyAnnotation","SimpleType","TestContextService","TestHelpers","UrlParser","VisitResult","acquireReleaseResource","causeToError","contextFromScope","createJsonPath","findAnnotation","findNode","findProperty","fromEffectValidationPath","getAnnotation","getDiscriminatedType","getDiscriminatingProps","getField","getParamKeyAnnotation","getSimpleType","isArrayType","isDiscriminatedUnion","isJsonPath","isLiteralUnion","isOption","isSimpleType","mapAst","promiseWithCauseCapture","runAndForwardErrors","splitJsonPath","throwCause","unwrapExit","visit"],"entryPoint":"src/index.ts","inputs":{"src/ast.ts":{"bytesInOutput":9374},"src/index.ts":{"bytesInOutput":0},"src/jsonPath.ts":{"bytesInOutput":1883},"src/url.ts":{"bytesInOutput":1693},"src/context.ts":{"bytesInOutput":378},"src/errors.ts":{"bytesInOutput":3847},"src/testing.ts":{"bytesInOutput":926},"src/resource.ts":{"bytesInOutput":370}},"bytes":19307}}}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/ast.ts
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import * as Function from "effect/Function";
|
|
5
|
+
import * as Option from "effect/Option";
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
6
8
|
import { invariant } from "@dxos/invariant";
|
|
7
9
|
import { isNonNullable } from "@dxos/util";
|
|
8
10
|
var __dxlog_file = "/__w/dxos/dxos/packages/common/effect/src/ast.ts";
|
|
11
|
+
var isTupleType2 = (node) => {
|
|
12
|
+
return SchemaAST.isTupleType(node) && node.elements.length > 0;
|
|
13
|
+
};
|
|
9
14
|
var getSimpleType = (node) => {
|
|
10
|
-
if (SchemaAST.isDeclaration(node) || SchemaAST.isObjectKeyword(node) || SchemaAST.isTypeLiteral(node) ||
|
|
15
|
+
if (SchemaAST.isDeclaration(node) || SchemaAST.isObjectKeyword(node) || SchemaAST.isTypeLiteral(node) || // TODO(wittjosiah): Tuples are actually arrays.
|
|
16
|
+
isTupleType2(node) || isDiscriminatedUnion(node)) {
|
|
11
17
|
return "object";
|
|
12
18
|
}
|
|
13
19
|
if (SchemaAST.isStringKeyword(node)) {
|
|
@@ -48,12 +54,12 @@ var isSimpleType = (node) => !!getSimpleType(node);
|
|
|
48
54
|
}
|
|
49
55
|
};
|
|
50
56
|
})(SimpleType || (SimpleType = {}));
|
|
51
|
-
var VisitResult = /* @__PURE__ */ function(VisitResult2) {
|
|
57
|
+
var VisitResult = /* @__PURE__ */ (function(VisitResult2) {
|
|
52
58
|
VisitResult2[VisitResult2["CONTINUE"] = 0] = "CONTINUE";
|
|
53
59
|
VisitResult2[VisitResult2["SKIP"] = 1] = "SKIP";
|
|
54
60
|
VisitResult2[VisitResult2["EXIT"] = 2] = "EXIT";
|
|
55
61
|
return VisitResult2;
|
|
56
|
-
}({});
|
|
62
|
+
})({});
|
|
57
63
|
var defaultTest = isSimpleType;
|
|
58
64
|
var visit = (node, testOrVisitor, visitor) => {
|
|
59
65
|
if (!visitor) {
|
|
@@ -63,8 +69,8 @@ var visit = (node, testOrVisitor, visitor) => {
|
|
|
63
69
|
}
|
|
64
70
|
};
|
|
65
71
|
var visitNode = (node, test, visitor, path = [], depth = 0) => {
|
|
66
|
-
const
|
|
67
|
-
const result =
|
|
72
|
+
const $result = test?.(node, path, depth);
|
|
73
|
+
const result = $result === void 0 ? 0 : typeof $result === "boolean" ? $result ? 0 : 1 : $result;
|
|
68
74
|
if (result === 2) {
|
|
69
75
|
return result;
|
|
70
76
|
}
|
|
@@ -125,12 +131,13 @@ var findNode = (node, test) => {
|
|
|
125
131
|
}
|
|
126
132
|
}
|
|
127
133
|
} else if (SchemaAST.isUnion(node)) {
|
|
128
|
-
if (
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
+
if (isLiteralUnion(node)) {
|
|
135
|
+
return void 0;
|
|
136
|
+
}
|
|
137
|
+
for (const type of node.types) {
|
|
138
|
+
const child = findNode(type, test);
|
|
139
|
+
if (child) {
|
|
140
|
+
return child;
|
|
134
141
|
}
|
|
135
142
|
}
|
|
136
143
|
} else if (SchemaAST.isRefinement(node)) {
|
|
@@ -143,7 +150,7 @@ var findProperty = (schema, path) => {
|
|
|
143
150
|
const typeNode = findNode(node, SchemaAST.isTypeLiteral);
|
|
144
151
|
invariant(typeNode, void 0, {
|
|
145
152
|
F: __dxlog_file,
|
|
146
|
-
L:
|
|
153
|
+
L: 259,
|
|
147
154
|
S: void 0,
|
|
148
155
|
A: [
|
|
149
156
|
"typeNode",
|
|
@@ -168,16 +175,16 @@ var defaultAnnotations = {
|
|
|
168
175
|
["NumberKeyword"]: SchemaAST.numberKeyword,
|
|
169
176
|
["BooleanKeyword"]: SchemaAST.booleanKeyword
|
|
170
177
|
};
|
|
171
|
-
var
|
|
172
|
-
const id = pipe(SchemaAST.getIdentifierAnnotation(node), Option.getOrUndefined);
|
|
173
|
-
const value = pipe(SchemaAST.getAnnotation(annotationId)(node), Option.getOrUndefined);
|
|
178
|
+
var getAnnotation2 = (annotationId, noDefault = true) => (node) => {
|
|
179
|
+
const id = Function.pipe(SchemaAST.getIdentifierAnnotation(node), Option.getOrUndefined);
|
|
180
|
+
const value = Function.pipe(SchemaAST.getAnnotation(annotationId)(node), Option.getOrUndefined);
|
|
174
181
|
if (noDefault && (value === defaultAnnotations[node._tag]?.annotations[annotationId] || value === id)) {
|
|
175
182
|
return void 0;
|
|
176
183
|
}
|
|
177
184
|
return value;
|
|
178
185
|
};
|
|
179
186
|
var findAnnotation = (node, annotationId, noDefault = true) => {
|
|
180
|
-
const getAnnotationById =
|
|
187
|
+
const getAnnotationById = getAnnotation2(annotationId, noDefault);
|
|
181
188
|
const getBaseAnnotation = (node2) => {
|
|
182
189
|
const value = getAnnotationById(node2);
|
|
183
190
|
if (value !== void 0) {
|
|
@@ -203,7 +210,7 @@ var isDiscriminatedUnion = (node) => {
|
|
|
203
210
|
var getDiscriminatingProps = (node) => {
|
|
204
211
|
invariant(SchemaAST.isUnion(node), void 0, {
|
|
205
212
|
F: __dxlog_file,
|
|
206
|
-
L:
|
|
213
|
+
L: 356,
|
|
207
214
|
S: void 0,
|
|
208
215
|
A: [
|
|
209
216
|
"SchemaAST.isUnion(node)",
|
|
@@ -221,7 +228,7 @@ var getDiscriminatingProps = (node) => {
|
|
|
221
228
|
var getDiscriminatedType = (node, value = {}) => {
|
|
222
229
|
invariant(SchemaAST.isUnion(node), void 0, {
|
|
223
230
|
F: __dxlog_file,
|
|
224
|
-
L:
|
|
231
|
+
L: 380,
|
|
225
232
|
S: void 0,
|
|
226
233
|
A: [
|
|
227
234
|
"SchemaAST.isUnion(node)",
|
|
@@ -230,7 +237,7 @@ var getDiscriminatedType = (node, value = {}) => {
|
|
|
230
237
|
});
|
|
231
238
|
invariant(value, void 0, {
|
|
232
239
|
F: __dxlog_file,
|
|
233
|
-
L:
|
|
240
|
+
L: 381,
|
|
234
241
|
S: void 0,
|
|
235
242
|
A: [
|
|
236
243
|
"value",
|
|
@@ -245,7 +252,7 @@ var getDiscriminatedType = (node, value = {}) => {
|
|
|
245
252
|
const match = SchemaAST.getPropertySignatures(type).filter((prop) => props?.includes(prop.name.toString())).every((prop) => {
|
|
246
253
|
invariant(SchemaAST.isLiteral(prop.type), void 0, {
|
|
247
254
|
F: __dxlog_file,
|
|
248
|
-
L:
|
|
255
|
+
L: 392,
|
|
249
256
|
S: void 0,
|
|
250
257
|
A: [
|
|
251
258
|
"SchemaAST.isLiteral(prop.type)",
|
|
@@ -263,7 +270,7 @@ var getDiscriminatedType = (node, value = {}) => {
|
|
|
263
270
|
const literal = SchemaAST.getPropertySignatures(type).find((p) => p.name.toString() === prop);
|
|
264
271
|
invariant(SchemaAST.isLiteral(literal.type), void 0, {
|
|
265
272
|
F: __dxlog_file,
|
|
266
|
-
L:
|
|
273
|
+
L: 410,
|
|
267
274
|
S: void 0,
|
|
268
275
|
A: [
|
|
269
276
|
"SchemaAST.isLiteral(literal.type)",
|
|
@@ -283,7 +290,7 @@ var getDiscriminatedType = (node, value = {}) => {
|
|
|
283
290
|
var mapAst = (ast, f) => {
|
|
284
291
|
switch (ast._tag) {
|
|
285
292
|
case "TypeLiteral": {
|
|
286
|
-
return new SchemaAST.TypeLiteral(ast.propertySignatures.map((prop) => new SchemaAST.PropertySignature(prop.name, f(prop.type, prop.name), prop.isOptional, prop.isReadonly, prop.annotations)), ast.indexSignatures);
|
|
293
|
+
return new SchemaAST.TypeLiteral(ast.propertySignatures.map((prop) => new SchemaAST.PropertySignature(prop.name, f(prop.type, prop.name), prop.isOptional, prop.isReadonly, prop.annotations)), ast.indexSignatures, ast.annotations);
|
|
287
294
|
}
|
|
288
295
|
case "Union": {
|
|
289
296
|
return SchemaAST.Union.make(ast.types.map(f), ast.annotations);
|
|
@@ -301,12 +308,13 @@ var mapAst = (ast, f) => {
|
|
|
301
308
|
}
|
|
302
309
|
};
|
|
303
310
|
var isArrayType = (node) => {
|
|
304
|
-
return SchemaAST.isTupleType(node) || SchemaAST.isUnion(node) && node.types.some(isArrayType) && node.types.some(isUndefinedKeyword) && node.types.length === 2;
|
|
311
|
+
return SchemaAST.isTupleType(node) || SchemaAST.isUnion(node) && node.types.some(isArrayType) && node.types.some(SchemaAST.isUndefinedKeyword) && node.types.length === 2;
|
|
305
312
|
};
|
|
306
313
|
var SimpleType;
|
|
307
314
|
|
|
308
315
|
// src/jsonPath.ts
|
|
309
|
-
import
|
|
316
|
+
import * as Option2 from "effect/Option";
|
|
317
|
+
import * as Schema2 from "effect/Schema";
|
|
310
318
|
import { JSONPath } from "jsonpath-plus";
|
|
311
319
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
312
320
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/effect/src/jsonPath.ts";
|
|
@@ -332,7 +340,7 @@ var createJsonPath = (path) => {
|
|
|
332
340
|
}).join("");
|
|
333
341
|
invariant2(isJsonPath(candidatePath), `Invalid JsonPath: ${candidatePath}`, {
|
|
334
342
|
F: __dxlog_file2,
|
|
335
|
-
L:
|
|
343
|
+
L: 64,
|
|
336
344
|
S: void 0,
|
|
337
345
|
A: [
|
|
338
346
|
"isJsonPath(candidatePath)",
|
|
@@ -345,7 +353,7 @@ var fromEffectValidationPath = (effectPath) => {
|
|
|
345
353
|
const jsonPath = effectPath.replace(/\.\[(\d+)\]/g, "[$1]");
|
|
346
354
|
invariant2(isJsonPath(jsonPath), `Invalid JsonPath: ${jsonPath}`, {
|
|
347
355
|
F: __dxlog_file2,
|
|
348
|
-
L:
|
|
356
|
+
L: 75,
|
|
349
357
|
S: void 0,
|
|
350
358
|
A: [
|
|
351
359
|
"isJsonPath(jsonPath)",
|
|
@@ -368,7 +376,9 @@ var getField = (object, path) => {
|
|
|
368
376
|
};
|
|
369
377
|
|
|
370
378
|
// src/url.ts
|
|
371
|
-
import
|
|
379
|
+
import * as Function2 from "effect/Function";
|
|
380
|
+
import * as Option3 from "effect/Option";
|
|
381
|
+
import * as SchemaAST2 from "effect/SchemaAST";
|
|
372
382
|
import { decamelize } from "@dxos/util";
|
|
373
383
|
var ParamKeyAnnotationId = Symbol.for("@dxos/schema/annotation/ParamKey");
|
|
374
384
|
var getParamKeyAnnotation = SchemaAST2.getAnnotation(ParamKeyAnnotationId);
|
|
@@ -376,6 +386,7 @@ var ParamKeyAnnotation = (value) => (self) => self.annotations({
|
|
|
376
386
|
[ParamKeyAnnotationId]: value
|
|
377
387
|
});
|
|
378
388
|
var UrlParser = class {
|
|
389
|
+
_schema;
|
|
379
390
|
constructor(_schema) {
|
|
380
391
|
this._schema = _schema;
|
|
381
392
|
}
|
|
@@ -410,7 +421,7 @@ var UrlParser = class {
|
|
|
410
421
|
if (value !== void 0) {
|
|
411
422
|
const field = this._schema.fields[key];
|
|
412
423
|
if (field) {
|
|
413
|
-
const { key: serializedKey } =
|
|
424
|
+
const { key: serializedKey } = Function2.pipe(getParamKeyAnnotation(field.ast), Option3.getOrElse(() => ({
|
|
414
425
|
key: decamelize(key)
|
|
415
426
|
})));
|
|
416
427
|
url.searchParams.set(serializedKey, String(value));
|
|
@@ -422,21 +433,27 @@ var UrlParser = class {
|
|
|
422
433
|
};
|
|
423
434
|
|
|
424
435
|
// src/context.ts
|
|
425
|
-
import
|
|
436
|
+
import * as Effect from "effect/Effect";
|
|
426
437
|
import { Context } from "@dxos/context";
|
|
427
438
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/common/effect/src/context.ts";
|
|
428
439
|
var contextFromScope = () => Effect.gen(function* () {
|
|
429
440
|
const ctx = new Context(void 0, {
|
|
430
441
|
F: __dxlog_file3,
|
|
431
|
-
L:
|
|
442
|
+
L: 13
|
|
432
443
|
});
|
|
433
444
|
yield* Effect.addFinalizer(() => Effect.promise(() => ctx.dispose()));
|
|
434
445
|
return ctx;
|
|
435
446
|
});
|
|
436
447
|
|
|
437
448
|
// src/errors.ts
|
|
438
|
-
import
|
|
449
|
+
import * as Cause from "effect/Cause";
|
|
450
|
+
import * as Chunk from "effect/Chunk";
|
|
451
|
+
import * as Effect2 from "effect/Effect";
|
|
452
|
+
import * as Exit from "effect/Exit";
|
|
453
|
+
import * as GlobalValue from "effect/GlobalValue";
|
|
454
|
+
import * as Option4 from "effect/Option";
|
|
439
455
|
var spanSymbol = Symbol.for("effect/SpanAnnotation");
|
|
456
|
+
var originalSymbol = Symbol.for("effect/OriginalAnnotation");
|
|
440
457
|
var spanToTrace = GlobalValue.globalValue("effect/Tracer/spanToTrace", () => /* @__PURE__ */ new WeakMap());
|
|
441
458
|
var locationRegex = /\((.*)\)/g;
|
|
442
459
|
var prettyErrorStack = (error, appendStacks = []) => {
|
|
@@ -490,26 +507,29 @@ var prettyErrorStack = (error, appendStacks = []) => {
|
|
|
490
507
|
}
|
|
491
508
|
}
|
|
492
509
|
out.push(...appendStacks);
|
|
510
|
+
if (error[originalSymbol]) {
|
|
511
|
+
error = error[originalSymbol];
|
|
512
|
+
}
|
|
513
|
+
if (error.cause) {
|
|
514
|
+
error.cause = prettyErrorStack(error.cause);
|
|
515
|
+
}
|
|
493
516
|
Object.defineProperty(error, "stack", {
|
|
494
517
|
value: out.join("\n"),
|
|
495
518
|
writable: true,
|
|
496
519
|
enumerable: false,
|
|
497
520
|
configurable: true
|
|
498
521
|
});
|
|
522
|
+
return error;
|
|
499
523
|
};
|
|
500
|
-
var
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
if (Cause.isEmpty(exit.cause)) {
|
|
506
|
-
throw new Error("Fiber failed without a cause");
|
|
507
|
-
} else if (Cause.isInterrupted(exit.cause)) {
|
|
508
|
-
throw new Error("Fiber was interrupted");
|
|
524
|
+
var causeToError = (cause) => {
|
|
525
|
+
if (Cause.isEmpty(cause)) {
|
|
526
|
+
return new Error("Fiber failed without a cause");
|
|
527
|
+
} else if (Cause.isInterruptedOnly(cause)) {
|
|
528
|
+
return new Error("Fiber was interrupted");
|
|
509
529
|
} else {
|
|
510
530
|
const errors = [
|
|
511
|
-
...Chunk.toArray(Cause.failures(
|
|
512
|
-
...Chunk.toArray(Cause.defects(
|
|
531
|
+
...Chunk.toArray(Cause.failures(cause)),
|
|
532
|
+
...Chunk.toArray(Cause.defects(cause))
|
|
513
533
|
];
|
|
514
534
|
const getStackFrames = () => {
|
|
515
535
|
const o = {};
|
|
@@ -517,30 +537,98 @@ var runAndForwardErrors = async (effect, options) => {
|
|
|
517
537
|
return o.stack.split("\n").slice(1);
|
|
518
538
|
};
|
|
519
539
|
const stackFrames = getStackFrames();
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
if (errors.length === 1) {
|
|
524
|
-
throw errors[0];
|
|
540
|
+
const newErrors = errors.map((error) => prettyErrorStack(error, stackFrames));
|
|
541
|
+
if (newErrors.length === 1) {
|
|
542
|
+
return newErrors[0];
|
|
525
543
|
} else {
|
|
526
|
-
|
|
544
|
+
return new AggregateError(newErrors);
|
|
527
545
|
}
|
|
528
546
|
}
|
|
529
547
|
};
|
|
548
|
+
var throwCause = (cause) => {
|
|
549
|
+
throw causeToError(cause);
|
|
550
|
+
};
|
|
551
|
+
var unwrapExit = (exit) => {
|
|
552
|
+
if (Exit.isSuccess(exit)) {
|
|
553
|
+
return exit.value;
|
|
554
|
+
}
|
|
555
|
+
return throwCause(exit.cause);
|
|
556
|
+
};
|
|
557
|
+
var runAndForwardErrors = async (effect, options) => {
|
|
558
|
+
const exit = await Effect2.runPromiseExit(effect, options);
|
|
559
|
+
return unwrapExit(exit);
|
|
560
|
+
};
|
|
561
|
+
var promiseWithCauseCapture = (evaluate) => Effect2.promise(async (signal) => {
|
|
562
|
+
try {
|
|
563
|
+
const result = await evaluate(signal);
|
|
564
|
+
return Effect2.succeed(result);
|
|
565
|
+
} catch (err) {
|
|
566
|
+
return Effect2.die(err);
|
|
567
|
+
}
|
|
568
|
+
}).pipe(Effect2.flatten);
|
|
569
|
+
|
|
570
|
+
// src/testing.ts
|
|
571
|
+
import * as Context2 from "effect/Context";
|
|
572
|
+
import * as Effect3 from "effect/Effect";
|
|
573
|
+
(function(TestHelpers2) {
|
|
574
|
+
TestHelpers2.runIf = (condition) => (effect, ctx) => Effect3.gen(function* () {
|
|
575
|
+
if (!condition) {
|
|
576
|
+
ctx.skip();
|
|
577
|
+
} else {
|
|
578
|
+
return yield* effect;
|
|
579
|
+
}
|
|
580
|
+
});
|
|
581
|
+
TestHelpers2.skipIf = (condition) => (effect, ctx) => Effect3.gen(function* () {
|
|
582
|
+
if (condition) {
|
|
583
|
+
ctx.skip();
|
|
584
|
+
} else {
|
|
585
|
+
return yield* effect;
|
|
586
|
+
}
|
|
587
|
+
});
|
|
588
|
+
TestHelpers2.taggedTest = (tag) => (effect, ctx) => Effect3.gen(function* () {
|
|
589
|
+
if (!process.env.DX_TEST_TAGS?.includes(tag)) {
|
|
590
|
+
ctx.skip();
|
|
591
|
+
} else {
|
|
592
|
+
return yield* effect;
|
|
593
|
+
}
|
|
594
|
+
});
|
|
595
|
+
TestHelpers2.provideTestContext = (effect, ctx) => Effect3.provideService(effect, TestContextService, ctx);
|
|
596
|
+
})(TestHelpers || (TestHelpers = {}));
|
|
597
|
+
var TestContextService = class extends Context2.Tag("@dxos/effect/TestContextService")() {
|
|
598
|
+
};
|
|
599
|
+
var TestHelpers;
|
|
600
|
+
|
|
601
|
+
// src/resource.ts
|
|
602
|
+
import * as Effect4 from "effect/Effect";
|
|
603
|
+
var acquireReleaseResource = (getResource) => Effect4.acquireRelease(Effect4.gen(function* () {
|
|
604
|
+
const resource = getResource();
|
|
605
|
+
yield* Effect4.promise(async () => {
|
|
606
|
+
resource.open?.();
|
|
607
|
+
return void 0;
|
|
608
|
+
});
|
|
609
|
+
return resource;
|
|
610
|
+
}), (resource) => Effect4.promise(async () => {
|
|
611
|
+
resource.close?.();
|
|
612
|
+
return void 0;
|
|
613
|
+
}));
|
|
530
614
|
export {
|
|
531
615
|
JsonPath,
|
|
532
616
|
JsonProp,
|
|
533
617
|
ParamKeyAnnotation,
|
|
534
618
|
SimpleType,
|
|
619
|
+
TestContextService,
|
|
620
|
+
TestHelpers,
|
|
535
621
|
UrlParser,
|
|
536
622
|
VisitResult,
|
|
623
|
+
acquireReleaseResource,
|
|
624
|
+
causeToError,
|
|
537
625
|
contextFromScope,
|
|
538
626
|
createJsonPath,
|
|
539
627
|
findAnnotation,
|
|
540
628
|
findNode,
|
|
541
629
|
findProperty,
|
|
542
630
|
fromEffectValidationPath,
|
|
543
|
-
getAnnotation,
|
|
631
|
+
getAnnotation2 as getAnnotation,
|
|
544
632
|
getDiscriminatedType,
|
|
545
633
|
getDiscriminatingProps,
|
|
546
634
|
getField,
|
|
@@ -553,8 +641,11 @@ export {
|
|
|
553
641
|
isOption,
|
|
554
642
|
isSimpleType,
|
|
555
643
|
mapAst,
|
|
644
|
+
promiseWithCauseCapture,
|
|
556
645
|
runAndForwardErrors,
|
|
557
646
|
splitJsonPath,
|
|
647
|
+
throwCause,
|
|
648
|
+
unwrapExit,
|
|
558
649
|
visit
|
|
559
650
|
};
|
|
560
651
|
//# sourceMappingURL=index.mjs.map
|