nodecommons-esm-database-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.
@@ -0,0 +1,4 @@
1
+ import { CommonsMongodbService } from './services/commons-mongodb.service.mjs';
2
+ import { TCommonsMongoId, isTCommonsMongoId, fromTCommonsMongoId } from './types/tcommons-mongo-id.mjs';
3
+ import { ICommonsMongoIdRow, isICommonsMongoIdRow, removeICommonsMongoIdRow } from './interfaces/icommons-mongo-id-row.mjs';
4
+ export { CommonsMongodbService, TCommonsMongoId, isTCommonsMongoId, fromTCommonsMongoId, ICommonsMongoIdRow, isICommonsMongoIdRow, removeICommonsMongoIdRow };
package/dist/index.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import { CommonsMongodbService } from './services/commons-mongodb.service.mjs';
2
+ import { isTCommonsMongoId, fromTCommonsMongoId } from './types/tcommons-mongo-id.mjs';
3
+ import { isICommonsMongoIdRow, removeICommonsMongoIdRow } from './interfaces/icommons-mongo-id-row.mjs';
4
+ export { CommonsMongodbService, isTCommonsMongoId, fromTCommonsMongoId, isICommonsMongoIdRow, removeICommonsMongoIdRow };
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAmB,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACxG,OAAO,EAAsB,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAC5H,OAAO,EACN,qBAAqB,EAErB,iBAAiB,EACjB,mBAAmB,EAEnB,oBAAoB,EACpB,wBAAwB,EACxB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { TPropertyObject } from 'tscommons-esm-core';
2
+ import { TCommonsMongoId } from '../types/tcommons-mongo-id.mjs';
3
+ export interface ICommonsMongoIdRow {
4
+ readonly _id: TCommonsMongoId;
5
+ }
6
+ export declare function isICommonsMongoIdRow(test: unknown): test is ICommonsMongoIdRow;
7
+ export declare function removeICommonsMongoIdRow<SchemaT extends TPropertyObject>(src: SchemaT & ICommonsMongoIdRow): SchemaT;
@@ -0,0 +1,15 @@
1
+ import { commonsTypeHasProperty } from 'tscommons-esm-core';
2
+ import { isTCommonsMongoId } from '../types/tcommons-mongo-id.mjs';
3
+ export function isICommonsMongoIdRow(test) {
4
+ if (!commonsTypeHasProperty(test, '_id'))
5
+ return false;
6
+ if (!isTCommonsMongoId(test['_id']))
7
+ return false;
8
+ return true;
9
+ }
10
+ export function removeICommonsMongoIdRow(src) {
11
+ const withoutId = { ...src };
12
+ delete (withoutId['_id']);
13
+ return withoutId;
14
+ }
15
+ //# sourceMappingURL=icommons-mongo-id-row.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-mongo-id-row.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-mongo-id-row.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAmB,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAmB,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAMpF,MAAM,UAAU,oBAAoB,CAAC,IAAa;IACjD,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAElD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAkC,GAAiC;IAC1G,MAAM,SAAS,GAAY,EAAE,GAAG,GAAG,EAAE,CAAC;IACtC,OAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAEzB,OAAO,SAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import mongodb from 'mongodb';
2
+ import { TPropertyObject } from 'tscommons-esm-core';
3
+ import { CommonsNosqlDatabaseService, ICommonsCredentials } from 'nodecommons-esm-database';
4
+ import { ICommonsMongoIdRow } from '../interfaces/icommons-mongo-id-row.mjs';
5
+ export declare abstract class CommonsMongodbService extends CommonsNosqlDatabaseService<ICommonsCredentials> {
6
+ private client;
7
+ protected database: mongodb.Db | undefined;
8
+ protected init(): Promise<void>;
9
+ ensureCollection<SchemaT extends TPropertyObject>(name: string, options?: mongodb.CreateCollectionOptions): Promise<mongodb.Collection<SchemaT>>;
10
+ close(): Promise<void>;
11
+ protected getRawDatabase(): mongodb.Db;
12
+ forEachQueryResults<SchemaT extends TPropertyObject>(results: mongodb.AggregationCursor<SchemaT> | mongodb.FindCursor<SchemaT>, isT: (t: unknown) => t is SchemaT, callback: (t: SchemaT) => Promise<boolean | void>): Promise<boolean>;
13
+ listQueryResults<SchemaT extends TPropertyObject>(results: mongodb.AggregationCursor<SchemaT> | mongodb.FindCursor<SchemaT>, isT: (t: unknown) => t is SchemaT): Promise<SchemaT[]>;
14
+ listFirstQueryResult<SchemaT extends TPropertyObject>(results: mongodb.AggregationCursor<SchemaT> | mongodb.FindCursor<SchemaT>, isT: (t: unknown) => t is SchemaT): Promise<SchemaT | undefined>;
15
+ listQueryResultsWithoutIds<SchemaT extends TPropertyObject>(results: mongodb.AggregationCursor<SchemaT & ICommonsMongoIdRow> | mongodb.FindCursor<SchemaT & ICommonsMongoIdRow>, isT: (t: unknown) => t is SchemaT): Promise<SchemaT[]>;
16
+ listFirstQueryResultWithoutId<SchemaT extends TPropertyObject>(results: mongodb.AggregationCursor<SchemaT & ICommonsMongoIdRow> | mongodb.FindCursor<SchemaT & ICommonsMongoIdRow>, isT: (t: unknown) => t is SchemaT): Promise<SchemaT | undefined>;
17
+ listQueryResultsAsIdKeyObject<SchemaT extends TPropertyObject>(results: mongodb.AggregationCursor<ICommonsMongoIdRow & SchemaT> | mongodb.FindCursor<ICommonsMongoIdRow & SchemaT>, isT: (t: unknown) => t is SchemaT): Promise<{
18
+ [_id: string]: SchemaT;
19
+ }>;
20
+ }
@@ -0,0 +1,106 @@
1
+ import mongodb from 'mongodb';
2
+ import { CommonsNosqlDatabaseService } from 'nodecommons-esm-database';
3
+ import { isICommonsMongoIdRow, removeICommonsMongoIdRow } from '../interfaces/icommons-mongo-id-row.mjs';
4
+ import { fromTCommonsMongoId } from '../types/tcommons-mongo-id.mjs';
5
+ export class CommonsMongodbService extends CommonsNosqlDatabaseService {
6
+ client;
7
+ database;
8
+ async init() {
9
+ const connectionStringComponents = ['mongodb://'];
10
+ if (this.credentials.user && this.credentials.user !== '') {
11
+ const up = [this.credentials.user];
12
+ if (this.credentials.password && this.credentials.password !== '') {
13
+ up.push(this.credentials.password);
14
+ }
15
+ connectionStringComponents.push(`${up.join(':')}@`);
16
+ }
17
+ connectionStringComponents.push(this.credentials.host || 'localhost');
18
+ connectionStringComponents.push(`:${this.credentials.port || 27017}/`);
19
+ if (this.credentials.authSource) {
20
+ connectionStringComponents.push(`?authSource=${this.credentials.authSource}`);
21
+ }
22
+ const connectionString = connectionStringComponents.join('');
23
+ this.client = await mongodb.MongoClient.connect(connectionString);
24
+ this.database = this.client.db(this.credentials.name);
25
+ }
26
+ async ensureCollection(name, options) {
27
+ // because the mongodb methods return Collection<any>, it matches Collection<T>
28
+ // however be aware it isn't actually being checked (nor could it)
29
+ const existing = (await this.getRawDatabase().collections())
30
+ .find((collection) => collection.collectionName === name);
31
+ if (existing)
32
+ return existing;
33
+ return await this.getRawDatabase().createCollection(name, options);
34
+ }
35
+ async close() {
36
+ if (this.client)
37
+ await this.client.close();
38
+ }
39
+ getRawDatabase() {
40
+ if (!this.database)
41
+ throw new Error('No client is initialised yet');
42
+ return this.database;
43
+ }
44
+ async forEachQueryResults(results, isT, callback) {
45
+ try {
46
+ while (await results.hasNext()) {
47
+ const next = await results.next();
48
+ if (!next)
49
+ break;
50
+ if (!isT(next))
51
+ throw new Error('Invalid row returned from database');
52
+ const outcome = await callback(next);
53
+ if (outcome === false)
54
+ return false;
55
+ }
56
+ return true;
57
+ }
58
+ finally {
59
+ await results.close();
60
+ }
61
+ }
62
+ async listQueryResults(results, isT) {
63
+ const items = [];
64
+ await this.forEachQueryResults(results, isT, async (t) => {
65
+ items.push(t);
66
+ });
67
+ return items;
68
+ }
69
+ async listFirstQueryResult(results, isT) {
70
+ const all = await this.listQueryResults(results, isT);
71
+ if (all.length === 0)
72
+ return undefined;
73
+ return all[0];
74
+ }
75
+ async listQueryResultsWithoutIds(results, isT) {
76
+ const items = [];
77
+ await this.forEachQueryResults(results, isT, async (t) => {
78
+ if (!isICommonsMongoIdRow(t))
79
+ throw new Error('Returned row lacked an _id field');
80
+ items.push(removeICommonsMongoIdRow(t));
81
+ });
82
+ return items;
83
+ }
84
+ async listFirstQueryResultWithoutId(results, isT) {
85
+ const all = await this.listQueryResultsWithoutIds(results, isT);
86
+ if (all.length === 0)
87
+ return undefined;
88
+ return all[0];
89
+ }
90
+ async listQueryResultsAsIdKeyObject(results, isT) {
91
+ const items = await this.listQueryResults(results, (t) => {
92
+ if (!isICommonsMongoIdRow(t))
93
+ return false;
94
+ if (!isT(t))
95
+ return false;
96
+ return true;
97
+ });
98
+ const object = {};
99
+ for (const item of items) {
100
+ const id = fromTCommonsMongoId(item._id); // eslint-disable-line no-underscore-dangle
101
+ object[id] = removeICommonsMongoIdRow(item);
102
+ }
103
+ return object;
104
+ }
105
+ }
106
+ //# sourceMappingURL=commons-mongodb.service.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commons-mongodb.service.mjs","sourceRoot":"","sources":["../../src/services/commons-mongodb.service.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ObjectId } from 'bson';
2
+ import { TPropertyObject } from 'tscommons-esm-core';
3
+ export type TCommonsMongoId = ObjectId | number | string | TPropertyObject;
4
+ export declare function isTCommonsMongoId(test: unknown): test is TCommonsMongoId;
5
+ export declare function fromTCommonsMongoId(id: TCommonsMongoId): string;
@@ -0,0 +1,24 @@
1
+ import { ObjectId } from 'bson';
2
+ import { commonsTypeIsString, commonsTypeIsNumber, commonsTypeIsObject, commonsTypeIsPropertyObject } from 'tscommons-esm-core';
3
+ export function isTCommonsMongoId(test) {
4
+ // we can't use ObjectId.isValid, as sometimes group._id etc. is returning custom data rather than a true id
5
+ if (commonsTypeIsString(test))
6
+ return true;
7
+ if (commonsTypeIsNumber(test))
8
+ return true;
9
+ if (commonsTypeIsObject(test) && ObjectId.isValid(test))
10
+ return true;
11
+ if (commonsTypeIsPropertyObject(test))
12
+ return true;
13
+ return false;
14
+ }
15
+ export function fromTCommonsMongoId(id) {
16
+ if (commonsTypeIsString(id))
17
+ return id;
18
+ if (commonsTypeIsNumber(id))
19
+ return id.toString(16);
20
+ if (commonsTypeIsObject(id) && ObjectId.isValid(id))
21
+ return id.toHexString(); // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion
22
+ throw new Error('Unable to convert TCommonsMongoId to string as it doesn\'t match any known ObjectId or primative data types');
23
+ }
24
+ //# sourceMappingURL=tcommons-mongo-id.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tcommons-mongo-id.mjs","sourceRoot":"","sources":["../../src/types/tcommons-mongo-id.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EAEnB,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAI5B,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC9C,4GAA4G;IAC5G,IAAI,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAA2B,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5F,IAAI,2BAA2B,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAAmB;IACtD,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpD,IAAI,mBAAmB,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAyB,CAAC;QAAE,OAAQ,EAA0B,CAAC,WAAW,EAAY,CAAC,CAAC,uEAAuE;IAE/M,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;AAChI,CAAC"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "nodecommons-esm-database-mongodb",
3
+ "version": "0.0.2",
4
+ "description": "",
5
+ "scripts": {
6
+ "tsc": "./node_modules/typescript/bin/tsc",
7
+ "preprepare": "rm -rf ./dist; php ~/Dev/etim.php src/ && npm run tsc",
8
+ "publish-major": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version major && npm install && npm publish && git add . && git commit -m 'publish'",
9
+ "publish-minor": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version minor && npm install && npm publish && git add . && git commit -m 'publish'",
10
+ "publish-patch": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version patch && npm install && npm publish && git add . && git commit -m 'publish'"
11
+ },
12
+ "main": "dist/index.mjs",
13
+ "types": "dist/index.d.mjs",
14
+ "type": "module",
15
+ "author": "Pete Morris",
16
+ "license": "ISC",
17
+ "devDependencies": {
18
+ "@stylistic/eslint-plugin-ts": "^2.11.0",
19
+ "@types/node": "^22.10.0",
20
+ "eslint-plugin-import": "^2.31.0",
21
+ "eslint-plugin-prefer-arrow-functions": "^3.4.1",
22
+ "typescript": "^5.7.2",
23
+ "typescript-eslint": "^8.16.0"
24
+ },
25
+ "files": [
26
+ "dist/**/*"
27
+ ],
28
+ "dependencies": {
29
+ "bson": "^6.10.1",
30
+ "mongodb": "^6.12.0",
31
+ "nodecommons-esm-database": "^0.0.9",
32
+ "tscommons-esm-core": "^0.0.4"
33
+ }
34
+ }