@xyo-network/module-abstract-mongodb 2.74.3 → 2.74.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Module.d.mts +235 -12
- package/dist/Module.d.mts.map +1 -1
- package/dist/Module.d.ts +235 -12
- package/dist/Module.d.ts.map +1 -1
- package/dist/config/getBaseMongoSdk.d.mts +5 -0
- package/dist/config/getBaseMongoSdk.d.mts.map +1 -0
- package/dist/config/getBaseMongoSdk.d.ts +5 -0
- package/dist/config/getBaseMongoSdk.d.ts.map +1 -0
- package/dist/config/getMongoDBConfig.d.mts +5 -0
- package/dist/config/getMongoDBConfig.d.mts.map +1 -0
- package/dist/config/getMongoDBConfig.d.ts +5 -0
- package/dist/config/getMongoDBConfig.d.ts.map +1 -0
- package/dist/config/hasMongoDBConfig.d.mts +2 -0
- package/dist/config/hasMongoDBConfig.d.mts.map +1 -0
- package/dist/config/hasMongoDBConfig.d.ts +2 -0
- package/dist/config/hasMongoDBConfig.d.ts.map +1 -0
- package/dist/config/index.d.mts +4 -0
- package/dist/config/index.d.mts.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/docs.json +5013 -19933
- package/dist/index.js +79 -33
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +78 -32
- package/dist/index.mjs.map +1 -1
- package/dist/util/removeId.d.mts +2 -2
- package/dist/util/removeId.d.mts.map +1 -1
- package/dist/util/removeId.d.ts +2 -2
- package/dist/util/removeId.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/Module.ts +42 -27
- package/src/config/getBaseMongoSdk.ts +20 -0
- package/src/config/getMongoDBConfig.ts +18 -0
- package/src/config/hasMongoDBConfig.ts +9 -0
- package/src/config/index.ts +3 -0
package/dist/index.js
CHANGED
|
@@ -27,7 +27,7 @@ __export(src_exports, {
|
|
|
27
27
|
DefaultLimit: () => DefaultLimit,
|
|
28
28
|
DefaultMaxTimeMS: () => DefaultMaxTimeMS,
|
|
29
29
|
DefaultOrder: () => DefaultOrder,
|
|
30
|
-
|
|
30
|
+
MongoDBModuleMixin: () => MongoDBModuleMixin,
|
|
31
31
|
escapeChar: () => escapeChar,
|
|
32
32
|
fromDbProperty: () => fromDbProperty,
|
|
33
33
|
removeId: () => removeId,
|
|
@@ -57,12 +57,44 @@ var DefaultMaxTimeMS = 2e3;
|
|
|
57
57
|
var DefaultOrder = "desc";
|
|
58
58
|
|
|
59
59
|
// src/Module.ts
|
|
60
|
-
var
|
|
60
|
+
var import_assert2 = require("@xylabs/assert");
|
|
61
61
|
var import_lodash = require("@xylabs/lodash");
|
|
62
62
|
var import_static_implements = require("@xylabs/static-implements");
|
|
63
|
-
var import_module_abstract = require("@xyo-network/module-abstract");
|
|
64
63
|
var import_module_model_mongodb = require("@xyo-network/module-model-mongodb");
|
|
64
|
+
var import_sdk_xyo_mongo_js2 = require("@xyo-network/sdk-xyo-mongo-js");
|
|
65
|
+
|
|
66
|
+
// src/config/getBaseMongoSdk.ts
|
|
67
|
+
var import_assert = require("@xylabs/assert");
|
|
65
68
|
var import_sdk_xyo_mongo_js = require("@xyo-network/sdk-xyo-mongo-js");
|
|
69
|
+
|
|
70
|
+
// src/config/getMongoDBConfig.ts
|
|
71
|
+
var getMongoDBConfig = /* @__PURE__ */ __name(() => {
|
|
72
|
+
const env = {};
|
|
73
|
+
if (process.env.MONGO_CONNECTION_STRING) {
|
|
74
|
+
env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING;
|
|
75
|
+
}
|
|
76
|
+
if (process.env.MONGO_DOMAIN) {
|
|
77
|
+
env.MONGO_DATABASE = process.env.MONGO_DATABASE;
|
|
78
|
+
env.MONGO_DOMAIN = process.env.MONGO_DOMAIN;
|
|
79
|
+
env.MONGO_PASSWORD = process.env.MONGO_PASSWORD;
|
|
80
|
+
env.MONGO_USERNAME = process.env.MONGO_USERNAME;
|
|
81
|
+
}
|
|
82
|
+
return env;
|
|
83
|
+
}, "getMongoDBConfig");
|
|
84
|
+
|
|
85
|
+
// src/config/getBaseMongoSdk.ts
|
|
86
|
+
var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
|
|
87
|
+
const env = getMongoDBConfig();
|
|
88
|
+
return {
|
|
89
|
+
dbConnectionString: env.MONGO_CONNECTION_STRING,
|
|
90
|
+
dbDomain: (0, import_assert.assertEx)(env.MONGO_DOMAIN, "Missing Mongo Domain"),
|
|
91
|
+
dbName: (0, import_assert.assertEx)(env.MONGO_DATABASE, "Missing Mongo Database"),
|
|
92
|
+
dbPassword: (0, import_assert.assertEx)(env.MONGO_PASSWORD, "Missing Mongo Password"),
|
|
93
|
+
dbUserName: (0, import_assert.assertEx)(env.MONGO_USERNAME, "Missing Mongo Username")
|
|
94
|
+
};
|
|
95
|
+
}, "getBaseMongoSdkPrivateConfig");
|
|
96
|
+
|
|
97
|
+
// src/Module.ts
|
|
66
98
|
function _ts_decorate(decorators, target, key, desc) {
|
|
67
99
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
68
100
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
@@ -74,35 +106,49 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
74
106
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
75
107
|
}
|
|
76
108
|
__name(_ts_decorate, "_ts_decorate");
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
|
|
110
|
+
let MongoModuleBase = class MongoModuleBase extends ModuleBase {
|
|
111
|
+
static {
|
|
112
|
+
__name(this, "MongoModuleBase");
|
|
113
|
+
}
|
|
114
|
+
static labels = import_module_model_mongodb.MongoDBStorageClassLabels;
|
|
115
|
+
_boundWitnessSdk;
|
|
116
|
+
_payloadSdk;
|
|
117
|
+
get boundWitnessSdkConfig() {
|
|
118
|
+
const config = {
|
|
119
|
+
collection: COLLECTIONS.BoundWitnesses,
|
|
120
|
+
...getBaseMongoSdkPrivateConfig()
|
|
121
|
+
};
|
|
122
|
+
return (0, import_lodash.merge)(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
|
|
123
|
+
collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? "bound_witnesses"
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
get boundWitnesses() {
|
|
127
|
+
this._boundWitnessSdk = this._boundWitnessSdk ?? new import_sdk_xyo_mongo_js2.BaseMongoSdk(this.boundWitnessSdkConfig);
|
|
128
|
+
return (0, import_assert2.assertEx)(this._boundWitnessSdk);
|
|
129
|
+
}
|
|
130
|
+
get jobQueue() {
|
|
131
|
+
return (0, import_assert2.assertEx)(this.params.jobQueue, "MongoDBModule Error: jobQueue required for this module but is not defined");
|
|
132
|
+
}
|
|
133
|
+
get payloadSdkConfig() {
|
|
134
|
+
const config = {
|
|
135
|
+
collection: COLLECTIONS.Payloads,
|
|
136
|
+
...getBaseMongoSdkPrivateConfig()
|
|
137
|
+
};
|
|
138
|
+
return (0, import_lodash.merge)(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
|
|
139
|
+
collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? "payload"
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
get payloads() {
|
|
143
|
+
this._payloadSdk = this._payloadSdk ?? new import_sdk_xyo_mongo_js2.BaseMongoSdk(this.payloadSdkConfig);
|
|
144
|
+
return (0, import_assert2.assertEx)(this._payloadSdk);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
MongoModuleBase = _ts_decorate([
|
|
148
|
+
(0, import_static_implements.staticImplements)()
|
|
149
|
+
], MongoModuleBase);
|
|
150
|
+
return MongoModuleBase;
|
|
151
|
+
}, "MongoDBModuleMixin");
|
|
106
152
|
|
|
107
153
|
// src/util/dbProperty.ts
|
|
108
154
|
var escapeChar = "#";
|
|
@@ -122,7 +168,7 @@ var removeId = /* @__PURE__ */ __name((payload) => {
|
|
|
122
168
|
DefaultLimit,
|
|
123
169
|
DefaultMaxTimeMS,
|
|
124
170
|
DefaultOrder,
|
|
125
|
-
|
|
171
|
+
MongoDBModuleMixin,
|
|
126
172
|
escapeChar,
|
|
127
173
|
fromDbProperty,
|
|
128
174
|
removeId,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/Collections.ts","../src/Databases.ts","../src/Defaults.ts","../src/Module.ts","../src/util/dbProperty.ts","../src/util/removeId.ts"],"sourcesContent":["export * from './Collections'\nexport * from './Databases'\nexport * from './Defaults'\nexport * from './Module'\nexport * from './util'\n","// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport {
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/Collections.ts","../src/Databases.ts","../src/Defaults.ts","../src/Module.ts","../src/config/getBaseMongoSdk.ts","../src/config/getMongoDBConfig.ts","../src/util/dbProperty.ts","../src/util/removeId.ts"],"sourcesContent":["export * from './Collections'\nexport * from './Databases'\nexport * from './Defaults'\nexport * from './Module'\nexport * from './util'\n","// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/node-core-model'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? 'bound_witnesses',\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? 'payload',\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n }\n return MongoModuleBase\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","import_assert","import_sdk_xyo_mongo_js","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","staticImplements","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
|
package/dist/index.mjs
CHANGED
|
@@ -23,12 +23,44 @@ var DefaultMaxTimeMS = 2e3;
|
|
|
23
23
|
var DefaultOrder = "desc";
|
|
24
24
|
|
|
25
25
|
// src/Module.ts
|
|
26
|
-
import { assertEx } from "@xylabs/assert";
|
|
26
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
27
27
|
import { merge } from "@xylabs/lodash";
|
|
28
28
|
import { staticImplements } from "@xylabs/static-implements";
|
|
29
|
-
import { AbstractModuleInstance } from "@xyo-network/module-abstract";
|
|
30
29
|
import { MongoDBStorageClassLabels } from "@xyo-network/module-model-mongodb";
|
|
30
|
+
import { BaseMongoSdk as BaseMongoSdk2 } from "@xyo-network/sdk-xyo-mongo-js";
|
|
31
|
+
|
|
32
|
+
// src/config/getBaseMongoSdk.ts
|
|
33
|
+
import { assertEx } from "@xylabs/assert";
|
|
31
34
|
import { BaseMongoSdk } from "@xyo-network/sdk-xyo-mongo-js";
|
|
35
|
+
|
|
36
|
+
// src/config/getMongoDBConfig.ts
|
|
37
|
+
var getMongoDBConfig = /* @__PURE__ */ __name(() => {
|
|
38
|
+
const env = {};
|
|
39
|
+
if (process.env.MONGO_CONNECTION_STRING) {
|
|
40
|
+
env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING;
|
|
41
|
+
}
|
|
42
|
+
if (process.env.MONGO_DOMAIN) {
|
|
43
|
+
env.MONGO_DATABASE = process.env.MONGO_DATABASE;
|
|
44
|
+
env.MONGO_DOMAIN = process.env.MONGO_DOMAIN;
|
|
45
|
+
env.MONGO_PASSWORD = process.env.MONGO_PASSWORD;
|
|
46
|
+
env.MONGO_USERNAME = process.env.MONGO_USERNAME;
|
|
47
|
+
}
|
|
48
|
+
return env;
|
|
49
|
+
}, "getMongoDBConfig");
|
|
50
|
+
|
|
51
|
+
// src/config/getBaseMongoSdk.ts
|
|
52
|
+
var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
|
|
53
|
+
const env = getMongoDBConfig();
|
|
54
|
+
return {
|
|
55
|
+
dbConnectionString: env.MONGO_CONNECTION_STRING,
|
|
56
|
+
dbDomain: assertEx(env.MONGO_DOMAIN, "Missing Mongo Domain"),
|
|
57
|
+
dbName: assertEx(env.MONGO_DATABASE, "Missing Mongo Database"),
|
|
58
|
+
dbPassword: assertEx(env.MONGO_PASSWORD, "Missing Mongo Password"),
|
|
59
|
+
dbUserName: assertEx(env.MONGO_USERNAME, "Missing Mongo Username")
|
|
60
|
+
};
|
|
61
|
+
}, "getBaseMongoSdkPrivateConfig");
|
|
62
|
+
|
|
63
|
+
// src/Module.ts
|
|
32
64
|
function _ts_decorate(decorators, target, key, desc) {
|
|
33
65
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
34
66
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
@@ -40,35 +72,49 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
40
72
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
41
73
|
}
|
|
42
74
|
__name(_ts_decorate, "_ts_decorate");
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
75
|
+
var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
|
|
76
|
+
let MongoModuleBase = class MongoModuleBase extends ModuleBase {
|
|
77
|
+
static {
|
|
78
|
+
__name(this, "MongoModuleBase");
|
|
79
|
+
}
|
|
80
|
+
static labels = MongoDBStorageClassLabels;
|
|
81
|
+
_boundWitnessSdk;
|
|
82
|
+
_payloadSdk;
|
|
83
|
+
get boundWitnessSdkConfig() {
|
|
84
|
+
const config = {
|
|
85
|
+
collection: COLLECTIONS.BoundWitnesses,
|
|
86
|
+
...getBaseMongoSdkPrivateConfig()
|
|
87
|
+
};
|
|
88
|
+
return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
|
|
89
|
+
collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? "bound_witnesses"
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
get boundWitnesses() {
|
|
93
|
+
this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk2(this.boundWitnessSdkConfig);
|
|
94
|
+
return assertEx2(this._boundWitnessSdk);
|
|
95
|
+
}
|
|
96
|
+
get jobQueue() {
|
|
97
|
+
return assertEx2(this.params.jobQueue, "MongoDBModule Error: jobQueue required for this module but is not defined");
|
|
98
|
+
}
|
|
99
|
+
get payloadSdkConfig() {
|
|
100
|
+
const config = {
|
|
101
|
+
collection: COLLECTIONS.Payloads,
|
|
102
|
+
...getBaseMongoSdkPrivateConfig()
|
|
103
|
+
};
|
|
104
|
+
return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
|
|
105
|
+
collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? "payload"
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
get payloads() {
|
|
109
|
+
this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk2(this.payloadSdkConfig);
|
|
110
|
+
return assertEx2(this._payloadSdk);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
MongoModuleBase = _ts_decorate([
|
|
114
|
+
staticImplements()
|
|
115
|
+
], MongoModuleBase);
|
|
116
|
+
return MongoModuleBase;
|
|
117
|
+
}, "MongoDBModuleMixin");
|
|
72
118
|
|
|
73
119
|
// src/util/dbProperty.ts
|
|
74
120
|
var escapeChar = "#";
|
|
@@ -87,7 +133,7 @@ export {
|
|
|
87
133
|
DefaultLimit,
|
|
88
134
|
DefaultMaxTimeMS,
|
|
89
135
|
DefaultOrder,
|
|
90
|
-
|
|
136
|
+
MongoDBModuleMixin,
|
|
91
137
|
escapeChar,
|
|
92
138
|
fromDbProperty,
|
|
93
139
|
removeId,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Collections.ts","../src/Databases.ts","../src/Defaults.ts","../src/Module.ts","../src/util/dbProperty.ts","../src/util/removeId.ts"],"sourcesContent":["// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport {
|
|
1
|
+
{"version":3,"sources":["../src/Collections.ts","../src/Databases.ts","../src/Defaults.ts","../src/Module.ts","../src/config/getBaseMongoSdk.ts","../src/config/getMongoDBConfig.ts","../src/util/dbProperty.ts","../src/util/removeId.ts"],"sourcesContent":["// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/node-core-model'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? 'bound_witnesses',\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? 'payload',\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n }\n return MongoModuleBase\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","assertEx","merge","staticImplements","MongoDBStorageClassLabels","BaseMongoSdk","assertEx","BaseMongoSdk","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","staticImplements","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
|
package/dist/util/removeId.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OptionalId, WithId, WithoutId } from 'mongodb';
|
|
2
2
|
export declare const removeId: <T extends {
|
|
3
3
|
schema: string;
|
|
4
|
-
} = {
|
|
4
|
+
} & import("@xyo-network/payload-model").PayloadFields = {
|
|
5
5
|
schema: string;
|
|
6
|
-
}>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
6
|
+
} & import("@xyo-network/payload-model").PayloadFields>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
7
7
|
//# sourceMappingURL=removeId.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;
|
|
1
|
+
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;8HAIpB,CAAA"}
|
package/dist/util/removeId.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OptionalId, WithId, WithoutId } from 'mongodb';
|
|
2
2
|
export declare const removeId: <T extends {
|
|
3
3
|
schema: string;
|
|
4
|
-
} = {
|
|
4
|
+
} & import("@xyo-network/payload-model").PayloadFields = {
|
|
5
5
|
schema: string;
|
|
6
|
-
}>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
6
|
+
} & import("@xyo-network/payload-model").PayloadFields>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
7
7
|
//# sourceMappingURL=removeId.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;
|
|
1
|
+
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;8HAIpB,CAAA"}
|
package/package.json
CHANGED
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.11.7",
|
|
14
|
+
"@xylabs/exists": "^2.11.7",
|
|
14
15
|
"@xylabs/lodash": "^2.11.7",
|
|
15
16
|
"@xylabs/static-implements": "^2.11.7",
|
|
16
|
-
"@xyo-network/module-
|
|
17
|
-
"@xyo-network/module-model": "~2.74.
|
|
18
|
-
"@xyo-network/
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"
|
|
21
|
-
"mongodb": "^5.9.0"
|
|
17
|
+
"@xyo-network/module-model": "~2.74.5",
|
|
18
|
+
"@xyo-network/module-model-mongodb": "~2.74.5",
|
|
19
|
+
"@xyo-network/node-core-model": "~2.74.5",
|
|
20
|
+
"@xyo-network/payload-model": "~2.74.5",
|
|
21
|
+
"mongodb": "^6.1.0"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"@xyo-network/sdk-xyo-mongo-js": "~2.74.
|
|
24
|
+
"@xyo-network/sdk-xyo-mongo-js": "~2.74.5"
|
|
25
25
|
},
|
|
26
26
|
"peerDependenciesMeta": {
|
|
27
27
|
"@xyo-network/sdk-xyo-mongo-js": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@xylabs/ts-scripts-yarn3": "^3.0.28",
|
|
33
33
|
"@xylabs/tsconfig": "^3.0.28",
|
|
34
|
-
"@xyo-network/sdk-xyo-mongo-js": "~2.74.
|
|
34
|
+
"@xyo-network/sdk-xyo-mongo-js": "~2.74.5",
|
|
35
35
|
"fake-indexeddb": "^4.0.2",
|
|
36
36
|
"typescript": "^5.2.2"
|
|
37
37
|
},
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
70
70
|
},
|
|
71
71
|
"sideEffects": false,
|
|
72
|
-
"version": "2.74.
|
|
72
|
+
"version": "2.74.5"
|
|
73
73
|
}
|
package/src/Module.ts
CHANGED
|
@@ -1,41 +1,56 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { merge } from '@xylabs/lodash'
|
|
3
3
|
import { staticImplements } from '@xylabs/static-implements'
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { MongoDBModuleParams, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'
|
|
4
|
+
import { Module } from '@xyo-network/module-model'
|
|
5
|
+
import { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'
|
|
7
6
|
import { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/node-core-model'
|
|
8
7
|
import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
import { COLLECTIONS } from './Collections'
|
|
10
|
+
import { getBaseMongoSdkPrivateConfig } from './config'
|
|
11
|
+
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
export type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>
|
|
14
|
+
|
|
15
|
+
export const MongoDBModuleMixin = <
|
|
12
16
|
TParams extends MongoDBModuleParams = MongoDBModuleParams,
|
|
13
|
-
|
|
14
|
-
>
|
|
15
|
-
|
|
17
|
+
TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,
|
|
18
|
+
>(
|
|
19
|
+
ModuleBase: TModule,
|
|
20
|
+
) => {
|
|
21
|
+
@staticImplements<MongoDBModuleStatic>()
|
|
22
|
+
abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {
|
|
23
|
+
static labels = MongoDBStorageClassLabels
|
|
24
|
+
_boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined
|
|
25
|
+
_payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined
|
|
16
26
|
|
|
17
|
-
|
|
18
|
-
|
|
27
|
+
get boundWitnessSdkConfig(): BaseMongoSdkConfig {
|
|
28
|
+
const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }
|
|
29
|
+
return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
|
|
30
|
+
collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? 'bound_witnesses',
|
|
31
|
+
})
|
|
32
|
+
}
|
|
19
33
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
}
|
|
34
|
+
get boundWitnesses() {
|
|
35
|
+
this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)
|
|
36
|
+
return assertEx(this._boundWitnessSdk)
|
|
37
|
+
}
|
|
25
38
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
39
|
+
get jobQueue() {
|
|
40
|
+
return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')
|
|
41
|
+
}
|
|
30
42
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
43
|
+
get payloadSdkConfig(): BaseMongoSdkConfig {
|
|
44
|
+
const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }
|
|
45
|
+
return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
|
|
46
|
+
collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? 'payload',
|
|
47
|
+
})
|
|
48
|
+
}
|
|
36
49
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
50
|
+
get payloads() {
|
|
51
|
+
this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)
|
|
52
|
+
return assertEx(this._payloadSdk)
|
|
53
|
+
}
|
|
40
54
|
}
|
|
55
|
+
return MongoModuleBase
|
|
41
56
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'
|
|
3
|
+
import { Document } from 'mongodb'
|
|
4
|
+
|
|
5
|
+
import { getMongoDBConfig } from './getMongoDBConfig'
|
|
6
|
+
|
|
7
|
+
export const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {
|
|
8
|
+
const env = getMongoDBConfig()
|
|
9
|
+
return {
|
|
10
|
+
dbConnectionString: env.MONGO_CONNECTION_STRING,
|
|
11
|
+
dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),
|
|
12
|
+
dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),
|
|
13
|
+
dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),
|
|
14
|
+
dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const getBaseMongoSdk = <T extends Document>(collection: string) => {
|
|
19
|
+
return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })
|
|
20
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'
|
|
2
|
+
export type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'
|
|
3
|
+
|
|
4
|
+
export type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>
|
|
5
|
+
|
|
6
|
+
export const getMongoDBConfig = (): MongoEnv => {
|
|
7
|
+
const env: MongoEnv = {} as MongoEnv
|
|
8
|
+
if (process.env.MONGO_CONNECTION_STRING) {
|
|
9
|
+
env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING
|
|
10
|
+
}
|
|
11
|
+
if (process.env.MONGO_DOMAIN) {
|
|
12
|
+
env.MONGO_DATABASE = process.env.MONGO_DATABASE
|
|
13
|
+
env.MONGO_DOMAIN = process.env.MONGO_DOMAIN
|
|
14
|
+
env.MONGO_PASSWORD = process.env.MONGO_PASSWORD
|
|
15
|
+
env.MONGO_USERNAME = process.env.MONGO_USERNAME
|
|
16
|
+
}
|
|
17
|
+
return env
|
|
18
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { exists } from '@xylabs/exists'
|
|
2
|
+
|
|
3
|
+
import { getMongoDBConfig } from './getMongoDBConfig'
|
|
4
|
+
|
|
5
|
+
export const hasMongoDBConfig = (): boolean => {
|
|
6
|
+
const env = getMongoDBConfig()
|
|
7
|
+
const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]
|
|
8
|
+
return requiredValues.every(exists)
|
|
9
|
+
}
|