@storyous/mongodb 1.0.8 → 1.0.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.
Files changed (56) hide show
  1. package/__tests__/appData.test.d.ts +1 -0
  2. package/__tests__/appData.test.js +32 -0
  3. package/__tests__/appData.test.ts +34 -0
  4. package/__tests__/fixtures.test.d.ts +1 -0
  5. package/__tests__/fixtures.test.js +39 -0
  6. package/__tests__/fixtures.test.ts +44 -0
  7. package/__tests__/getMongoClient.d.ts +3 -0
  8. package/__tests__/getMongoClient.js +19 -0
  9. package/__tests__/getMongoClient.ts +24 -0
  10. package/{dist/migrations/template.d.ts → __tests__/migrations/1642152064249-test.d.ts} +1 -1
  11. package/__tests__/migrations/1642152064249-test.js +7 -0
  12. package/__tests__/migrations/1642152064249-test.ts +7 -0
  13. package/__tests__/mongoLocker.test.d.ts +1 -0
  14. package/__tests__/mongoLocker.test.js +151 -0
  15. package/__tests__/mongoLocker.test.ts +191 -0
  16. package/__tests__/runMigration.test.d.ts +1 -0
  17. package/__tests__/runMigration.test.js +21 -0
  18. package/__tests__/runMigration.test.ts +22 -0
  19. package/__tests__/withTransaction.test.d.ts +1 -0
  20. package/__tests__/withTransaction.test.js +40 -0
  21. package/__tests__/withTransaction.test.ts +67 -0
  22. package/lib/index.d.ts +2 -1
  23. package/lib/index.js +4 -2
  24. package/lib/index.ts +2 -0
  25. package/lib/migrations/template.d.ts +1 -1
  26. package/lib/migrations/template.js +4 -8
  27. package/lib/migrations/template.ts +1 -2
  28. package/package.json +4 -9
  29. package/tsconfig.json +7 -0
  30. package/dist/appData/index.d.ts +0 -12
  31. package/dist/appData/index.js +0 -40
  32. package/dist/concurrentTask.d.ts +0 -9
  33. package/dist/concurrentTask.js +0 -20
  34. package/dist/fixtures.d.ts +0 -5
  35. package/dist/fixtures.js +0 -28
  36. package/dist/getCollection.d.ts +0 -3
  37. package/dist/getCollection.js +0 -9
  38. package/dist/getMongoLocker.d.ts +0 -10
  39. package/dist/getMongoLocker.js +0 -53
  40. package/dist/index.d.ts +0 -11
  41. package/dist/index.js +0 -27
  42. package/dist/migrations/Migration.d.ts +0 -6
  43. package/dist/migrations/Migration.js +0 -22
  44. package/dist/migrations/MigrationsStore.d.ts +0 -13
  45. package/dist/migrations/MigrationsStore.js +0 -65
  46. package/dist/migrations/runMigrations.d.ts +0 -12
  47. package/dist/migrations/runMigrations.js +0 -50
  48. package/dist/migrations/template.js +0 -11
  49. package/dist/mongoClient.d.ts +0 -8
  50. package/dist/mongoClient.js +0 -18
  51. package/dist/mongoErrorCodes.d.ts +0 -6
  52. package/dist/mongoErrorCodes.js +0 -11
  53. package/dist/mongoLocker.d.ts +0 -3
  54. package/dist/mongoLocker.js +0 -17
  55. package/dist/withTransaction.d.ts +0 -3
  56. package/dist/withTransaction.js +0 -21
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const migrate_1 = require("migrate");
7
- const MigrationsStore_1 = __importDefault(require("./MigrationsStore"));
8
- /**
9
- * In case of fail - logs the result and returns rejected promise
10
- * @param {Logger} logger Logger
11
- * @param {string} directory Path to directory where migrations are
12
- * @param {boolean} continueOnError If app crashes on error or continue
13
- * @param {boolean} safeMigration Do not allow to rewrite all migrations with empty array
14
- */
15
- async function runMigrations(logger, directory, { continueOnError = false, safeMigration = true, }) {
16
- return new Promise((resolve, reject) => {
17
- (0, migrate_1.load)({
18
- stateStore: new MigrationsStore_1.default(logger, directory, safeMigration),
19
- migrationsDirectory: directory,
20
- filterFunction: (file) => file.endsWith('.js'),
21
- }, (err, set) => {
22
- if (err) {
23
- logger.error('Migrations did not run due to error', err);
24
- reject(err);
25
- return;
26
- }
27
- set.on('warning', (msg) => {
28
- logger.warn('warning', msg);
29
- });
30
- set.on('migration', (migration, direction) => {
31
- logger.info(`Running ${direction} migration`, { title: migration.title });
32
- });
33
- set.up((error) => {
34
- if (error) {
35
- logger.error('A migration ended with error', error);
36
- if (!continueOnError) {
37
- reject(error);
38
- return;
39
- }
40
- }
41
- else {
42
- logger.info('Migrations successfully ran');
43
- }
44
- resolve();
45
- });
46
- });
47
- });
48
- }
49
- exports.default = runMigrations;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuTWlncmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9taWdyYXRpb25zL3J1bk1pZ3JhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxQ0FBNkM7QUFFN0Msd0VBQWdEO0FBRWhEOzs7Ozs7R0FNRztBQUNZLEtBQUssVUFBVSxhQUFhLENBQ3ZDLE1BQWMsRUFDZCxTQUFpQixFQUNqQixFQUNJLGVBQWUsR0FBRyxLQUFLLEVBQ3ZCLGFBQWEsR0FBRyxJQUFJLEdBQ3ZCO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN6QyxJQUFBLGNBQUksRUFDQTtZQUNJLFVBQVUsRUFBRSxJQUFJLHlCQUFlLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUM7WUFDakUsbUJBQW1CLEVBQUUsU0FBUztZQUM5QixjQUFjLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQ3pELEVBQ0QsQ0FBQyxHQUFpQixFQUFFLEdBQWlCLEVBQUUsRUFBRTtZQUNyQyxJQUFJLEdBQUcsRUFBRTtnQkFDTCxNQUFNLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN6RCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ1osT0FBTzthQUNWO1lBRUQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRTtnQkFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUM7WUFFSCxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQWMsRUFBRSxTQUFpQixFQUFFLEVBQUU7Z0JBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxTQUFTLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM5RSxDQUFDLENBQUMsQ0FBQztZQUVILEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxLQUFLLEVBQUU7b0JBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxDQUFDLGVBQWUsRUFBRTt3QkFDbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNkLE9BQU87cUJBQ1Y7aUJBQ0o7cUJBQU07b0JBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2lCQUM5QztnQkFFRCxPQUFPLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUE3Q0QsZ0NBNkNDIn0=
@@ -1,11 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- const getCollection_1 = __importDefault(require("../getCollection"));
6
- const Migration_1 = __importDefault(require("./Migration"));
7
- module.exports = new Migration_1.default('[ADD DESCRIPTION HERE]', async () => {
8
- // add logic here
9
- await (0, getCollection_1.default)('exampleCollection');
10
- });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy90ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEscUVBQTZDO0FBQzdDLDREQUFvQztBQUVwQyxpQkFBUyxJQUFJLG1CQUFTLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDeEQsaUJBQWlCO0lBQ2pCLE1BQU0sSUFBQSx1QkFBYSxFQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDLENBQUMifQ==
@@ -1,8 +0,0 @@
1
- import { MongoClient, MongoClientOptions, ObjectId } from 'mongodb';
2
- export declare type Key = string | number | ObjectId;
3
- declare const mongoClient: {
4
- _client: MongoClient | null;
5
- init(mongodbUrl: string, mongoOptions?: MongoClientOptions | undefined): void;
6
- getClient(): MongoClient;
7
- };
8
- export default mongoClient;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const lodash_1 = require("lodash");
4
- const mongodb_1 = require("mongodb");
5
- const mongoClient = {
6
- _client: null,
7
- init(mongodbUrl, mongoOptions) {
8
- this._client = new mongodb_1.MongoClient(mongodbUrl, (0, lodash_1.defaultsDeep)(mongoOptions));
9
- },
10
- getClient() {
11
- if (this._client) {
12
- return this._client;
13
- }
14
- throw new Error('MongoDb must be initialized before use.');
15
- },
16
- };
17
- exports.default = mongoClient;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29DbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvbW9uZ29DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBc0M7QUFDdEMscUNBQW9FO0FBSXBFLE1BQU0sV0FBVyxHQUFHO0lBQ2hCLE9BQU8sRUFBcUIsSUFBSTtJQUVoQyxJQUFJLENBQUUsVUFBa0IsRUFBRSxZQUFpQztRQUN2RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUkscUJBQVcsQ0FDMUIsVUFBVSxFQUNWLElBQUEscUJBQVksRUFBQyxZQUFZLENBQUMsQ0FDN0IsQ0FBQztJQUNOLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ3ZCO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDSixDQUFDO0FBRUYsa0JBQWUsV0FBVyxDQUFDIn0=
@@ -1,6 +0,0 @@
1
- declare const mongoErrorCodes: {
2
- DUPLICATE_KEY_INSERT: number;
3
- DUPLICATE_KEY_UPDATE: number;
4
- DUPLICATE_KEY: number[];
5
- };
6
- export default mongoErrorCodes;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const DUPLICATE_KEY_INSERT = 11000;
4
- const DUPLICATE_KEY_UPDATE = 11001;
5
- const mongoErrorCodes = {
6
- DUPLICATE_KEY_INSERT,
7
- DUPLICATE_KEY_UPDATE,
8
- DUPLICATE_KEY: [DUPLICATE_KEY_INSERT, DUPLICATE_KEY_UPDATE],
9
- };
10
- exports.default = mongoErrorCodes;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29FcnJvckNvZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL21vbmdvRXJyb3JDb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBQ25DLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBRW5DLE1BQU0sZUFBZSxHQUFHO0lBQ3BCLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsYUFBYSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUM7Q0FDOUQsQ0FBQztBQUVGLGtCQUFlLGVBQWUsQ0FBQyJ9
@@ -1,3 +0,0 @@
1
- import { LockCallback, LockerOptions } from './getMongoLocker';
2
- import { Key } from './mongoClient';
3
- export default function <T>(key: Key, callback: LockCallback<T>, options?: LockerOptions): Promise<T>;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const getCollection_1 = __importDefault(require("./getCollection"));
7
- const getMongoLocker_1 = __importDefault(require("./getMongoLocker"));
8
- let lockerPromise;
9
- async function default_1(key, callback, options = {}) {
10
- if (!lockerPromise) {
11
- lockerPromise = (0, getMongoLocker_1.default)((0, getCollection_1.default)('appLocks'));
12
- }
13
- const locker = await lockerPromise;
14
- return locker(key, callback, options);
15
- }
16
- exports.default = default_1;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29Mb2NrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvbW9uZ29Mb2NrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvRUFBNEM7QUFDNUMsc0VBQStFO0FBRy9FLElBQUksYUFBZ0QsQ0FBQztBQUV0QyxLQUFLLG9CQUFlLEdBQVEsRUFBRSxRQUF5QixFQUFFLFVBQXlCLEVBQUU7SUFDL0YsSUFBSSxDQUFDLGFBQWEsRUFBRTtRQUNoQixhQUFhLEdBQUcsSUFBQSx3QkFBYyxFQUFDLElBQUEsdUJBQWEsRUFBTSxVQUFVLENBQUMsQ0FBQyxDQUFDO0tBQ2xFO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUM7SUFFbkMsT0FBTyxNQUFNLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBUkQsNEJBUUMifQ==
@@ -1,3 +0,0 @@
1
- import { ClientSession, TransactionOptions } from 'mongodb';
2
- declare const _default: <T>(callback: (session: ClientSession) => Promise<T>, options?: TransactionOptions | undefined) => Promise<T>;
3
- export default _default;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const mongoClient_1 = __importDefault(require("./mongoClient"));
7
- exports.default = async (callback, options) => {
8
- const session = mongoClient_1.default.getClient().startSession();
9
- try {
10
- let result;
11
- await session.withTransaction(async () => {
12
- result = await callback(session);
13
- }, options);
14
- // @ts-ignore
15
- return result;
16
- }
17
- finally {
18
- await session.endSession();
19
- }
20
- };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL3dpdGhUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGdFQUF3QztBQUV4QyxrQkFBZSxLQUFLLEVBQ2hCLFFBQWdELEVBQ2hELE9BQTRCLEVBQ2xCLEVBQUU7SUFFWixNQUFNLE9BQU8sR0FBRyxxQkFBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXZELElBQUk7UUFDQSxJQUFJLE1BQVMsQ0FBQztRQUVkLE1BQU0sT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNyQyxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRVosYUFBYTtRQUNiLE9BQU8sTUFBTSxDQUFDO0tBRWpCO1lBQVM7UUFDTixNQUFNLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQUM5QjtBQUNMLENBQUMsQ0FBQyJ9