@unchainedshop/mongodb 1.1.7 → 1.1.9

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,7 @@
1
+ This directory and the files immediately inside it are automatically generated
2
+ when you change this package's NPM dependencies. Commit the files in this
3
+ directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
4
+ so that others run the same versions of sub-dependencies.
5
+
6
+ You should NOT check in the node_modules directory that Meteor automatically
7
+ creates; if you are using git, the .gitignore file tells git to ignore it.
@@ -0,0 +1,240 @@
1
+ {
2
+ "lockfileVersion": 1,
3
+ "dependencies": {
4
+ "@colors/colors": {
5
+ "version": "1.5.0",
6
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
7
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="
8
+ },
9
+ "@dabh/diagnostics": {
10
+ "version": "2.0.3",
11
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
12
+ "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA=="
13
+ },
14
+ "@unchainedshop/logger": {
15
+ "version": "1.1.3",
16
+ "resolved": "https://registry.npmjs.org/@unchainedshop/logger/-/logger-1.1.3.tgz",
17
+ "integrity": "sha512-tYQIMhkSRehRTcIG7g04lMsYj+9E5gs+rH4/KLWMGkHOMawwn6Gzy2Q3ecuDBGWoR79zTv6LaHJ4b23pAktzwA=="
18
+ },
19
+ "@unchainedshop/utils": {
20
+ "version": "1.1.3",
21
+ "resolved": "https://registry.npmjs.org/@unchainedshop/utils/-/utils-1.1.3.tgz",
22
+ "integrity": "sha512-5kUVHspX3RQK2dSiV6rr7FEn4VbP94M3EySxkDxH9Ck6WvZd9rVPjJiaOQwAK5ChC6EGdghqOI5D7pJQsuKi7g=="
23
+ },
24
+ "abort-controller": {
25
+ "version": "3.0.0",
26
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
27
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="
28
+ },
29
+ "async": {
30
+ "version": "3.2.4",
31
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
32
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
33
+ },
34
+ "base64-js": {
35
+ "version": "1.5.1",
36
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
37
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
38
+ },
39
+ "bson": {
40
+ "version": "4.6.4",
41
+ "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz",
42
+ "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ=="
43
+ },
44
+ "buffer": {
45
+ "version": "5.7.1",
46
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
47
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="
48
+ },
49
+ "clone": {
50
+ "version": "2.1.2",
51
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
52
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
53
+ },
54
+ "color": {
55
+ "version": "3.2.1",
56
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
57
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA=="
58
+ },
59
+ "color-convert": {
60
+ "version": "1.9.3",
61
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
62
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
63
+ },
64
+ "color-name": {
65
+ "version": "1.1.3",
66
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
67
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
68
+ },
69
+ "color-string": {
70
+ "version": "1.9.1",
71
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
72
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="
73
+ },
74
+ "colorspace": {
75
+ "version": "1.1.4",
76
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
77
+ "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w=="
78
+ },
79
+ "enabled": {
80
+ "version": "2.0.0",
81
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
82
+ "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
83
+ },
84
+ "event-target-shim": {
85
+ "version": "5.0.1",
86
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
87
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
88
+ },
89
+ "fecha": {
90
+ "version": "4.2.3",
91
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
92
+ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
93
+ },
94
+ "fn.name": {
95
+ "version": "1.1.0",
96
+ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
97
+ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
98
+ },
99
+ "hashids": {
100
+ "version": "2.2.10",
101
+ "resolved": "https://registry.npmjs.org/hashids/-/hashids-2.2.10.tgz",
102
+ "integrity": "sha512-nXnYums7F8B5Y+GSThutLPlKMaamW1yjWNZVt0WModiJfdjaDZHnhYTWblS+h1OoBx3yjwiBwxldPP3nIbFSSA=="
103
+ },
104
+ "ieee754": {
105
+ "version": "1.2.1",
106
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
107
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
108
+ },
109
+ "inherits": {
110
+ "version": "2.0.4",
111
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
112
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
113
+ },
114
+ "is-arrayish": {
115
+ "version": "0.3.2",
116
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
117
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
118
+ },
119
+ "is-stream": {
120
+ "version": "2.0.1",
121
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
122
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
123
+ },
124
+ "kuler": {
125
+ "version": "2.0.0",
126
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
127
+ "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
128
+ },
129
+ "locale": {
130
+ "version": "0.1.0",
131
+ "resolved": "https://registry.npmjs.org/locale/-/locale-0.1.0.tgz",
132
+ "integrity": "sha512-rY3ZMnUkMfaZEix1fp/pjdwsHJkDQcE0UEcXHuYI77J03K8gddL3iD+UuJCLAmT2Z2oz5A70/0QS4J9OLCCvXw=="
133
+ },
134
+ "lodash._reinterpolate": {
135
+ "version": "3.0.0",
136
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
137
+ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA=="
138
+ },
139
+ "lodash.template": {
140
+ "version": "4.5.0",
141
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
142
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A=="
143
+ },
144
+ "lodash.templatesettings": {
145
+ "version": "4.2.0",
146
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
147
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ=="
148
+ },
149
+ "logform": {
150
+ "version": "2.4.1",
151
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.1.tgz",
152
+ "integrity": "sha512-7XB/tqc3VRbri9pRjU6E97mQ8vC27ivJ3lct4jhyT+n0JNDd4YKldFl0D75NqDp46hk8RC7Ma1Vjv/UPf67S+A=="
153
+ },
154
+ "lru-cache": {
155
+ "version": "7.10.2",
156
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.2.tgz",
157
+ "integrity": "sha512-9zDbhgmXAUvUMPV81A705K3tVzcPiZL3Bf5/5JC/FjYJlLZ5AJCeqIRFHJqyBppiLosqF+uKB7p8/RDXylqBIw=="
158
+ },
159
+ "message-box": {
160
+ "version": "0.2.7",
161
+ "resolved": "https://registry.npmjs.org/message-box/-/message-box-0.2.7.tgz",
162
+ "integrity": "sha512-C4ccA5nHb58kTS+pLrgF/JWtr7fAIkHxRDceH7tdy5fMA783nUfbYwZ7H2XLvSeYfcnWIYCig5dWW+icK9X/Ag=="
163
+ },
164
+ "mongo-object": {
165
+ "version": "0.1.4",
166
+ "resolved": "https://registry.npmjs.org/mongo-object/-/mongo-object-0.1.4.tgz",
167
+ "integrity": "sha512-QtYk0gupWEn2+iB+DDRt1L+WbcNYvJRaHdih/dcqthOa1DbnREUGSs2WGcW478GNYpElflo/yybZXu0sTiRXHg=="
168
+ },
169
+ "ms": {
170
+ "version": "2.1.3",
171
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
172
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
173
+ },
174
+ "one-time": {
175
+ "version": "1.0.0",
176
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
177
+ "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g=="
178
+ },
179
+ "readable-stream": {
180
+ "version": "3.6.0",
181
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
182
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="
183
+ },
184
+ "safe-buffer": {
185
+ "version": "5.2.1",
186
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
187
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
188
+ },
189
+ "safe-stable-stringify": {
190
+ "version": "2.3.1",
191
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz",
192
+ "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg=="
193
+ },
194
+ "simpl-schema": {
195
+ "version": "1.12.2",
196
+ "resolved": "https://registry.npmjs.org/simpl-schema/-/simpl-schema-1.12.2.tgz",
197
+ "integrity": "sha512-FaisAjfJEt7Ie7K39wNqb/0F7FQ1q7yXmZcNa5JEBiPA9hIt4MpWMouL9mLqNB89alGpZAEiU7U9BelDxRqCVg=="
198
+ },
199
+ "simple-swizzle": {
200
+ "version": "0.2.2",
201
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
202
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg=="
203
+ },
204
+ "stack-trace": {
205
+ "version": "0.0.10",
206
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
207
+ "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="
208
+ },
209
+ "string_decoder": {
210
+ "version": "1.3.0",
211
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
212
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="
213
+ },
214
+ "text-hex": {
215
+ "version": "1.0.0",
216
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
217
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
218
+ },
219
+ "triple-beam": {
220
+ "version": "1.3.0",
221
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
222
+ "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
223
+ },
224
+ "util-deprecate": {
225
+ "version": "1.0.2",
226
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
227
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
228
+ },
229
+ "winston": {
230
+ "version": "3.8.0",
231
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.0.tgz",
232
+ "integrity": "sha512-Iix1w8rIq2kBDkGvclO0db2CVOHYVamCIkVWcUbs567G9i2pdB+gvqLgDgxx4B4HXHYD6U4Zybh6ojepUOqcFQ=="
233
+ },
234
+ "winston-transport": {
235
+ "version": "4.5.0",
236
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz",
237
+ "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q=="
238
+ }
239
+ }
240
+ }
@@ -1,3 +1,5 @@
1
1
  import { Db } from 'mongodb';
2
+ export declare const startDb: () => Promise<any>;
3
+ export declare const stopDb: () => Promise<void>;
2
4
  declare const initDb: () => Promise<Db>;
3
5
  export { initDb };
package/lib/db/initDb.js CHANGED
@@ -1,26 +1,39 @@
1
- import { MongoInternals } from 'meteor/mongo';
2
- import { NpmModuleMongodb } from 'meteor/npm-mongo';
3
- // const url = process.env.MONGO_URL || 'mongodb://localhost:4011';
4
- // const initDbNative = async (): Promise<Db> => {
5
- // const client = new MongoClient(url);
6
- // const dbName = 'meteor';
7
- // await client.connect();
8
- // const db = client.db(dbName);
9
- // return db;
10
- // };
11
- const originalFn = NpmModuleMongodb.Collection.prototype.updateOne;
12
- NpmModuleMongodb.Collection.prototype.updateOne = async function updateOne(...rest) {
13
- const result = await originalFn.bind(this)(...rest);
14
- if (!result)
15
- return result;
16
- return {
17
- result: { nModified: result.modifiedCount },
18
- ...result,
19
- };
1
+ import { MongoClient } from 'mongodb';
2
+ let mongod;
3
+ export const startDb = async () => {
4
+ const { MongoMemoryServer } = await import('mongodb-memory-server');
5
+ mongod = await MongoMemoryServer.create();
6
+ return mongod.getUri();
7
+ };
8
+ export const stopDb = async () => {
9
+ await mongod.stop();
20
10
  };
11
+ const initDbNative = async () => {
12
+ const url = process.env.MONGO_URL || (await startDb());
13
+ const client = new MongoClient(url);
14
+ const dbName = 'meteor';
15
+ await client.connect();
16
+ const db = client.db(dbName);
17
+ return db;
18
+ };
19
+ const isMeteor = typeof Meteor === 'object';
20
+ if (isMeteor) {
21
+ const { NpmModuleMongodb } = await import('meteor/npm-mongo');
22
+ const originalFn = NpmModuleMongodb.Collection.prototype.updateOne;
23
+ NpmModuleMongodb.Collection.prototype.updateOne = async function updateOne(...rest) {
24
+ const result = await originalFn.bind(this)(...rest);
25
+ if (!result)
26
+ return result;
27
+ return {
28
+ result: { nModified: result.modifiedCount },
29
+ ...result,
30
+ };
31
+ };
32
+ }
21
33
  const initDbMeteor = async () => {
34
+ const { MongoInternals } = await import('meteor/mongo');
22
35
  return MongoInternals.defaultRemoteCollectionDriver().mongo.db;
23
36
  };
24
- const initDb = initDbMeteor;
37
+ const initDb = isMeteor ? initDbMeteor : initDbNative;
25
38
  export { initDb };
26
39
  //# sourceMappingURL=initDb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initDb.js","sourceRoot":"","sources":["../../src/db/initDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,mEAAmE;AAEnE,kDAAkD;AAClD,yCAAyC;AAEzC,6BAA6B;AAC7B,4BAA4B;AAC5B,kCAAkC;AAClC,eAAe;AACf,KAAK;AACL,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;AACnE,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,UAAU,SAAS,CAAC,GAAG,IAAI;IAChF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,OAAO;QACL,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE;QAC3C,GAAG,MAAM;KACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,IAAiB,EAAE;IAC3C,OAAO,cAAc,CAAC,6BAA6B,EAAE,CAAC,KAAK,CAAC,EAAQ,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,YAAY,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"initDb.js","sourceRoot":"","sources":["../../src/db/initDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1C,IAAI,MAAM,CAAC;AAEX,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;IAChC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACpE,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC;IAC1C,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;IAC/B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,IAAiB,EAAE;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG,QAAQ,CAAC;IACxB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC;AAE5C,IAAI,QAAQ,EAAE;IACZ,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;IACnE,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,UAAU,SAAS,CAAC,GAAG,IAAI;QAChF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC;QAC3B,OAAO;YACL,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE;YAC3C,GAAG,MAAM;SACV,CAAC;IACJ,CAAC,CAAC;CACH;AAED,MAAM,YAAY,GAAG,KAAK,IAAiB,EAAE;IAC3C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACxD,OAAO,cAAc,CAAC,6BAA6B,EAAE,CAAC,KAAK,CAAC,EAAQ,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- export { initDb } from './db/initDb';
1
+ export { initDb, startDb, stopDb } from './db/initDb';
@@ -1,2 +1,2 @@
1
- export { initDb } from './db/initDb';
1
+ export { initDb, startDb, stopDb } from './db/initDb';
2
2
  //# sourceMappingURL=mongodb-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-index.js","sourceRoot":"","sources":["../src/mongodb-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"mongodb-index.js","sourceRoot":"","sources":["../src/mongodb-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/mongodb",
3
- "version": "1.1.7",
3
+ "version": "1.1.9",
4
4
  "description": "MongoDB provider for unchained platform",
5
5
  "main": "lib/mongodb-index.js",
6
6
  "types": "lib/mongodb-index.d.ts",
@@ -26,14 +26,17 @@
26
26
  },
27
27
  "homepage": "https://github.com/unchainedshop/unchained#readme",
28
28
  "dependencies": {
29
- "@unchainedshop/utils": "^1.1.7",
29
+ "@unchainedshop/utils": "^1.1.9",
30
30
  "mongodb": "^4.3.1"
31
31
  },
32
+ "peerDependencies": {
33
+ "mongodb-memory-server": "^8.7.2"
34
+ },
32
35
  "devDependencies": {
33
36
  "@types/node": "^16.11.41",
34
- "@unchainedshop/types": "^1.1.7",
37
+ "@unchainedshop/types": "^1.1.9",
35
38
  "chai": "^4.3.6",
36
39
  "typescript": "^4.7.4"
37
40
  },
38
- "gitHead": "06cd41a39f57481555c743836481b9190b2ec2b5"
41
+ "gitHead": "5395cd35169a1fd13bb83ff7d11cc8a162b27b09"
39
42
  }
package/src/db/initDb.ts CHANGED
@@ -1,30 +1,47 @@
1
- import { MongoInternals } from 'meteor/mongo';
2
- import { Db /* MongoClient */ } from 'mongodb';
3
- import { NpmModuleMongodb } from 'meteor/npm-mongo';
4
- // const url = process.env.MONGO_URL || 'mongodb://localhost:4011';
5
-
6
- // const initDbNative = async (): Promise<Db> => {
7
- // const client = new MongoClient(url);
8
-
9
- // const dbName = 'meteor';
10
- // await client.connect();
11
- // const db = client.db(dbName);
12
- // return db;
13
- // };
14
- const originalFn = NpmModuleMongodb.Collection.prototype.updateOne;
15
- NpmModuleMongodb.Collection.prototype.updateOne = async function updateOne(...rest) {
16
- const result = await originalFn.bind(this)(...rest);
17
- if (!result) return result;
18
- return {
19
- result: { nModified: result.modifiedCount },
20
- ...result,
21
- };
1
+ import { Db, MongoClient } from 'mongodb';
2
+
3
+ let mongod;
4
+
5
+ export const startDb = async () => {
6
+ const { MongoMemoryServer } = await import('mongodb-memory-server');
7
+ mongod = await MongoMemoryServer.create();
8
+ return mongod.getUri();
22
9
  };
23
10
 
11
+ export const stopDb = async () => {
12
+ await mongod.stop();
13
+ };
14
+
15
+ const initDbNative = async (): Promise<Db> => {
16
+ const url = process.env.MONGO_URL || (await startDb());
17
+ const client = new MongoClient(url);
18
+
19
+ const dbName = 'meteor';
20
+ await client.connect();
21
+ const db = client.db(dbName);
22
+ return db;
23
+ };
24
+
25
+ const isMeteor = typeof Meteor === 'object';
26
+
27
+ if (isMeteor) {
28
+ const { NpmModuleMongodb } = await import('meteor/npm-mongo');
29
+ const originalFn = NpmModuleMongodb.Collection.prototype.updateOne;
30
+ NpmModuleMongodb.Collection.prototype.updateOne = async function updateOne(...rest) {
31
+ const result = await originalFn.bind(this)(...rest);
32
+ if (!result) return result;
33
+ return {
34
+ result: { nModified: result.modifiedCount },
35
+ ...result,
36
+ };
37
+ };
38
+ }
39
+
24
40
  const initDbMeteor = async (): Promise<Db> => {
41
+ const { MongoInternals } = await import('meteor/mongo');
25
42
  return MongoInternals.defaultRemoteCollectionDriver().mongo.db as Db;
26
43
  };
27
44
 
28
- const initDb = initDbMeteor;
45
+ const initDb = isMeteor ? initDbMeteor : initDbNative;
29
46
 
30
47
  export { initDb };
@@ -1 +1 @@
1
- export { initDb } from './db/initDb';
1
+ export { initDb, startDb, stopDb } from './db/initDb';
@@ -6,7 +6,9 @@
6
6
  "esModuleInterop": true,
7
7
  "experimentalDecorators": true,
8
8
  "forceConsistentCasingInFileNames": true,
9
- "lib": ["esnext"],
9
+ "lib": [
10
+ "esnext"
11
+ ],
10
12
  "module": "esnext",
11
13
  "moduleResolution": "node",
12
14
  "noImplicitReturns": true,
@@ -16,11 +18,17 @@
16
18
  "skipLibCheck": true,
17
19
  "sourceMap": true,
18
20
  "target": "esnext",
19
- "types": ["node"],
21
+ "types": [
22
+ "node"
23
+ ],
20
24
  "baseUrl": ".", // This must be specified if "paths" is.
21
25
  "paths": {
22
- "meteor/unchained:*": ["node_modules/@unchainedshop/types/index.d.ts"]
26
+ "@unchainedshop/*": [
27
+ "node_modules/@unchainedshop/types/index.d.ts"
28
+ ]
23
29
  }
24
30
  },
25
- "include": ["src"]
26
- }
31
+ "include": [
32
+ "src"
33
+ ]
34
+ }