effect-mongodb 0.0.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 (74) hide show
  1. package/Collection/package.json +6 -0
  2. package/Db/package.json +6 -0
  3. package/DocumentCollection/package.json +6 -0
  4. package/DocumentFindCursor/package.json +6 -0
  5. package/FindCursor/package.json +6 -0
  6. package/LICENSE +21 -0
  7. package/MongoClient/package.json +6 -0
  8. package/MongoError/package.json +6 -0
  9. package/README.md +28 -0
  10. package/dist/cjs/Collection.js +33 -0
  11. package/dist/cjs/Collection.js.map +1 -0
  12. package/dist/cjs/Db.js +36 -0
  13. package/dist/cjs/Db.js.map +1 -0
  14. package/dist/cjs/DocumentCollection.js +29 -0
  15. package/dist/cjs/DocumentCollection.js.map +1 -0
  16. package/dist/cjs/DocumentFindCursor.js +41 -0
  17. package/dist/cjs/DocumentFindCursor.js.map +1 -0
  18. package/dist/cjs/FindCursor.js +65 -0
  19. package/dist/cjs/FindCursor.js.map +1 -0
  20. package/dist/cjs/MongoClient.js +20 -0
  21. package/dist/cjs/MongoClient.js.map +1 -0
  22. package/dist/cjs/MongoError.js +33 -0
  23. package/dist/cjs/MongoError.js.map +1 -0
  24. package/dist/cjs/index.js +23 -0
  25. package/dist/cjs/index.js.map +1 -0
  26. package/dist/cjs/internal/version.js +14 -0
  27. package/dist/cjs/internal/version.js.map +1 -0
  28. package/dist/dts/Collection.d.ts +37 -0
  29. package/dist/dts/Collection.d.ts.map +1 -0
  30. package/dist/dts/Db.d.ts +30 -0
  31. package/dist/dts/Db.d.ts.map +1 -0
  32. package/dist/dts/DocumentCollection.d.ts +39 -0
  33. package/dist/dts/DocumentCollection.d.ts.map +1 -0
  34. package/dist/dts/DocumentFindCursor.d.ts +40 -0
  35. package/dist/dts/DocumentFindCursor.d.ts.map +1 -0
  36. package/dist/dts/FindCursor.d.ts +40 -0
  37. package/dist/dts/FindCursor.d.ts.map +1 -0
  38. package/dist/dts/MongoClient.d.ts +21 -0
  39. package/dist/dts/MongoClient.d.ts.map +1 -0
  40. package/dist/dts/MongoError.d.ts +21 -0
  41. package/dist/dts/MongoError.d.ts.map +1 -0
  42. package/dist/dts/index.d.ts +29 -0
  43. package/dist/dts/index.d.ts.map +1 -0
  44. package/dist/dts/internal/version.d.ts +3 -0
  45. package/dist/dts/internal/version.d.ts.map +1 -0
  46. package/dist/esm/Collection.js +24 -0
  47. package/dist/esm/Collection.js.map +1 -0
  48. package/dist/esm/Db.js +25 -0
  49. package/dist/esm/Db.js.map +1 -0
  50. package/dist/esm/DocumentCollection.js +20 -0
  51. package/dist/esm/DocumentCollection.js.map +1 -0
  52. package/dist/esm/DocumentFindCursor.js +30 -0
  53. package/dist/esm/DocumentFindCursor.js.map +1 -0
  54. package/dist/esm/FindCursor.js +52 -0
  55. package/dist/esm/FindCursor.js.map +1 -0
  56. package/dist/esm/MongoClient.js +10 -0
  57. package/dist/esm/MongoClient.js.map +1 -0
  58. package/dist/esm/MongoError.js +23 -0
  59. package/dist/esm/MongoError.js.map +1 -0
  60. package/dist/esm/index.js +29 -0
  61. package/dist/esm/index.js.map +1 -0
  62. package/dist/esm/internal/version.js +6 -0
  63. package/dist/esm/internal/version.js.map +1 -0
  64. package/dist/esm/package.json +4 -0
  65. package/package.json +93 -0
  66. package/src/Collection.ts +130 -0
  67. package/src/Db.ts +79 -0
  68. package/src/DocumentCollection.ts +128 -0
  69. package/src/DocumentFindCursor.ts +90 -0
  70. package/src/FindCursor.ts +138 -0
  71. package/src/MongoClient.ts +35 -0
  72. package/src/MongoError.ts +40 -0
  73. package/src/index.ts +34 -0
  74. package/src/internal/version.ts +7 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @since 0.0.1
3
+ */
4
+ import type * as Schema from "@effect/schema/Schema";
5
+ import * as Effect from "effect/Effect";
6
+ import * as O from "effect/Option";
7
+ import type { BulkWriteOptions, Collection as MongoCollection, Document, Filter, FindOptions, InsertOneOptions, InsertOneResult, OptionalUnlessRequiredId } from "mongodb";
8
+ import * as Collection from "./Collection.js";
9
+ import * as DocumentFindCursor from "./DocumentFindCursor.js";
10
+ import * as MongoError from "./MongoError.js";
11
+ declare const DocumentCollection_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]; }) => Readonly<A> & {
12
+ readonly _tag: "DocumentCollection";
13
+ };
14
+ export declare class DocumentCollection extends DocumentCollection_base<{
15
+ collection: MongoCollection;
16
+ }> {
17
+ }
18
+ export declare const find: {
19
+ (options?: FindOptions): (collection: DocumentCollection) => DocumentFindCursor.DocumentFindCursor;
20
+ (collection: DocumentCollection, options?: FindOptions): DocumentFindCursor.DocumentFindCursor;
21
+ };
22
+ export declare const findOne: {
23
+ (filter: Filter<Document>, options?: FindOptions): (collection: DocumentCollection) => Effect.Effect<O.Option<Document>, MongoError.MongoError>;
24
+ (collection: DocumentCollection, filter: Filter<Document>, options?: FindOptions): Effect.Effect<O.Option<Document>, MongoError.MongoError>;
25
+ };
26
+ export declare const insertOne: {
27
+ (doc: OptionalUnlessRequiredId<Document>, options?: InsertOneOptions): (collection: DocumentCollection) => Effect.Effect<InsertOneResult, MongoError.MongoError>;
28
+ (collection: DocumentCollection, doc: OptionalUnlessRequiredId<Document>, options?: InsertOneOptions): Effect.Effect<InsertOneResult, MongoError.MongoError>;
29
+ };
30
+ export declare const insertMany: {
31
+ (docs: Array<OptionalUnlessRequiredId<Document>>, options?: BulkWriteOptions): (collection: DocumentCollection) => Effect.Effect<InsertOneResult, MongoError.MongoError>;
32
+ (collection: DocumentCollection, docs: Array<OptionalUnlessRequiredId<Document>>, options?: BulkWriteOptions): Effect.Effect<InsertOneResult, MongoError.MongoError>;
33
+ };
34
+ export declare const typed: {
35
+ <A extends Document, I extends Document = A, R = never>(schema: Schema.Schema<A, I, R>): (collection: DocumentCollection) => Collection.Collection<A, I, R>;
36
+ <A extends Document, I extends Document = A, R = never>(collection: DocumentCollection, schema: Schema.Schema<A, I, R>): Collection.Collection<A, I, R>;
37
+ };
38
+ export {};
39
+ //# sourceMappingURL=DocumentCollection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentCollection.d.ts","sourceRoot":"","sources":["../../src/DocumentCollection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @since 0.0.1
3
+ */
4
+ import type * as Schema from "@effect/schema/Schema";
5
+ import * as Effect from "effect/Effect";
6
+ import * as Stream from "effect/Stream";
7
+ import type { Document, FindCursor as MongoFindCursor, Sort, SortDirection } from "mongodb";
8
+ import * as FindCursor from "./FindCursor.js";
9
+ import * as MongoError from "./MongoError.js";
10
+ declare const DocumentFindCursor_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]; }) => Readonly<A> & {
11
+ readonly _tag: "DocumentFindCursor";
12
+ };
13
+ export declare class DocumentFindCursor extends DocumentFindCursor_base<{
14
+ cursor: MongoFindCursor<Document>;
15
+ }> {
16
+ }
17
+ export declare const filter: {
18
+ (filter: Document): (cursor: DocumentFindCursor) => DocumentFindCursor;
19
+ (cursor: DocumentFindCursor, filter: Document): DocumentFindCursor;
20
+ };
21
+ export declare const project: {
22
+ (value: Document): (cursor: DocumentFindCursor) => DocumentFindCursor;
23
+ (cursor: DocumentFindCursor, value: Document): DocumentFindCursor;
24
+ };
25
+ export declare const sort: {
26
+ (sort: Sort | string, direction?: SortDirection): (cursor: DocumentFindCursor) => DocumentFindCursor;
27
+ (cursor: DocumentFindCursor, sort: Sort | string, direction?: SortDirection): DocumentFindCursor;
28
+ };
29
+ export declare const limit: {
30
+ (value: number): (cursor: DocumentFindCursor) => DocumentFindCursor;
31
+ (cursor: DocumentFindCursor, value: number): DocumentFindCursor;
32
+ };
33
+ export declare const toArray: (cursor: DocumentFindCursor) => Effect.Effect<ReadonlyArray<Document>, MongoError.MongoError>;
34
+ export declare const toStream: (cursor: DocumentFindCursor) => Stream.Stream<Document, MongoError.MongoError>;
35
+ export declare const typed: {
36
+ <A, I = A, R = never>(schema: Schema.Schema<A, I, R>): (cursor: DocumentFindCursor) => FindCursor.FindCursor<A, I, R>;
37
+ <A, I = A, R = never>(cursor: DocumentFindCursor, schema: Schema.Schema<A, I, R>): FindCursor.FindCursor<A, I, R>;
38
+ };
39
+ export {};
40
+ //# sourceMappingURL=DocumentFindCursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentFindCursor.d.ts","sourceRoot":"","sources":["../../src/DocumentFindCursor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAEpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,IAAI,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC3F,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;;;;AAE7C,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;CAClC,CAAC;CACD;AAED,eAAO,MAAM,MAAM,EAAE;IACnB,CACE,MAAM,EAAE,QAAQ,GACf,CAAC,MAAM,EAAE,kBAAkB,KAAK,kBAAkB,CAAA;IACrD,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,GAAG,kBAAkB,CAAA;CAKnE,CAAA;AAED,eAAO,MAAM,OAAO,EAAE;IACpB,CACE,KAAK,EAAE,QAAQ,GACd,CAAC,MAAM,EAAE,kBAAkB,KAAK,kBAAkB,CAAA;IACrD,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,GAAG,kBAAkB,CAAA;CAKlE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE;IACjB,CACE,IAAI,EAAE,IAAI,GAAG,MAAM,EACnB,SAAS,CAAC,EAAE,aAAa,GACxB,CAAC,MAAM,EAAE,kBAAkB,KAAK,kBAAkB,CAAA;IACrD,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,GAAG,kBAAkB,CAAA;CAKjG,CAAA;AAED,eAAO,MAAM,KAAK,EAAE;IAClB,CACE,KAAK,EAAE,MAAM,GACZ,CAAC,MAAM,EAAE,kBAAkB,KAAK,kBAAkB,CAAA;IACrD,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAKhE,CAAA;AAED,eAAO,MAAM,OAAO,WAAY,kBAAkB,KAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAI9G,CAAA;AAEH,eAAO,MAAM,QAAQ,WACX,kBAAkB,KACzB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAI7C,CAAA;AAEH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC7B,CAAC,MAAM,EAAE,kBAAkB,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACjE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAClB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC7B,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAIwE,CAAA"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @since 0.0.1
3
+ */
4
+ import type * as ParseResult from "@effect/schema/ParseResult";
5
+ import * as Schema from "@effect/schema/Schema";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Stream from "effect/Stream";
8
+ import type { Document, FindCursor as FindCursor_, Sort, SortDirection } from "mongodb";
9
+ import * as MongoError from "./MongoError.js";
10
+ import type * as E from "effect/Either";
11
+ declare const FindCursor_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
12
+ readonly _tag: "FindCursor";
13
+ };
14
+ export declare class FindCursor<A, I = A, R = never> extends FindCursor_base<{
15
+ cursor: FindCursor_<unknown>;
16
+ schema: Schema.Schema<A, I, R>;
17
+ }> {
18
+ }
19
+ export declare const filter: {
20
+ <T extends Document = Document>(filter: T): <A, I = A, R = never>(cursor: FindCursor<A, I, R>) => FindCursor<A, I, R>;
21
+ <A, I = A, R = never, T extends Document = Document>(cursor: FindCursor<A, I, R>, filter: T): FindCursor<A, I, R>;
22
+ };
23
+ export declare const project: {
24
+ <B, BI = B, BR = never, T extends Document = Document>(newSchema: Schema.Schema<B, BI, BR>, value: T): <A, I = A, R = never>(cursor: FindCursor<A, I, R>) => FindCursor<B, BI, BR>;
25
+ <A, B, I = A, R = never, BI = B, BR = never, T extends Document = Document>(cursor: FindCursor<A, I, R>, newSchema: Schema.Schema<B, BI, BR>, value: T): FindCursor<B, BI, BR>;
26
+ };
27
+ export declare const sort: {
28
+ (sort: Sort | string, direction?: SortDirection): <A, I = A, R = never>(cursor: FindCursor<A, I, R>) => FindCursor<A, I, R>;
29
+ <A, I = A, R = never>(cursor: FindCursor<A, I, R>, sort: Sort | string, direction?: SortDirection): FindCursor<A, I, R>;
30
+ };
31
+ export declare const limit: {
32
+ (value: number): <A, I = A, R = never>(cursor: FindCursor<A, I, R>) => FindCursor<A, I, R>;
33
+ <A, I = A, R = never>(cursor: FindCursor<A, I, R>, value: number): FindCursor<A, I, R>;
34
+ };
35
+ export declare const toArray: <A, I = A, R = never>(cursor: FindCursor<A, I, R>) => Effect.Effect<A[], MongoError.MongoError | ParseResult.ParseError, R>;
36
+ export declare const toArrayEither: <A, I = A, R = never>(cursor: FindCursor<A, I, R>) => Effect.Effect<E.Either<A, [unknown, ParseResult.ParseError]>[], MongoError.MongoError, R>;
37
+ export declare const toStream: <A, I = A, R = never>(cursor: FindCursor<A, I, R>) => Stream.Stream<A, MongoError.MongoError | ParseResult.ParseError, R>;
38
+ export declare const toStreamEither: <A, I = A, R = never>(cursor: FindCursor<A, I, R>) => Stream.Stream<E.Either<A, [document: unknown, error: ParseResult.ParseError]>, MongoError.MongoError, R>;
39
+ export {};
40
+ //# sourceMappingURL=FindCursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindCursor.d.ts","sourceRoot":"","sources":["../../src/FindCursor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @since 0.0.1
3
+ */
4
+ import type * as Brand from "effect/Brand";
5
+ import * as Effect from "effect/Effect";
6
+ import type { Db, DbOptions, MongoClientOptions } from "mongodb";
7
+ import { MongoClient as MongoClient_ } from "mongodb";
8
+ import * as MongoError from "./MongoError.js";
9
+ import * as Context from "effect/Context";
10
+ export type MongoClient = MongoClient_;
11
+ export declare const connect: (url: string, options?: MongoClientOptions) => Effect.Effect<MongoClient_, MongoError.MongoError, never>;
12
+ export declare const db: {
13
+ (dbName?: string, options?: DbOptions): (client: MongoClient) => Db;
14
+ (client: MongoClient, dbName?: string, options?: DbOptions): Db;
15
+ };
16
+ export type MongoClientService<K extends string> = {
17
+ client: Effect.Effect<MongoClient, MongoError.MongoError>;
18
+ } & Brand.Brand<K>;
19
+ export declare const Tag: <K extends string>(key: K) => Context.Tag<MongoClientService<K>, MongoClientService<K>>;
20
+ export type TagType<K extends string> = ReturnType<typeof Tag<K>>;
21
+ //# sourceMappingURL=MongoClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoClient.d.ts","sourceRoot":"","sources":["../../src/MongoClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,MAAM,MAAM,WAAW,GAAG,YAAY,CAAA;AAEtC,eAAO,MAAM,OAAO,QAAS,MAAM,YAAY,kBAAkB,8DAG9D,CAAA;AAEH,eAAO,MAAM,EAAE,EAAE;IACf,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,EAAE,CAAA;IACnE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,EAAE,CAAA;CAIhE,CAAA;AAID,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;CAC1D,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAElB,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,OAAO,CAAC,8DAAmD,CAAA;AAC/F,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Stream from "effect/Stream";
3
+ import { MongoError as MongoError_ } from "mongodb";
4
+ declare const MongoError_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 & {
5
+ readonly _tag: "MongoError";
6
+ } & Readonly<A>;
7
+ export declare class MongoError extends MongoError_base<{
8
+ message: string;
9
+ innerError: MongoError_;
10
+ }> {
11
+ }
12
+ export declare const mongoErrorDie: {
13
+ <A>(message: string): (error: unknown) => Effect.Effect<A, MongoError>;
14
+ <A>(error: unknown, message: string): Effect.Effect<A, MongoError>;
15
+ };
16
+ export declare const mongoErrorStream: {
17
+ <A>(message: string): (error: unknown) => Stream.Stream<A, MongoError>;
18
+ <A>(error: unknown, message: string): Stream.Stream<A, MongoError>;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=MongoError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoError.d.ts","sourceRoot":"","sources":["../../src/MongoError.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,SAAS,CAAA;;;;AAEnD,qBAAa,UAAW,SAAQ,gBAA+B;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,WAAW,CAAA;CACxB,CAAC;CAAG;AAEL,eAAO,MAAM,aAAa,EAAE;IAC1B,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACtE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;CAYhE,CAAA;AAEJ,eAAO,MAAM,gBAAgB,EAAE;IAC7B,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACtE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;CAMhE,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @since 0.0.1
3
+ */
4
+ export * as Collection from "./Collection.js";
5
+ /**
6
+ * @since 0.0.1
7
+ */
8
+ export * as Db from "./Db.js";
9
+ /**
10
+ * @since 0.0.1
11
+ */
12
+ export * as DocumentCollection from "./DocumentCollection.js";
13
+ /**
14
+ * @since 0.0.1
15
+ */
16
+ export * as DocumentFindCursor from "./DocumentFindCursor.js";
17
+ /**
18
+ * @since 0.0.1
19
+ */
20
+ export * as FindCursor from "./FindCursor.js";
21
+ /**
22
+ * @since 0.0.1
23
+ */
24
+ export * as MongoClient from "./MongoClient.js";
25
+ /**
26
+ * @since 0.0.1
27
+ */
28
+ export * as MongoError from "./MongoError.js";
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAE7B;;GAEG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;GAEG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const getCurrentVersion: () => string;
2
+ export declare const setCurrentVersion: (version: string) => void;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/internal/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,cAAsB,CAAA;AAEpD,eAAO,MAAM,iBAAiB,YAAa,MAAM,SAEhD,CAAA"}
@@ -0,0 +1,24 @@
1
+ import * as Schema from "@effect/schema/Schema";
2
+ import * as Data from "effect/Data";
3
+ import * as Effect from "effect/Effect";
4
+ import * as F from "effect/Function";
5
+ import * as O from "effect/Option";
6
+ import * as FindCursor from "./FindCursor.js";
7
+ import * as MongoError from "./MongoError.js";
8
+ export class Collection extends /*#__PURE__*/Data.TaggedClass("Collection") {}
9
+ export const find = /*#__PURE__*/F.dual(args => isCollection(args[0]), (collection, options) => new FindCursor.FindCursor({
10
+ cursor: collection.collection.find({}, options),
11
+ schema: collection.schema
12
+ }));
13
+ export const findOne = /*#__PURE__*/F.dual(args => isCollection(args[0]), (collection, filter, options) => Effect.gen(function* (_) {
14
+ const value = yield* _(Effect.promise(() => collection.collection.findOne(filter, options)));
15
+ if (value !== null) return O.some(yield* _(Schema.decodeUnknown(collection.schema)(value)));
16
+ return O.none();
17
+ }).pipe(Effect.catchAllDefect(MongoError.mongoErrorDie("findOne error"))));
18
+ export const insertOne = /*#__PURE__*/F.dual(args => isCollection(args[0]), (collection, doc, options) => F.pipe(Schema.encode(collection.schema)(doc), Effect.flatMap(doc => Effect.promise(() => collection.collection.insertOne(doc, options))), Effect.catchAllDefect(MongoError.mongoErrorDie("insertOne error"))));
19
+ export const insertMany = /*#__PURE__*/F.dual(args => isCollection(args[0]), (collection, docs, options) => {
20
+ const encode = Schema.encode(collection.schema);
21
+ return F.pipe(docs, Effect.forEach(doc => encode(doc)), Effect.flatMap(docs => Effect.promise(() => collection.collection.insertMany(docs, options))), Effect.catchAllDefect(MongoError.mongoErrorDie("insertMany error")));
22
+ });
23
+ const isCollection = x => x instanceof Collection;
24
+ //# sourceMappingURL=Collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collection.js","names":["Schema","Data","Effect","F","O","FindCursor","MongoError","Collection","TaggedClass","find","dual","args","isCollection","collection","options","cursor","schema","findOne","filter","gen","_","value","promise","some","decodeUnknown","none","pipe","catchAllDefect","mongoErrorDie","insertOne","doc","encode","flatMap","insertMany","docs","forEach","x"],"sources":["../../src/Collection.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/Db.js ADDED
@@ -0,0 +1,25 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import * as F from "effect/Function";
4
+ import * as Layer from "effect/Layer";
5
+ import { Db } from "mongodb";
6
+ import * as DocumentCollection from "./DocumentCollection.js";
7
+ import * as MongoClient from "./MongoClient.js";
8
+ export const documentCollection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name) => new DocumentCollection.DocumentCollection({
9
+ collection: db.collection(name)
10
+ }));
11
+ export const collection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name, schema) => DocumentCollection.typed(documentCollection(db, name), schema));
12
+ const isDb = x => x instanceof Db;
13
+ export const Tag = key => Context.GenericTag(key);
14
+ export const fromEffect = (dbTag, clientTag, dbName) => Layer.effect(dbTag, Effect.gen(function* (_) {
15
+ const {
16
+ client
17
+ } = yield* _(clientTag);
18
+ const dbName_ = yield* _(dbName);
19
+ const db = yield* _(client, Effect.map(client => MongoClient.db(client, dbName_)), Effect.cached);
20
+ return dbTag.of({
21
+ db
22
+ }); // TODO fix cast using branded ctor
23
+ }));
24
+ export const fromConst = (dbTag, clientTag, dbName) => fromEffect(dbTag, clientTag, Effect.succeed(dbName));
25
+ //# sourceMappingURL=Db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Db.js","names":["Context","Effect","F","Layer","Db","DocumentCollection","MongoClient","documentCollection","dual","args","isDb","db","name","collection","schema","typed","x","Tag","key","GenericTag","fromEffect","dbTag","clientTag","dbName","effect","gen","_","client","dbName_","map","cached","of","fromConst","succeed"],"sources":["../../src/Db.ts"],"sourcesContent":[null],"mappings":"AAKA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AACpC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,EAAE,QAAQ,SAAS;AAE5B,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAC7D,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAG/C,OAAO,MAAMC,kBAAkB,gBAG3BL,CAAC,CAACM,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEC,IAAY,KACnB,IAAIP,kBAAkB,CAACA,kBAAkB,CAAC;EACxCQ,UAAU,EAAEF,EAAE,CAACE,UAAU,CAACD,IAAI;CAC/B,CAAC,CACL;AAED,OAAO,MAAMC,UAAU,gBAUnBX,CAAC,CAACM,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CACEE,EAAM,EACNC,IAAY,EACZE,MAA8B,KACKT,kBAAkB,CAACU,KAAK,CAACR,kBAAkB,CAACI,EAAE,EAAEC,IAAI,CAAC,EAAEE,MAAM,CAAC,CACpG;AAED,MAAMJ,IAAI,GAAIM,CAAU,IAAKA,CAAC,YAAYZ,EAAE;AAM5C,OAAO,MAAMa,GAAG,GAAsBC,GAAM,IAAKlB,OAAO,CAACmB,UAAU,CAAeD,GAAG,CAAC;AAGtF,OAAO,MAAME,UAAU,GAAGA,CACxBC,KAAmB,EACnBC,SAA4C,EAC5CC,MAAmC,KAEnCpB,KAAK,CAACqB,MAAM,CACVH,KAAK,EACLpB,MAAM,CAACwB,GAAG,CAAC,WAAUC,CAAC;EACpB,MAAM;IAAEC;EAAM,CAAE,GAAG,OAAOD,CAAC,CAACJ,SAAS,CAAC;EACtC,MAAMM,OAAO,GAAG,OAAOF,CAAC,CAACH,MAAM,CAAC;EAChC,MAAMZ,EAAE,GAAG,OAAOe,CAAC,CACjBC,MAAM,EACN1B,MAAM,CAAC4B,GAAG,CAAEF,MAAM,IAAKrB,WAAW,CAACK,EAAE,CAACgB,MAAM,EAAEC,OAAO,CAAC,CAAC,EACvD3B,MAAM,CAAC6B,MAAM,CACd;EACD,OAAOT,KAAK,CAACU,EAAE,CAAC;IAAEpB;EAAE,CAAoB,CAAC,EAAC;AAC5C,CAAC,CAAC,CACH;AAEH,OAAO,MAAMqB,SAAS,GAAGA,CACvBX,KAAmB,EACnBC,SAA4C,EAC5CC,MAAc,KACXH,UAAU,CAACC,KAAK,EAAEC,SAAS,EAAErB,MAAM,CAACgC,OAAO,CAACV,MAAM,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import * as Data from "effect/Data";
2
+ import * as Effect from "effect/Effect";
3
+ import * as F from "effect/Function";
4
+ import * as O from "effect/Option";
5
+ import * as Collection from "./Collection.js";
6
+ import * as DocumentFindCursor from "./DocumentFindCursor.js";
7
+ import * as MongoError from "./MongoError.js";
8
+ export class DocumentCollection extends /*#__PURE__*/Data.TaggedClass("DocumentCollection") {}
9
+ export const find = /*#__PURE__*/F.dual(args => isDocumentCollection(args[0]), (collection, options) => new DocumentFindCursor.DocumentFindCursor({
10
+ cursor: collection.collection.find({}, options)
11
+ }));
12
+ export const findOne = /*#__PURE__*/F.dual(args => isDocumentCollection(args[0]), (collection, filter, options) => F.pipe(Effect.promise(() => collection.collection.findOne(filter, options)), Effect.map(value => O.fromNullable(value)), Effect.catchAllDefect(MongoError.mongoErrorDie("findOne error"))));
13
+ export const insertOne = /*#__PURE__*/F.dual(args => isDocumentCollection(args[0]), (collection, doc, options) => F.pipe(Effect.promise(() => collection.collection.insertOne(doc, options)), Effect.catchAllDefect(MongoError.mongoErrorDie("insertOne error"))));
14
+ export const insertMany = /*#__PURE__*/F.dual(args => isDocumentCollection(args[0]), (collection, docs, options) => F.pipe(Effect.promise(() => collection.collection.insertMany(docs, options)), Effect.catchAllDefect(MongoError.mongoErrorDie("insertMany error"))));
15
+ export const typed = /*#__PURE__*/F.dual(args => isDocumentCollection(args[0]), (collection, schema) => new Collection.Collection({
16
+ collection: collection.collection,
17
+ schema
18
+ }));
19
+ const isDocumentCollection = x => x instanceof DocumentCollection;
20
+ //# sourceMappingURL=DocumentCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentCollection.js","names":["Data","Effect","F","O","Collection","DocumentFindCursor","MongoError","DocumentCollection","TaggedClass","find","dual","args","isDocumentCollection","collection","options","cursor","findOne","filter","pipe","promise","map","value","fromNullable","catchAllDefect","mongoErrorDie","insertOne","doc","insertMany","docs","typed","schema","x"],"sources":["../../src/DocumentCollection.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AACpC,OAAO,KAAKC,CAAC,MAAM,eAAe;AAYlC,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAC7C,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAC7D,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C,OAAM,MAAOC,kBAAmB,sBAAQP,IAAI,CAACQ,WAAW,CAAC,oBAAoB,CAE3E;AAGF,OAAO,MAAMC,IAAI,gBAMbP,CAAC,CAACQ,IAAI,CACPC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvC,CAACE,UAA8B,EAAEC,OAAqB,KACpD,IAAIT,kBAAkB,CAACA,kBAAkB,CACvC;EACEU,MAAM,EAAEF,UAAU,CAACA,UAAU,CAACJ,IAAI,CAAC,EAAE,EAAEK,OAAO;CAC/C,CACF,CACJ;AAED,OAAO,MAAME,OAAO,gBAYhBd,CAAC,CAACQ,IAAI,CACPC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvC,CACEE,UAA8B,EAC9BI,MAAwB,EACxBH,OAAqB,KAErBZ,CAAC,CAACgB,IAAI,CACJjB,MAAM,CAACkB,OAAO,CAAC,MAAMN,UAAU,CAACA,UAAU,CAACG,OAAO,CAACC,MAAM,EAAEH,OAAO,CAAC,CAAC,EACpEb,MAAM,CAACmB,GAAG,CAAEC,KAAK,IAAKlB,CAAC,CAACmB,YAAY,CAACD,KAAK,CAAC,CAAC,EAC5CpB,MAAM,CAACsB,cAAc,CAACjB,UAAU,CAACkB,aAAa,CAAqB,eAAe,CAAC,CAAC,CACrF,CACJ;AAED,OAAO,MAAMC,SAAS,gBAYlBvB,CAAC,CAACQ,IAAI,CAAEC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAClDE,UAA8B,EAC9Ba,GAAuC,EACvCZ,OAA0B,KAE1BZ,CAAC,CAACgB,IAAI,CACJjB,MAAM,CAACkB,OAAO,CAAC,MAAMN,UAAU,CAACA,UAAU,CAACY,SAAS,CAACC,GAAG,EAAEZ,OAAO,CAAC,CAAC,EACnEb,MAAM,CAACsB,cAAc,CAACjB,UAAU,CAACkB,aAAa,CAAkB,iBAAiB,CAAC,CAAC,CACpF,CAAC;AAEJ,OAAO,MAAMG,UAAU,gBAYnBzB,CAAC,CAACQ,IAAI,CAAEC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAClDE,UAA8B,EAC9Be,IAA+C,EAC/Cd,OAA0B,KAE1BZ,CAAC,CAACgB,IAAI,CACJjB,MAAM,CAACkB,OAAO,CAAC,MAAMN,UAAU,CAACA,UAAU,CAACc,UAAU,CAACC,IAAI,EAAEd,OAAO,CAAC,CAAC,EACrEb,MAAM,CAACsB,cAAc,CAACjB,UAAU,CAACkB,aAAa,CAAmB,kBAAkB,CAAC,CAAC,CACtF,CAAC;AAEJ,OAAO,MAAMK,KAAK,gBAQd3B,CAAC,CAACQ,IAAI,CAAEC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAClDE,UAA8B,EAC9BiB,MAA8B,KACK,IAAI1B,UAAU,CAACA,UAAU,CAAU;EAAES,UAAU,EAAEA,UAAU,CAACA,UAAU;EAAEiB;AAAM,CAAE,CAAC,CAAC;AAEvH,MAAMlB,oBAAoB,GAAImB,CAAU,IAAKA,CAAC,YAAYxB,kBAAkB","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ import * as Data from "effect/Data";
2
+ import * as Effect from "effect/Effect";
3
+ import * as F from "effect/Function";
4
+ import * as Stream from "effect/Stream";
5
+ import * as FindCursor from "./FindCursor.js";
6
+ import * as MongoError from "./MongoError.js";
7
+ export class DocumentFindCursor extends /*#__PURE__*/Data.TaggedClass("DocumentFindCursor") {}
8
+ export const filter = /*#__PURE__*/F.dual(args => isDocumentFindCursor(args[0]), (cursor, filter) => new DocumentFindCursor({
9
+ cursor: cursor.cursor.filter(filter)
10
+ }));
11
+ export const project = /*#__PURE__*/F.dual(args => isDocumentFindCursor(args[0]), (cursor, value) => new DocumentFindCursor({
12
+ cursor: cursor.cursor.project(value)
13
+ }));
14
+ export const sort = /*#__PURE__*/F.dual(args => isDocumentFindCursor(args[0]), (cursor, sort, direction) => new DocumentFindCursor({
15
+ cursor: cursor.cursor.sort(sort, direction)
16
+ }));
17
+ export const limit = /*#__PURE__*/F.dual(args => isDocumentFindCursor(args[0]), (cursor, value) => new DocumentFindCursor({
18
+ cursor: cursor.cursor.limit(value)
19
+ }));
20
+ export const toArray = cursor => F.pipe(Effect.tryPromise({
21
+ try: () => cursor.cursor.toArray(),
22
+ catch: F.identity
23
+ }), Effect.catchAll(MongoError.mongoErrorDie("toArray error")));
24
+ export const toStream = cursor => F.pipe(Stream.fromAsyncIterable(cursor.cursor, F.identity), Stream.catchAll(MongoError.mongoErrorStream("Unable to read from mongodb cursor")));
25
+ export const typed = /*#__PURE__*/F.dual(args => isDocumentFindCursor(args[0]), (cursor, schema) => new FindCursor.FindCursor({
26
+ cursor: cursor.cursor,
27
+ schema
28
+ }));
29
+ const isDocumentFindCursor = x => x instanceof DocumentFindCursor;
30
+ //# sourceMappingURL=DocumentFindCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentFindCursor.js","names":["Data","Effect","F","Stream","FindCursor","MongoError","DocumentFindCursor","TaggedClass","filter","dual","args","isDocumentFindCursor","cursor","project","value","sort","direction","limit","toArray","pipe","tryPromise","try","catch","identity","catchAll","mongoErrorDie","toStream","fromAsyncIterable","mongoErrorStream","typed","schema","x"],"sources":["../../src/DocumentFindCursor.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AACpC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAC7C,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C,OAAM,MAAOC,kBAAmB,sBAAQN,IAAI,CAACO,WAAW,CAAC,oBAAoB,CAE3E;AAGF,OAAO,MAAMC,MAAM,gBAKfN,CAAC,CAACO,IAAI,CACPC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvC,CAACE,MAA0B,EAAEJ,MAAgB,KAC3C,IAAIF,kBAAkB,CAAC;EAAEM,MAAM,EAAEA,MAAM,CAACA,MAAM,CAACJ,MAAM,CAACA,MAAM;AAAC,CAAE,CAAC,CACnE;AAED,OAAO,MAAMK,OAAO,gBAKhBX,CAAC,CAACO,IAAI,CACPC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvC,CAACE,MAA0B,EAAEE,KAAe,KAC1C,IAAIR,kBAAkB,CAAC;EAAEM,MAAM,EAAEA,MAAM,CAACA,MAAM,CAACC,OAAO,CAACC,KAAK;AAAC,CAAE,CAAC,CACnE;AAED,OAAO,MAAMC,IAAI,gBAMbb,CAAC,CAACO,IAAI,CACPC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvC,CAACE,MAA0B,EAAEG,IAAmB,EAAEC,SAAyB,KACzE,IAAIV,kBAAkB,CAAC;EAAEM,MAAM,EAAEA,MAAM,CAACA,MAAM,CAACG,IAAI,CAACA,IAAI,EAAEC,SAAS;AAAC,CAAE,CAAC,CAC1E;AAED,OAAO,MAAMC,KAAK,gBAKdf,CAAC,CAACO,IAAI,CACPC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvC,CAACE,MAA0B,EAAEE,KAAa,KACxC,IAAIR,kBAAkB,CAAC;EAAEM,MAAM,EAAEA,MAAM,CAACA,MAAM,CAACK,KAAK,CAACH,KAAK;AAAC,CAAE,CAAC,CACjE;AAED,OAAO,MAAMI,OAAO,GAAIN,MAA0B,IAChDV,CAAC,CAACiB,IAAI,CACJlB,MAAM,CAACmB,UAAU,CAAC;EAAEC,GAAG,EAAEA,CAAA,KAAMT,MAAM,CAACA,MAAM,CAACM,OAAO,EAAE;EAAEI,KAAK,EAAEpB,CAAC,CAACqB;AAAQ,CAAE,CAAC,EAC5EtB,MAAM,CAACuB,QAAQ,CAACnB,UAAU,CAACoB,aAAa,CAA0B,eAAe,CAAC,CAAC,CACpF;AAEH,OAAO,MAAMC,QAAQ,GACnBd,MAA0B,IAE1BV,CAAC,CAACiB,IAAI,CACJhB,MAAM,CAACwB,iBAAiB,CAACf,MAAM,CAACA,MAAM,EAAEV,CAAC,CAACqB,QAAQ,CAAC,EACnDpB,MAAM,CAACqB,QAAQ,CAACnB,UAAU,CAACuB,gBAAgB,CAAW,oCAAoC,CAAC,CAAC,CAC7F;AAEH,OAAO,MAAMC,KAAK,gBAQd3B,CAAC,CAACO,IAAI,CAAEC,IAAI,IAAKC,oBAAoB,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAClDE,MAA0B,EAC1BkB,MAA8B,KACK,IAAI1B,UAAU,CAACA,UAAU,CAAU;EAAEQ,MAAM,EAAEA,MAAM,CAACA,MAAM;EAAEkB;AAAM,CAAE,CAAC,CAAC;AAE3G,MAAMnB,oBAAoB,GAAIoB,CAAU,IAAKA,CAAC,YAAYzB,kBAAkB","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ import * as Schema from "@effect/schema/Schema";
2
+ import * as Data from "effect/Data";
3
+ import * as Effect from "effect/Effect";
4
+ import * as F from "effect/Function";
5
+ import * as Stream from "effect/Stream";
6
+ import * as Tuple from "effect/Tuple";
7
+ import * as MongoError from "./MongoError.js";
8
+ export class FindCursor extends /*#__PURE__*/Data.TaggedClass("FindCursor") {}
9
+ export const filter = /*#__PURE__*/F.dual(args => isFindCursor(args[0]), (cursor, filter) => new FindCursor({
10
+ cursor: cursor.cursor.filter(filter),
11
+ schema: cursor.schema
12
+ }));
13
+ export const project = /*#__PURE__*/F.dual(args => isFindCursor(args[0]), (cursor, newSchema, value) => new FindCursor({
14
+ cursor: cursor.cursor.project(value),
15
+ schema: newSchema
16
+ }));
17
+ export const sort = /*#__PURE__*/F.dual(args => isFindCursor(args[0]), (cursor, sort, direction) => new FindCursor({
18
+ cursor: cursor.cursor.sort(sort, direction),
19
+ schema: cursor.schema
20
+ }));
21
+ export const limit = /*#__PURE__*/F.dual(args => isFindCursor(args[0]), (cursor, value) => new FindCursor({
22
+ cursor: cursor.cursor.limit(value),
23
+ schema: cursor.schema
24
+ }));
25
+ export const toArray = cursor => {
26
+ const decode = Schema.decodeUnknown(cursor.schema);
27
+ return Effect.tryPromise({
28
+ try: () => cursor.cursor.toArray(),
29
+ catch: F.identity
30
+ }).pipe(Effect.catchAll(MongoError.mongoErrorDie("Unable to get array from mongodb cursor")), Effect.flatMap(Effect.forEach(x => decode(x))));
31
+ };
32
+ export const toArrayEither = cursor => {
33
+ const decode = Schema.decodeUnknown(cursor.schema);
34
+ return Effect.tryPromise({
35
+ try: () => cursor.cursor.toArray(),
36
+ catch: F.identity
37
+ }).pipe(Effect.catchAll(MongoError.mongoErrorDie("Unable to get array from mongodb cursor")), Effect.flatMap(Effect.forEach(x => F.pipe(
38
+ // keep new line
39
+ decode(x), Effect.mapError(error => Tuple.make(x, error)), Effect.either))));
40
+ };
41
+ export const toStream = cursor => {
42
+ const decode = Schema.decodeUnknown(cursor.schema);
43
+ return F.pipe(Stream.fromAsyncIterable(cursor.cursor, F.identity), Stream.catchAll(MongoError.mongoErrorStream("Unable to get stream from mongodb cursor")), Stream.mapEffect(x => decode(x)));
44
+ };
45
+ export const toStreamEither = cursor => {
46
+ const decode = Schema.decodeUnknown(cursor.schema);
47
+ return F.pipe(Stream.fromAsyncIterable(cursor.cursor, F.identity), Stream.catchAll(MongoError.mongoErrorStream("Unable to get stream either from mongodb cursor")), Stream.mapEffect(x => F.pipe(
48
+ // keep new line
49
+ decode(x), Effect.mapError(error => Tuple.make(x, error)), Effect.either)));
50
+ };
51
+ const isFindCursor = x => x instanceof FindCursor;
52
+ //# sourceMappingURL=FindCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindCursor.js","names":["Schema","Data","Effect","F","Stream","Tuple","MongoError","FindCursor","TaggedClass","filter","dual","args","isFindCursor","cursor","schema","project","newSchema","value","sort","direction","limit","toArray","decode","decodeUnknown","tryPromise","try","catch","identity","pipe","catchAll","mongoErrorDie","flatMap","forEach","x","toArrayEither","mapError","error","make","either","toStream","fromAsyncIterable","mongoErrorStream","mapEffect","toStreamEither"],"sources":["../../src/FindCursor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as F from "effect/Function";
3
+ import { MongoClient as MongoClient_ } from "mongodb";
4
+ import * as MongoError from "./MongoError.js";
5
+ import * as Context from "effect/Context";
6
+ export const connect = (url, options) => Effect.promise(() => MongoClient_.connect(url, options)).pipe(Effect.catchAll(MongoError.mongoErrorDie("connect error")));
7
+ export const db = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), (client, dbName, options) => client.db(dbName, options));
8
+ const isMongoClient = x => x instanceof MongoClient_;
9
+ export const Tag = key => Context.GenericTag(key);
10
+ //# sourceMappingURL=MongoClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoClient.js","names":["Effect","F","MongoClient","MongoClient_","MongoError","Context","connect","url","options","promise","pipe","catchAll","mongoErrorDie","db","dual","args","isMongoClient","client","dbName","x","Tag","key","GenericTag"],"sources":["../../src/MongoClient.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AAEpC,SAASC,WAAW,IAAIC,YAAY,QAAQ,SAAS;AACrD,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AAIzC,OAAO,MAAMC,OAAO,GAAGA,CAACC,GAAW,EAAEC,OAA4B,KAC/DR,MAAM,CAACS,OAAO,CAAC,MAAMN,YAAY,CAACG,OAAO,CAACC,GAAG,EAAEC,OAAO,CAAC,CAAC,CAACE,IAAI,CAC3DV,MAAM,CAACW,QAAQ,CAACP,UAAU,CAACQ,aAAa,CAAe,eAAe,CAAC,CAAC,CACzE;AAEH,OAAO,MAAMC,EAAE,gBAGXZ,CAAC,CAACa,IAAI,CACPC,IAAI,IAAKC,aAAa,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAChC,CAACE,MAAmB,EAAEC,MAAe,EAAEV,OAAmB,KAAKS,MAAM,CAACJ,EAAE,CAACK,MAAM,EAAEV,OAAO,CAAC,CAC1F;AAED,MAAMQ,aAAa,GAAIG,CAAU,IAAKA,CAAC,YAAYhB,YAAY;AAM/D,OAAO,MAAMiB,GAAG,GAAsBC,GAAM,IAAKhB,OAAO,CAACiB,UAAU,CAAwBD,GAAG,CAAC","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @since 0.0.1
3
+ */
4
+ import * as Data from "effect/Data";
5
+ import * as Effect from "effect/Effect";
6
+ import * as F from "effect/Function";
7
+ import * as Match from "effect/Match";
8
+ import * as Stream from "effect/Stream";
9
+ import { MongoError as MongoError_ } from "mongodb";
10
+ export class MongoError extends /*#__PURE__*/Data.TaggedError("MongoError") {}
11
+ export const mongoErrorDie = /*#__PURE__*/F.dual(2, (error, message) => F.pipe(Match.value(error), Match.when(Match.instanceOf(MongoError_), innerError => Effect.fail(new MongoError({
12
+ message,
13
+ innerError
14
+ }))), Match.orElse(cause => Effect.die(new Error(message, {
15
+ cause
16
+ })))));
17
+ export const mongoErrorStream = /*#__PURE__*/F.dual(2, (error, message) => F.pipe(Match.value(error), Match.when(Match.instanceOf(MongoError_), innerError => Stream.fail(new MongoError({
18
+ message,
19
+ innerError
20
+ }))), Match.orElse(cause => Stream.die(new Error(message, {
21
+ cause
22
+ })))));
23
+ //# sourceMappingURL=MongoError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoError.js","names":["Data","Effect","F","Match","Stream","MongoError","MongoError_","TaggedError","mongoErrorDie","dual","error","message","pipe","value","when","instanceOf","innerError","fail","orElse","cause","die","Error","mongoErrorStream"],"sources":["../../src/MongoError.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AACpC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,UAAU,IAAIC,WAAW,QAAQ,SAAS;AAEnD,OAAM,MAAOD,UAAW,sBAAQL,IAAI,CAACO,WAAW,CAAC,YAAY,CAG3D;AAEF,OAAO,MAAMC,aAAa,gBAGtBN,CAAC,CAACO,IAAI,CAAC,CAAC,EAAE,CAAIC,KAAc,EAAEC,OAAe,KAC/CT,CAAC,CAACU,IAAI,CACJT,KAAK,CAACU,KAAK,CAACH,KAAK,CAAC,EAClBP,KAAK,CAACW,IAAI,CAACX,KAAK,CAACY,UAAU,CAACT,WAAW,CAAC,EAAGU,UAAU,IAAKf,MAAM,CAACgB,IAAI,CAAC,IAAIZ,UAAU,CAAC;EAAEM,OAAO;EAAEK;AAAU,CAAE,CAAC,CAAC,CAAC,EAC/Gb,KAAK,CAACe,MAAM,CAAEC,KAAK,IACjBlB,MAAM,CAACmB,GAAG,CACR,IAAIC,KAAK,CAACV,OAAO,EAAE;EACjBQ;CACD,CAAC,CACH,CACF,CACF,CAAC;AAEJ,OAAO,MAAMG,gBAAgB,gBAGzBpB,CAAC,CAACO,IAAI,CAAC,CAAC,EAAE,CAAIC,KAAc,EAAEC,OAAe,KAC/CT,CAAC,CAACU,IAAI,CACJT,KAAK,CAACU,KAAK,CAACH,KAAK,CAAC,EAClBP,KAAK,CAACW,IAAI,CAACX,KAAK,CAACY,UAAU,CAACT,WAAW,CAAC,EAAGU,UAAU,IAAKZ,MAAM,CAACa,IAAI,CAAC,IAAIZ,UAAU,CAAC;EAAEM,OAAO;EAAEK;AAAU,CAAE,CAAC,CAAC,CAAC,EAC/Gb,KAAK,CAACe,MAAM,CAAEC,KAAK,IAAKf,MAAM,CAACgB,GAAG,CAAC,IAAIC,KAAK,CAACV,OAAO,EAAE;EAAEQ;AAAK,CAAE,CAAC,CAAC,CAAC,CACnE,CAAC","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @since 0.0.1
3
+ */
4
+ export * as Collection from "./Collection.js";
5
+ /**
6
+ * @since 0.0.1
7
+ */
8
+ export * as Db from "./Db.js";
9
+ /**
10
+ * @since 0.0.1
11
+ */
12
+ export * as DocumentCollection from "./DocumentCollection.js";
13
+ /**
14
+ * @since 0.0.1
15
+ */
16
+ export * as DocumentFindCursor from "./DocumentFindCursor.js";
17
+ /**
18
+ * @since 0.0.1
19
+ */
20
+ export * as FindCursor from "./FindCursor.js";
21
+ /**
22
+ * @since 0.0.1
23
+ */
24
+ export * as MongoClient from "./MongoClient.js";
25
+ /**
26
+ * @since 0.0.1
27
+ */
28
+ export * as MongoError from "./MongoError.js";
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Collection","Db","DocumentCollection","DocumentFindCursor","FindCursor","MongoClient","MongoError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,EAAE,MAAM,SAAS;AAE7B;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ let moduleVersion = "0.0.2";
2
+ export const getCurrentVersion = () => moduleVersion;
3
+ export const setCurrentVersion = version => {
4
+ moduleVersion = version;
5
+ };
6
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","names":["moduleVersion","getCurrentVersion","setCurrentVersion","version"],"sources":["../../../src/internal/version.ts"],"sourcesContent":[null],"mappings":"AAAA,IAAIA,aAAa,GAAG,OAAO;AAE3B,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAMD,aAAa;AAEpD,OAAO,MAAME,iBAAiB,GAAIC,OAAe,IAAI;EACnDH,aAAa,GAAGG,OAAO;AACzB,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "module",
3
+ "sideEffects": []
4
+ }