effect-mongodb 0.4.1 → 0.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.
Files changed (71) hide show
  1. package/README.md +19 -0
  2. package/dist/cjs/AggregationCursor.js +4 -4
  3. package/dist/cjs/AggregationCursor.js.map +1 -1
  4. package/dist/cjs/Collection.js +24 -22
  5. package/dist/cjs/Collection.js.map +1 -1
  6. package/dist/cjs/Db.js +2 -2
  7. package/dist/cjs/Db.js.map +1 -1
  8. package/dist/cjs/DocumentAggregationCursor.js +4 -4
  9. package/dist/cjs/DocumentAggregationCursor.js.map +1 -1
  10. package/dist/cjs/DocumentCollection.js +24 -22
  11. package/dist/cjs/DocumentCollection.js.map +1 -1
  12. package/dist/cjs/DocumentFindCursor.js +27 -11
  13. package/dist/cjs/DocumentFindCursor.js.map +1 -1
  14. package/dist/cjs/FindCursor.js +33 -17
  15. package/dist/cjs/FindCursor.js.map +1 -1
  16. package/dist/cjs/ListCollectionsCursor.js +4 -4
  17. package/dist/cjs/ListCollectionsCursor.js.map +1 -1
  18. package/dist/cjs/MongoClient.js +3 -3
  19. package/dist/cjs/MongoClient.js.map +1 -1
  20. package/dist/cjs/internal/mongo-operation.js +18 -0
  21. package/dist/cjs/internal/mongo-operation.js.map +1 -0
  22. package/dist/cjs/internal/tracing.js +49 -0
  23. package/dist/cjs/internal/tracing.js.map +1 -0
  24. package/dist/cjs/internal/version.js +1 -1
  25. package/dist/dts/Collection.d.ts.map +1 -1
  26. package/dist/dts/DocumentCollection.d.ts.map +1 -1
  27. package/dist/dts/DocumentFindCursor.d.ts +4 -2
  28. package/dist/dts/DocumentFindCursor.d.ts.map +1 -1
  29. package/dist/dts/FindCursor.d.ts +4 -2
  30. package/dist/dts/FindCursor.d.ts.map +1 -1
  31. package/dist/dts/MongoClient.d.ts.map +1 -1
  32. package/dist/dts/internal/mongo-operation.d.ts +6 -0
  33. package/dist/dts/internal/mongo-operation.d.ts.map +1 -0
  34. package/dist/dts/internal/tracing.d.ts +6 -0
  35. package/dist/dts/internal/tracing.d.ts.map +1 -0
  36. package/dist/esm/AggregationCursor.js +4 -4
  37. package/dist/esm/AggregationCursor.js.map +1 -1
  38. package/dist/esm/Collection.js +24 -22
  39. package/dist/esm/Collection.js.map +1 -1
  40. package/dist/esm/Db.js +2 -2
  41. package/dist/esm/Db.js.map +1 -1
  42. package/dist/esm/DocumentAggregationCursor.js +4 -4
  43. package/dist/esm/DocumentAggregationCursor.js.map +1 -1
  44. package/dist/esm/DocumentCollection.js +24 -22
  45. package/dist/esm/DocumentCollection.js.map +1 -1
  46. package/dist/esm/DocumentFindCursor.js +27 -11
  47. package/dist/esm/DocumentFindCursor.js.map +1 -1
  48. package/dist/esm/FindCursor.js +31 -16
  49. package/dist/esm/FindCursor.js.map +1 -1
  50. package/dist/esm/ListCollectionsCursor.js +4 -4
  51. package/dist/esm/ListCollectionsCursor.js.map +1 -1
  52. package/dist/esm/MongoClient.js +3 -3
  53. package/dist/esm/MongoClient.js.map +1 -1
  54. package/dist/esm/internal/mongo-operation.js +8 -0
  55. package/dist/esm/internal/mongo-operation.js.map +1 -0
  56. package/dist/esm/internal/tracing.js +39 -0
  57. package/dist/esm/internal/tracing.js.map +1 -0
  58. package/dist/esm/internal/version.js +1 -1
  59. package/package.json +1 -1
  60. package/src/AggregationCursor.ts +4 -4
  61. package/src/Collection.ts +24 -26
  62. package/src/Db.ts +2 -2
  63. package/src/DocumentAggregationCursor.ts +4 -4
  64. package/src/DocumentCollection.ts +27 -31
  65. package/src/DocumentFindCursor.ts +28 -15
  66. package/src/FindCursor.ts +35 -18
  67. package/src/ListCollectionsCursor.ts +4 -4
  68. package/src/MongoClient.ts +3 -5
  69. package/src/internal/mongo-operation.ts +22 -0
  70. package/src/internal/tracing.ts +47 -0
  71. package/src/internal/version.ts +1 -1
@@ -8,7 +8,7 @@ import { pipeArguments } from "effect/Pipeable";
8
8
  import * as Schema from "effect/Schema";
9
9
  import * as Stream from "effect/Stream";
10
10
  import * as Tuple from "effect/Tuple";
11
- import { mongoErrorOrDie } from "./internal/mongo-error.js";
11
+ import { mongoOperation, mongoStreamOperation } from "./internal/mongo-operation.js";
12
12
  import * as MongoError from "./MongoError.js";
13
13
  /** @internal */
14
14
  export class FindCursorImpl extends /*#__PURE__*/Data.TaggedClass("FindCursor") {
@@ -17,44 +17,59 @@ export class FindCursorImpl extends /*#__PURE__*/Data.TaggedClass("FindCursor")
17
17
  }
18
18
  }
19
19
  export const filter = /*#__PURE__*/F.dual(args => isFindCursor(args[0]), (cursor, filter) => new FindCursorImpl({
20
- cursor: cursor.cursor.filter(filter),
21
- schema: cursor.schema
20
+ ...cursor,
21
+ filter
22
22
  }));
23
23
  export const project = /*#__PURE__*/F.dual(args => isFindCursor(args[0]), (cursor, newSchema, value) => new FindCursorImpl({
24
- cursor: cursor.cursor.project(value),
25
- schema: newSchema
24
+ ...cursor,
25
+ schema: newSchema,
26
+ options: {
27
+ ...cursor.options,
28
+ projection: value
29
+ }
26
30
  }));
27
31
  export const sort = /*#__PURE__*/F.dual(args => isFindCursor(args[0]), (cursor, sort, direction) => new FindCursorImpl({
28
- cursor: cursor.cursor.sort(sort, direction),
29
- schema: cursor.schema
32
+ ...cursor,
33
+ options: {
34
+ ...cursor.options,
35
+ sort: sortOption(sort, direction)
36
+ }
30
37
  }));
31
38
  export const limit = /*#__PURE__*/F.dual(args => isFindCursor(args[0]), (cursor, value) => new FindCursorImpl({
32
- cursor: cursor.cursor.limit(value),
33
- schema: cursor.schema
39
+ ...cursor,
40
+ options: {
41
+ ...cursor.options,
42
+ limit: value
43
+ }
34
44
  }));
35
45
  export const toArray = cursor => {
36
46
  const decode = Schema.decodeUnknown(cursor.schema);
37
- return Effect.promise(() => cursor.cursor.toArray()).pipe(Effect.catchAllDefect(mongoErrorOrDie(errorSource(cursor, "toArray"))), Effect.flatMap(Effect.forEach(x => decode(x))));
47
+ return Effect.promise(() => nativeCursor(cursor).toArray()).pipe(mongoOperation(errorSource(cursor, "toArray")), Effect.flatMap(Effect.forEach(x => decode(x))));
38
48
  };
39
49
  export const toArrayEither = cursor => {
40
50
  const decode = Schema.decodeUnknown(cursor.schema);
41
- return Effect.promise(() => cursor.cursor.toArray()).pipe(Effect.catchAllDefect(mongoErrorOrDie(errorSource(cursor, "toArrayEither"))), Effect.flatMap(Effect.forEach(x => F.pipe(decode(x), Effect.mapError(error => Tuple.make(x, error)), Effect.either))));
51
+ return Effect.promise(() => nativeCursor(cursor).toArray()).pipe(mongoOperation(errorSource(cursor, "toArrayEither")), Effect.flatMap(Effect.forEach(x => F.pipe(decode(x), Effect.mapError(error => Tuple.make(x, error)), Effect.either))));
42
52
  };
43
53
  export const toStream = cursor => {
44
54
  const decode = Schema.decodeUnknown(cursor.schema);
45
- return F.pipe(Stream.fromAsyncIterable(cursor.cursor, F.identity), Stream.catchAll(mongoErrorOrDie(errorSource(cursor, "toStream"))), Stream.mapEffect(x => decode(x)));
55
+ return F.pipe(Stream.suspend(() => Stream.fromAsyncIterable(nativeCursor(cursor), F.identity)), mongoStreamOperation(errorSource(cursor, "toStream")), Stream.mapEffect(x => decode(x)));
46
56
  };
47
57
  export const toStreamEither = cursor => {
48
58
  const decode = Schema.decodeUnknown(cursor.schema);
49
- return F.pipe(Stream.fromAsyncIterable(cursor.cursor, F.identity), Stream.catchAll(mongoErrorOrDie(errorSource(cursor, "toStreamEither"))), Stream.mapEffect(x => F.pipe(
59
+ return F.pipe(Stream.suspend(() => Stream.fromAsyncIterable(nativeCursor(cursor), F.identity)), mongoStreamOperation(errorSource(cursor, "toStreamEither")), Stream.mapEffect(x => F.pipe(
50
60
  // keep new line
51
61
  decode(x), Effect.mapError(error => Tuple.make(x, error)), Effect.either)));
52
62
  };
63
+ /** @internal */
64
+ export const sortOption = (sort, direction) => typeof sort === "string" && direction !== undefined ? {
65
+ [sort]: direction
66
+ } : sort;
67
+ const nativeCursor = cursor => cursor.collection.find(cursor.filter, cursor.options);
53
68
  const isFindCursor = x => x instanceof FindCursorImpl;
54
69
  const errorSource = (cursor, functionName) => new MongoError.CollectionErrorSource({
55
- module: FindCursorImpl.name,
70
+ module: "FindCursor",
56
71
  functionName,
57
- db: cursor.cursor.namespace.db,
58
- collection: cursor.cursor.namespace.collection ?? "NO_COLLECTION_NAME"
72
+ db: cursor.collection.dbName,
73
+ collection: cursor.collection.collectionName
59
74
  });
60
75
  //# sourceMappingURL=FindCursor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FindCursor.js","names":["Data","Effect","F","pipeArguments","Schema","Stream","Tuple","mongoErrorOrDie","MongoError","FindCursorImpl","TaggedClass","pipe","arguments","filter","dual","args","isFindCursor","cursor","schema","project","newSchema","value","sort","direction","limit","toArray","decode","decodeUnknown","promise","catchAllDefect","errorSource","flatMap","forEach","x","toArrayEither","mapError","error","make","either","toStream","fromAsyncIterable","identity","catchAll","mapEffect","toStreamEither","functionName","CollectionErrorSource","module","name","db","namespace","collection"],"sources":["../../src/FindCursor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FindCursor.js","names":["Data","Effect","F","pipeArguments","Schema","Stream","Tuple","mongoOperation","mongoStreamOperation","MongoError","FindCursorImpl","TaggedClass","pipe","arguments","filter","dual","args","isFindCursor","cursor","project","newSchema","value","schema","options","projection","sort","direction","sortOption","limit","toArray","decode","decodeUnknown","promise","nativeCursor","errorSource","flatMap","forEach","x","toArrayEither","mapError","error","make","either","toStream","suspend","fromAsyncIterable","identity","mapEffect","toStreamEither","undefined","collection","find","functionName","CollectionErrorSource","module","db","dbName","collectionName"],"sources":["../../src/FindCursor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ import * as Effect from "effect/Effect";
6
6
  import * as F from "effect/Function";
7
7
  import { pipeArguments } from "effect/Pipeable";
8
8
  import * as Stream from "effect/Stream";
9
- import { mongoErrorOrDie } from "./internal/mongo-error.js";
9
+ import { mongoOperation, mongoStreamOperation } from "./internal/mongo-operation.js";
10
10
  import * as MongoError from "./MongoError.js";
11
11
  /** @internal */
12
12
  export class ListCollectionsCursorImpl extends /*#__PURE__*/Data.TaggedClass("ListCollectionsCursor") {
@@ -14,10 +14,10 @@ export class ListCollectionsCursorImpl extends /*#__PURE__*/Data.TaggedClass("Li
14
14
  return pipeArguments(this, arguments);
15
15
  }
16
16
  }
17
- export const toArray = cursor => F.pipe(Effect.promise(() => cursor.cursor.toArray()), Effect.catchAllDefect(mongoErrorOrDie(errorSource(cursor, "toArray"))));
18
- export const toStream = cursor => F.pipe(Stream.fromAsyncIterable(cursor.cursor, F.identity), Stream.catchAll(mongoErrorOrDie(errorSource(cursor, "toStream"))));
17
+ export const toArray = cursor => F.pipe(Effect.promise(() => cursor.cursor.toArray()), mongoOperation(errorSource(cursor, "toArray")));
18
+ export const toStream = cursor => F.pipe(Stream.fromAsyncIterable(cursor.cursor, F.identity), mongoStreamOperation(errorSource(cursor, "toStream")));
19
19
  const errorSource = (cursor, functionName) => new MongoError.CollectionErrorSource({
20
- module: ListCollectionsCursorImpl.name,
20
+ module: "ListCollectionsCursor",
21
21
  functionName,
22
22
  db: cursor.cursor.namespace.db,
23
23
  collection: cursor.cursor.namespace.collection ?? "NO_COLLECTION_NAME"
@@ -1 +1 @@
1
- {"version":3,"file":"ListCollectionsCursor.js","names":["Data","Effect","F","pipeArguments","Stream","mongoErrorOrDie","MongoError","ListCollectionsCursorImpl","TaggedClass","pipe","arguments","toArray","cursor","promise","catchAllDefect","errorSource","toStream","fromAsyncIterable","identity","catchAll","functionName","CollectionErrorSource","module","name","db","namespace","collection"],"sources":["../../src/ListCollectionsCursor.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AAEpC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAKvC,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAiB7C;AACA,OAAM,MAAOC,yBAEX,sBAAQP,IAAI,CAACQ,WAAW,CAAC,uBAAuB,CAAiC;EACjFC,IAAIA,CAAA;IACF,OAAON,aAAa,CAAC,IAAI,EAAEO,SAAS,CAAC;EACvC;;AASF,OAAO,MAAMC,OAAO,GAClBC,MAAgC,IAEhCV,CAAC,CAACO,IAAI,CACJR,MAAM,CAACY,OAAO,CAAC,MAAMD,MAAM,CAACA,MAAM,CAACD,OAAO,EAAE,CAAC,EAC7CV,MAAM,CAACa,cAAc,CAACT,eAAe,CAACU,WAAW,CAACH,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CACvE;AAEH,OAAO,MAAMI,QAAQ,GACnBJ,MAAgC,IAEhCV,CAAC,CAACO,IAAI,CACJL,MAAM,CAACa,iBAAiB,CAACL,MAAM,CAACA,MAAM,EAAEV,CAAC,CAACgB,QAAQ,CAAC,EACnDd,MAAM,CAACe,QAAQ,CAACd,eAAe,CAACU,WAAW,CAACH,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAClE;AAEH,MAAMG,WAAW,GAAGA,CAACH,MAA6B,EAAEQ,YAAoB,KACtE,IAAId,UAAU,CAACe,qBAAqB,CAAC;EACnCC,MAAM,EAAEf,yBAAyB,CAACgB,IAAI;EACtCH,YAAY;EACZI,EAAE,EAAEZ,MAAM,CAACA,MAAM,CAACa,SAAS,CAACD,EAAE;EAC9BE,UAAU,EAAEd,MAAM,CAACA,MAAM,CAACa,SAAS,CAACC,UAAU,IAAI;CACnD,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ListCollectionsCursor.js","names":["Data","Effect","F","pipeArguments","Stream","mongoOperation","mongoStreamOperation","MongoError","ListCollectionsCursorImpl","TaggedClass","pipe","arguments","toArray","cursor","promise","errorSource","toStream","fromAsyncIterable","identity","functionName","CollectionErrorSource","module","db","namespace","collection"],"sources":["../../src/ListCollectionsCursor.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AAEpC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAKvC,SAASC,cAAc,EAAEC,oBAAoB,QAAQ,+BAA+B;AACpF,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAiB7C;AACA,OAAM,MAAOC,yBAEX,sBAAQR,IAAI,CAACS,WAAW,CAAC,uBAAuB,CAAiC;EACjFC,IAAIA,CAAA;IACF,OAAOP,aAAa,CAAC,IAAI,EAAEQ,SAAS,CAAC;EACvC;;AASF,OAAO,MAAMC,OAAO,GAClBC,MAAgC,IAEhCX,CAAC,CAACQ,IAAI,CACJT,MAAM,CAACa,OAAO,CAAC,MAAMD,MAAM,CAACA,MAAM,CAACD,OAAO,EAAE,CAAC,EAC7CP,cAAc,CAACU,WAAW,CAACF,MAAM,EAAE,SAAS,CAAC,CAAC,CAC/C;AAEH,OAAO,MAAMG,QAAQ,GACnBH,MAAgC,IAEhCX,CAAC,CAACQ,IAAI,CACJN,MAAM,CAACa,iBAAiB,CAACJ,MAAM,CAACA,MAAM,EAAEX,CAAC,CAACgB,QAAQ,CAAC,EACnDZ,oBAAoB,CAACS,WAAW,CAACF,MAAM,EAAE,UAAU,CAAC,CAAC,CACtD;AAEH,MAAME,WAAW,GAAGA,CAACF,MAA6B,EAAEM,YAAoB,KACtE,IAAIZ,UAAU,CAACa,qBAAqB,CAAC;EACnCC,MAAM,EAAE,uBAAuB;EAC/BF,YAAY;EACZG,EAAE,EAAET,MAAM,CAACA,MAAM,CAACU,SAAS,CAACD,EAAE;EAC9BE,UAAU,EAAEX,MAAM,CAACA,MAAM,CAACU,SAAS,CAACC,UAAU,IAAI;CACnD,CAAC","ignoreList":[]}
@@ -6,15 +6,15 @@ import * as Effect from "effect/Effect";
6
6
  import * as F from "effect/Function";
7
7
  import { MongoClient as MongoClient_ } from "mongodb";
8
8
  import * as Db from "./Db.js";
9
- import { mongoErrorOrDie } from "./internal/mongo-error.js";
9
+ import { mongoOperation } from "./internal/mongo-operation.js";
10
10
  import * as MongoError from "./MongoError.js";
11
11
  export class MongoClient extends /*#__PURE__*/Data.TaggedClass("MongoClient") {}
12
12
  export const connect = (url, options) => Effect.promise(() => MongoClient_.connect(url, options)).pipe(Effect.map(client => new MongoClient({
13
13
  client
14
- })), Effect.catchAllDefect(mongoErrorOrDie(errorSource(hostsFromUrl(url), "connect"))));
14
+ })), mongoOperation(errorSource(hostsFromUrl(url), "connect")));
15
15
  export const close = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), ({
16
16
  client
17
- }, force) => Effect.promise(() => client.close(force)).pipe(Effect.catchAllDefect(mongoErrorOrDie(errorSource(client.options.hosts.map(x => x.host ?? UNKNOWN_HOST), "close")))));
17
+ }, force) => Effect.promise(() => client.close(force)).pipe(mongoOperation(errorSource(client.options.hosts.map(x => x.host ?? UNKNOWN_HOST), "close"))));
18
18
  export const connectScoped = (url, options) => Effect.acquireRelease(connect(url, options), client => close(client, options?.forceClose).pipe(Effect.orDie));
19
19
  export const db = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), ({
20
20
  client
@@ -1 +1 @@
1
- {"version":3,"file":"MongoClient.js","names":["Data","Effect","F","MongoClient","MongoClient_","Db","mongoErrorOrDie","MongoError","TaggedClass","connect","url","options","promise","pipe","map","client","catchAllDefect","errorSource","hostsFromUrl","close","dual","args","isMongoClient","force","hosts","x","host","UNKNOWN_HOST","connectScoped","acquireRelease","forceClose","orDie","db","dbName","functionName","ClientErrorSource","module","SCHEME","CREDENTIALS","HOSTS","MONGO_CONNECTION_STRING","RegExp","source","match","split"],"sources":["../../src/MongoClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MongoClient.js","names":["Data","Effect","F","MongoClient","MongoClient_","Db","mongoOperation","MongoError","TaggedClass","connect","url","options","promise","pipe","map","client","errorSource","hostsFromUrl","close","dual","args","isMongoClient","force","hosts","x","host","UNKNOWN_HOST","connectScoped","acquireRelease","forceClose","orDie","db","dbName","functionName","ClientErrorSource","module","SCHEME","CREDENTIALS","HOSTS","MONGO_CONNECTION_STRING","RegExp","source","match","split"],"sources":["../../src/MongoClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as F from "effect/Function";
3
+ import * as Stream from "effect/Stream";
4
+ import { mongoErrorOrDie } from "./mongo-error.js";
5
+ import { withSpan, withSpanStream } from "./tracing.js";
6
+ export const mongoOperation = source => self => F.pipe(self, Effect.catchAllDefect(mongoErrorOrDie(source)), withSpan(source));
7
+ export const mongoStreamOperation = source => self => F.pipe(self, Stream.catchAll(mongoErrorOrDie(source)), withSpanStream(source));
8
+ //# sourceMappingURL=mongo-operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo-operation.js","names":["Effect","F","Stream","mongoErrorOrDie","withSpan","withSpanStream","mongoOperation","source","self","pipe","catchAllDefect","mongoStreamOperation","catchAll"],"sources":["../../../src/internal/mongo-operation.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AACpC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,SAASC,eAAe,QAAQ,kBAAkB;AAClD,SAASC,QAAQ,EAAEC,cAAc,QAAQ,cAAc;AAEvD,OAAO,MAAMC,cAAc,GACxBC,MAAmB,IAAeC,IAA4B,IAC7DP,CAAC,CAACQ,IAAI,CACJD,IAAI,EACJR,MAAM,CAACU,cAAc,CAACP,eAAe,CAACI,MAAM,CAAC,CAAC,EAC9CH,QAAQ,CAACG,MAAM,CAAC,CACjB;AAEL,OAAO,MAAMI,oBAAoB,GAC9BJ,MAAmB,IAAeC,IAA4B,IAC7DP,CAAC,CAACQ,IAAI,CACJD,IAAI,EACJN,MAAM,CAACU,QAAQ,CAACT,eAAe,CAACI,MAAM,CAAC,CAAC,EACxCF,cAAc,CAACE,MAAM,CAAC,CACvB","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as F from "effect/Function";
3
+ import * as Match from "effect/Match";
4
+ import * as Stream from "effect/Stream";
5
+ export const withSpan = source => self => Effect.withSpan(self, spanName(source), spanOptions(source));
6
+ export const withSpanStream = source => self => Stream.withSpan(self, spanName(source), spanOptions(source));
7
+ const spanName = source => `mongodb.${source.module}.${source.functionName}`;
8
+ const spanOptions = source => ({
9
+ kind: "client",
10
+ captureStackTrace: false,
11
+ attributes: {
12
+ "db.system.name": "mongodb",
13
+ "db.operation.name": source.functionName,
14
+ ...sourceAttributes(source)
15
+ }
16
+ });
17
+ const sourceAttributes = source => F.pipe(Match.value(source), Match.tag("ClientErrorSource", s => serverAttributes(s.hosts)), Match.tag("DbErrorSource", s => ({
18
+ "db.namespace": s.db
19
+ })), Match.tag("CollectionErrorSource", s => ({
20
+ "db.namespace": s.db,
21
+ "db.collection.name": s.collection
22
+ })), Match.exhaustive);
23
+ const serverAttributes = hosts => {
24
+ if (hosts.length !== 1) return {};
25
+ const [address, port] = splitHost(hosts[0]);
26
+ return port === undefined ? {
27
+ "server.address": address
28
+ } : {
29
+ "server.address": address,
30
+ "server.port": port
31
+ };
32
+ };
33
+ const splitHost = host => {
34
+ const separator = host.lastIndexOf(":");
35
+ if (separator === -1) return [host, undefined];
36
+ const port = Number(host.slice(separator + 1));
37
+ return Number.isInteger(port) ? [host.slice(0, separator), port] : [host, undefined];
38
+ };
39
+ //# sourceMappingURL=tracing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.js","names":["Effect","F","Match","Stream","withSpan","source","self","spanName","spanOptions","withSpanStream","module","functionName","kind","captureStackTrace","attributes","sourceAttributes","pipe","value","tag","s","serverAttributes","hosts","db","collection","exhaustive","length","address","port","splitHost","undefined","host","separator","lastIndexOf","Number","slice","isInteger"],"sources":["../../../src/internal/tracing.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AACpC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAIvC,OAAO,MAAMC,QAAQ,GAAIC,MAAmB,IAAeC,IAA4B,IACrFN,MAAM,CAACI,QAAQ,CAACE,IAAI,EAAEC,QAAQ,CAACF,MAAM,CAAC,EAAEG,WAAW,CAACH,MAAM,CAAC,CAAC;AAE9D,OAAO,MAAMI,cAAc,GACxBJ,MAAmB,IAAeC,IAA4B,IAC7DH,MAAM,CAACC,QAAQ,CAACE,IAAI,EAAEC,QAAQ,CAACF,MAAM,CAAC,EAAEG,WAAW,CAACH,MAAM,CAAC,CAAC;AAEhE,MAAME,QAAQ,GAAIF,MAAmB,IAAK,WAAWA,MAAM,CAACK,MAAM,IAAIL,MAAM,CAACM,YAAY,EAAE;AAE3F,MAAMH,WAAW,GAAIH,MAAmB,KAA0B;EAChEO,IAAI,EAAE,QAAQ;EACdC,iBAAiB,EAAE,KAAK;EACxBC,UAAU,EAAE;IACV,gBAAgB,EAAE,SAAS;IAC3B,mBAAmB,EAAET,MAAM,CAACM,YAAY;IACxC,GAAGI,gBAAgB,CAACV,MAAM;;CAE7B,CAAC;AAEF,MAAMU,gBAAgB,GAAIV,MAAmB,IAC3CJ,CAAC,CAACe,IAAI,CACJd,KAAK,CAACe,KAAK,CAACZ,MAAM,CAAC,EACnBH,KAAK,CAACgB,GAAG,CAAC,mBAAmB,EAAGC,CAAC,IAAKC,gBAAgB,CAACD,CAAC,CAACE,KAAK,CAAC,CAAC,EAChEnB,KAAK,CAACgB,GAAG,CAAC,eAAe,EAAGC,CAAC,KAAM;EAAE,cAAc,EAAEA,CAAC,CAACG;AAAE,CAAE,CAAC,CAAC,EAC7DpB,KAAK,CAACgB,GAAG,CAAC,uBAAuB,EAAGC,CAAC,KAAM;EAAE,cAAc,EAAEA,CAAC,CAACG,EAAE;EAAE,oBAAoB,EAAEH,CAAC,CAACI;AAAU,CAAE,CAAC,CAAC,EACzGrB,KAAK,CAACsB,UAAU,CACjB;AAEH,MAAMJ,gBAAgB,GAAIC,KAAoB,IAA6B;EACzE,IAAIA,KAAK,CAACI,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;EACjC,MAAM,CAACC,OAAO,EAAEC,IAAI,CAAC,GAAGC,SAAS,CAACP,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3C,OAAOM,IAAI,KAAKE,SAAS,GAAG;IAAE,gBAAgB,EAAEH;EAAO,CAAE,GAAG;IAAE,gBAAgB,EAAEA,OAAO;IAAE,aAAa,EAAEC;EAAI,CAAE;AAChH,CAAC;AAED,MAAMC,SAAS,GAAIE,IAAY,IAAiD;EAC9E,MAAMC,SAAS,GAAGD,IAAI,CAACE,WAAW,CAAC,GAAG,CAAC;EACvC,IAAID,SAAS,KAAK,CAAC,CAAC,EAAE,OAAO,CAACD,IAAI,EAAED,SAAS,CAAC;EAC9C,MAAMF,IAAI,GAAGM,MAAM,CAACH,IAAI,CAACI,KAAK,CAACH,SAAS,GAAG,CAAC,CAAC,CAAC;EAC9C,OAAOE,MAAM,CAACE,SAAS,CAACR,IAAI,CAAC,GAAG,CAACG,IAAI,CAACI,KAAK,CAAC,CAAC,EAAEH,SAAS,CAAC,EAAEJ,IAAI,CAAC,GAAG,CAACG,IAAI,EAAED,SAAS,CAAC;AACtF,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- let moduleVersion = "0.4.1";
1
+ let moduleVersion = "0.6.0";
2
2
  export const getCurrentVersion = () => moduleVersion;
3
3
  export const setCurrentVersion = version => {
4
4
  moduleVersion = version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-mongodb",
3
- "version": "0.4.1",
3
+ "version": "0.6.0",
4
4
  "description": "A MongoDB toolkit for Effect",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -10,7 +10,7 @@ import { pipeArguments } from "effect/Pipeable"
10
10
  import * as Schema from "effect/Schema"
11
11
  import * as Stream from "effect/Stream"
12
12
  import type { AggregationCursor as MongoAggregationCursor } from "mongodb"
13
- import { mongoErrorOrDie } from "./internal/mongo-error.js"
13
+ import { mongoOperation, mongoStreamOperation } from "./internal/mongo-operation.js"
14
14
  import * as MongoError from "./MongoError.js"
15
15
 
16
16
  interface AggregationCursorFields<A, I = A, R = never> {
@@ -37,7 +37,7 @@ export const toArray = <A, I, R>(
37
37
  ): Effect.Effect<Array<A>, MongoError.MongoError | ParseResult.ParseError, R> => {
38
38
  const decode = Schema.decodeUnknown(cursor.schema)
39
39
  return Effect.promise(() => cursor.cursor.toArray()).pipe(
40
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(cursor, "toArray"))),
40
+ mongoOperation(errorSource(cursor, "toArray")),
41
41
  Effect.flatMap(Effect.forEach((x) => decode(x)))
42
42
  )
43
43
  }
@@ -48,14 +48,14 @@ export const toStream = <A, I, R>(
48
48
  const decode = Schema.decodeUnknown(cursor.schema)
49
49
  return F.pipe(
50
50
  Stream.fromAsyncIterable(cursor.cursor, F.identity),
51
- Stream.catchAll(mongoErrorOrDie(errorSource(cursor, "toStream"))),
51
+ mongoStreamOperation(errorSource(cursor, "toStream")),
52
52
  Stream.mapEffect((x) => decode(x))
53
53
  )
54
54
  }
55
55
 
56
56
  const errorSource = <A, I, R>(cursor: AggregationCursor<A, I, R>, functionName: string) =>
57
57
  new MongoError.CollectionErrorSource({
58
- module: AggregationCursorImpl.name,
58
+ module: "AggregationCursor",
59
59
  functionName,
60
60
  db: cursor.cursor.namespace.db,
61
61
  collection: cursor.cursor.namespace.collection ?? "NO_COLLECTION_NAME"
package/src/Collection.ts CHANGED
@@ -44,7 +44,7 @@ import type { AnyBulkWriteOperation as AnyBulkWriteOperation_ } from "./internal
44
44
  import { encodeBulkWriteOperation } from "./internal/bulk-write-operation.js"
45
45
  import type { Filter as Filter_ } from "./internal/filter.js"
46
46
  import type { ModifyResult } from "./internal/modify-result.js"
47
- import { mongoErrorOrDie } from "./internal/mongo-error.js"
47
+ import { mongoOperation } from "./internal/mongo-operation.js"
48
48
  import * as SchemaExt from "./internal/schema.js"
49
49
  import * as MongoError from "./MongoError.js"
50
50
 
@@ -94,7 +94,9 @@ export const find: {
94
94
  options?: FindOptions
95
95
  ): FindCursor.FindCursor<A, I, R> =>
96
96
  new FindCursor.FindCursorImpl<A, I, R>({
97
- cursor: collection.collection.find(filter ?? {}, options),
97
+ collection: collection.collection,
98
+ filter: filter ?? {},
99
+ options: options ?? {},
98
100
  schema: collection.schema
99
101
  })
100
102
  )
@@ -119,7 +121,7 @@ export const findOne: {
119
121
  const value = yield* Effect.promise(() => collection.collection.findOne(filter, options))
120
122
  return yield* SchemaExt.decodeNullableDocument(collection.schema, value)
121
123
  }).pipe(
122
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "findOne")))
124
+ mongoOperation(errorSource(collection, "findOne"))
123
125
  )
124
126
  )
125
127
 
@@ -140,7 +142,7 @@ export const insertOne: {
140
142
  F.pipe(
141
143
  collection.encode(doc),
142
144
  Effect.flatMap((doc) => Effect.promise(() => collection.collection.insertOne(doc, options))),
143
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "insertOne")))
145
+ mongoOperation(errorSource(collection, "insertOne"))
144
146
  ))
145
147
 
146
148
  export const insertMany: {
@@ -161,7 +163,7 @@ export const insertMany: {
161
163
  docs,
162
164
  Effect.forEach((doc) => collection.encode(doc)),
163
165
  Effect.flatMap((docs) => Effect.promise(() => collection.collection.insertMany(docs, options))),
164
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "insertMany")))
166
+ mongoOperation(errorSource(collection, "insertMany"))
165
167
  )
166
168
  })
167
169
 
@@ -182,7 +184,7 @@ export const deleteOne: {
182
184
  options?: DeleteOptions
183
185
  ): Effect.Effect<DeleteResult, MongoError.MongoError, R> =>
184
186
  Effect.promise(() => collection.collection.deleteOne(filter, options)).pipe(
185
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "deleteOne")))
187
+ mongoOperation(errorSource(collection, "deleteOne"))
186
188
  )
187
189
  )
188
190
 
@@ -203,7 +205,7 @@ export const deleteMany: {
203
205
  options?: DeleteOptions
204
206
  ): Effect.Effect<DeleteResult, MongoError.MongoError, R> =>
205
207
  Effect.promise(() => collection.collection.deleteMany(filter, options)).pipe(
206
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "deleteMany")))
208
+ mongoOperation(errorSource(collection, "deleteMany"))
207
209
  )
208
210
  )
209
211
 
@@ -235,7 +237,7 @@ export const updateOne: {
235
237
  Array.isArray(update) ? [...update] : update as UpdateFilter<Document>,
236
238
  options
237
239
  )
238
- ).pipe(Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "updateOne"))))
240
+ ).pipe(mongoOperation(errorSource(collection, "updateOne")))
239
241
  )
240
242
 
241
243
  export const updateMany: {
@@ -266,7 +268,7 @@ export const updateMany: {
266
268
  Array.isArray(update) ? [...update] : update as UpdateFilter<Document>,
267
269
  options
268
270
  )
269
- ).pipe(Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "updateMany"))))
271
+ ).pipe(mongoOperation(errorSource(collection, "updateMany")))
270
272
  )
271
273
 
272
274
  export const replaceOne: {
@@ -300,7 +302,7 @@ export const replaceOne: {
300
302
  Effect.flatMap((replacement) =>
301
303
  Effect.promise(() => collection.collection.replaceOne(filter, replacement, options))
302
304
  ),
303
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "replaceOne")))
305
+ mongoOperation(errorSource(collection, "replaceOne"))
304
306
  )
305
307
  )
306
308
 
@@ -371,9 +373,7 @@ export const findOneAndReplace: {
371
373
  return yield* SchemaExt.decodeNullableDocument(collection.schema, value)
372
374
  })
373
375
  ),
374
- Effect.catchAllDefect(
375
- mongoErrorOrDie(errorSource(collection, "findOneAndReplace"))
376
- )
376
+ mongoOperation(errorSource(collection, "findOneAndReplace"))
377
377
  )
378
378
  )
379
379
 
@@ -455,9 +455,7 @@ export const findOneAndUpdate: {
455
455
  return yield* SchemaExt.decodeNullableDocument(collection.schema, value)
456
456
  })
457
457
  ),
458
- Effect.catchAllDefect(
459
- mongoErrorOrDie(errorSource(collection, "findOneAndUpdate"))
460
- )
458
+ mongoOperation(errorSource(collection, "findOneAndUpdate"))
461
459
  )
462
460
  )
463
461
 
@@ -482,7 +480,7 @@ export const rename: {
482
480
  Effect.map((newCollection) =>
483
481
  new CollectionImpl<A, I, R>({ collection: newCollection, schema: collection.schema })
484
482
  ),
485
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "rename")))
483
+ mongoOperation(errorSource(collection, "rename"))
486
484
  )
487
485
  )
488
486
 
@@ -502,7 +500,7 @@ export const drop: {
502
500
  ): Effect.Effect<boolean, MongoError.MongoError, R> =>
503
501
  F.pipe(
504
502
  Effect.promise(() => collection.collection.drop(options)),
505
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "drop")))
503
+ mongoOperation(errorSource(collection, "drop"))
506
504
  )
507
505
  )
508
506
 
@@ -527,7 +525,7 @@ export const createIndexes: {
527
525
  ): Effect.Effect<Array<string>, MongoError.MongoError, R> =>
528
526
  F.pipe(
529
527
  Effect.promise(() => collection.collection.createIndexes([...indexSpecs], options)),
530
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "createIndexes")))
528
+ mongoOperation(errorSource(collection, "createIndexes"))
531
529
  )
532
530
  )
533
531
 
@@ -549,7 +547,7 @@ export const createIndex: {
549
547
  ): Effect.Effect<string, MongoError.MongoError, R> =>
550
548
  F.pipe(
551
549
  Effect.promise(() => collection.collection.createIndex(indexSpec, options)),
552
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "createIndex")))
550
+ mongoOperation(errorSource(collection, "createIndex"))
553
551
  )
554
552
  )
555
553
 
@@ -571,7 +569,7 @@ export const dropIndex: {
571
569
  ): Effect.Effect<Document, MongoError.MongoError, R> =>
572
570
  F.pipe(
573
571
  Effect.promise(() => collection.collection.dropIndex(indexName, options)),
574
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "dropIndex")))
572
+ mongoOperation(errorSource(collection, "dropIndex"))
575
573
  )
576
574
  )
577
575
 
@@ -591,7 +589,7 @@ export const dropIndexes: {
591
589
  ): Effect.Effect<boolean, MongoError.MongoError, R> =>
592
590
  F.pipe(
593
591
  Effect.promise(() => collection.collection.dropIndexes(options)),
594
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "dropIndexes")))
592
+ mongoOperation(errorSource(collection, "dropIndexes"))
595
593
  )
596
594
  )
597
595
 
@@ -639,7 +637,7 @@ export const estimatedDocumentCount: {
639
637
  ): Effect.Effect<number, MongoError.MongoError, R> =>
640
638
  F.pipe(
641
639
  Effect.promise(() => collection.collection.estimatedDocumentCount(options)),
642
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "estimatedDocumentCount")))
640
+ mongoOperation(errorSource(collection, "estimatedDocumentCount"))
643
641
  )
644
642
  )
645
643
 
@@ -661,7 +659,7 @@ export const countDocuments: {
661
659
  ): Effect.Effect<number, MongoError.MongoError, R> =>
662
660
  F.pipe(
663
661
  Effect.promise(() => collection.collection.countDocuments(filter, options)),
664
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "countDocuments")))
662
+ mongoOperation(errorSource(collection, "countDocuments"))
665
663
  )
666
664
  )
667
665
 
@@ -688,7 +686,7 @@ export const bulkWrite: {
688
686
  operations,
689
687
  Effect.forEach((op) => encodeBulkWriteOperation(collection.schema, op)),
690
688
  Effect.flatMap((operations) => Effect.promise(() => collection.collection.bulkWrite(operations, options))),
691
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(collection, "bulkWrite")))
689
+ mongoOperation(errorSource(collection, "bulkWrite"))
692
690
  )
693
691
  )
694
692
 
@@ -699,7 +697,7 @@ const errorSource = <A extends Document, I extends Document = A, R = never>(
699
697
  functionName: string
700
698
  ) =>
701
699
  new MongoError.CollectionErrorSource({
702
- module: CollectionImpl.name,
700
+ module: "Collection",
703
701
  functionName,
704
702
  db: collection.collection.dbName,
705
703
  collection: collection.collection.collectionName
package/src/Db.ts CHANGED
@@ -8,7 +8,7 @@ import type * as Schema from "effect/Schema"
8
8
  import type { Db as Db_, Document, DropCollectionOptions, ListCollectionsOptions } from "mongodb"
9
9
  import type * as Collection from "./Collection.js"
10
10
  import * as DocumentCollection from "./DocumentCollection.js"
11
- import { mongoErrorOrDie } from "./internal/mongo-error.js"
11
+ import { mongoOperation } from "./internal/mongo-operation.js"
12
12
  import * as ListCollectionsCursor from "./ListCollectionsCursor.js"
13
13
  import * as MongoError from "./MongoError.js"
14
14
 
@@ -82,7 +82,7 @@ export const dropCollection: {
82
82
  (db: Db, name: string, options?: DropCollectionOptions): Effect.Effect<boolean, MongoError.MongoError> =>
83
83
  F.pipe(
84
84
  Effect.promise(() => db.db.dropCollection(name, options)),
85
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(db, "dropCollection")))
85
+ mongoOperation(errorSource(db, "dropCollection"))
86
86
  )
87
87
  )
88
88
 
@@ -8,7 +8,7 @@ import type { Pipeable } from "effect/Pipeable"
8
8
  import { pipeArguments } from "effect/Pipeable"
9
9
  import * as Stream from "effect/Stream"
10
10
  import type { AggregationCursor as MongoAggregationCursor, Document } from "mongodb"
11
- import { mongoErrorOrDie } from "./internal/mongo-error.js"
11
+ import { mongoOperation, mongoStreamOperation } from "./internal/mongo-operation.js"
12
12
  import * as MongoError from "./MongoError.js"
13
13
 
14
14
  type DocumentAggregationCursorFields = { cursor: MongoAggregationCursor<Document> }
@@ -32,7 +32,7 @@ export const toArray = (
32
32
  ): Effect.Effect<Array<Document>, MongoError.MongoError> =>
33
33
  F.pipe(
34
34
  Effect.promise(() => cursor.cursor.toArray()),
35
- Effect.catchAllDefect(mongoErrorOrDie(errorSource(cursor, "toArray")))
35
+ mongoOperation(errorSource(cursor, "toArray"))
36
36
  )
37
37
 
38
38
  export const toStream = (
@@ -40,12 +40,12 @@ export const toStream = (
40
40
  ): Stream.Stream<Document, MongoError.MongoError> =>
41
41
  F.pipe(
42
42
  Stream.fromAsyncIterable(cursor.cursor, F.identity),
43
- Stream.catchAll(mongoErrorOrDie(errorSource(cursor, "toStream")))
43
+ mongoStreamOperation(errorSource(cursor, "toStream"))
44
44
  )
45
45
 
46
46
  const errorSource = (cursor: DocumentAggregationCursor, functionName: string) =>
47
47
  new MongoError.CollectionErrorSource({
48
- module: DocumentAggregationCursorImpl.name,
48
+ module: "DocumentAggregationCursor",
49
49
  functionName,
50
50
  db: cursor.cursor.namespace.db,
51
51
  collection: cursor.cursor.namespace.collection ?? "NO_COLLECTION_NAME"