mongodash 2.1.0 → 2.1.1

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 (51) hide show
  1. package/README.md +70 -4
  2. package/dist/dashboard/index.html +8 -8
  3. package/dist/lib/playground/server.js +1 -8
  4. package/dist/lib/src/ConcurrentRunner.js +1 -8
  5. package/dist/lib/src/OnError.js +1 -8
  6. package/dist/lib/src/OnInfo.js +1 -8
  7. package/dist/lib/src/createContinuousLock.js +1 -8
  8. package/dist/lib/src/cronTasks.js +1 -8
  9. package/dist/lib/src/getCollection.js +1 -8
  10. package/dist/lib/src/getMongoClient.js +1 -8
  11. package/dist/lib/src/globalsCollection.js +1 -8
  12. package/dist/lib/src/index.js +1 -8
  13. package/dist/lib/src/initPromise.js +1 -8
  14. package/dist/lib/src/mongoCompatibility.js +1 -8
  15. package/dist/lib/src/parseInterval.js +1 -8
  16. package/dist/lib/src/prefixFilterKeys.js +1 -8
  17. package/dist/lib/src/processInBatches.js +1 -8
  18. package/dist/lib/src/reactiveTasks/LeaderElector.js +1 -8
  19. package/dist/lib/src/reactiveTasks/MetricsCollector.js +1 -8
  20. package/dist/lib/src/reactiveTasks/ReactiveTaskManager.js +1 -8
  21. package/dist/lib/src/reactiveTasks/ReactiveTaskOps.js +1 -8
  22. package/dist/lib/src/reactiveTasks/ReactiveTaskPlanner.js +1 -8
  23. package/dist/lib/src/reactiveTasks/ReactiveTaskReconciler.js +1 -8
  24. package/dist/lib/src/reactiveTasks/ReactiveTaskRegistry.js +1 -8
  25. package/dist/lib/src/reactiveTasks/ReactiveTaskRepository.js +1 -8
  26. package/dist/lib/src/reactiveTasks/ReactiveTaskRetryStrategy.js +1 -8
  27. package/dist/lib/src/reactiveTasks/ReactiveTaskTypes.js +1 -8
  28. package/dist/lib/src/reactiveTasks/ReactiveTaskWorker.js +1 -8
  29. package/dist/lib/src/reactiveTasks/compileWatchProjection.js +1 -8
  30. package/dist/lib/src/reactiveTasks/index.js +1 -8
  31. package/dist/lib/src/reactiveTasks/queryToExpression.js +1 -8
  32. package/dist/lib/src/reactiveTasks/validateTaskFilter.js +1 -8
  33. package/dist/lib/src/task-management/OperationalTaskController.js +1 -8
  34. package/dist/lib/src/task-management/index.js +1 -8
  35. package/dist/lib/src/task-management/serveDashboard.js +1 -8
  36. package/dist/lib/src/task-management/types.js +1 -8
  37. package/dist/lib/src/withLock.js +1 -8
  38. package/dist/lib/src/withTransaction.js +1 -8
  39. package/dist/lib/tools/check-db-connection.js +1 -8
  40. package/dist/lib/tools/clean-testing-databases.js +1 -8
  41. package/dist/lib/tools/prepare-republish.js +1 -8
  42. package/dist/lib/tools/test-matrix-local.js +1 -8
  43. package/dist/lib/tools/testingDatabase.js +1 -8
  44. package/docs/.vitepress/cache/deps/_metadata.json +6 -6
  45. package/docs/.vitepress/config.mts +2 -0
  46. package/docs/.vitepress/theme/style.css +5 -0
  47. package/docs/getting-started.md +68 -2
  48. package/docs/index.md +3 -0
  49. package/docs/public/logo.png +0 -0
  50. package/docs/reactive-tasks.md +402 -403
  51. package/package.json +5 -1
@@ -38,8 +38,8 @@ import { reactiveTask } from 'mongodash';
38
38
  await reactiveTask({
39
39
  task: 'on-user-update',
40
40
  collection: 'users',
41
- handler: async (doc) => {
42
- console.log('User changed:', doc._id);
41
+ handler: async ({ docId }) => {
42
+ console.log('User changed:', docId);
43
43
  }
44
44
  });
45
45
  ```
@@ -118,3 +118,69 @@ const mongoClient = getMongoClient();
118
118
  ```
119
119
  See detailed description [here](https://vaclavobornik.github.io/mongodash/getters).
120
120
 
121
+ <br>
122
+
123
+ ## processInBatches
124
+
125
+ ```typescript
126
+ import { processInBatches } from 'mongodash';
127
+
128
+ await processInBatches(
129
+ db.collection('users'),
130
+ { status: 'active' },
131
+ async (user) => {
132
+ // Transform user data
133
+ return {
134
+ updateOne: {
135
+ filter: { _id: user._id },
136
+ update: { $set: { processed: true } }
137
+ }
138
+ };
139
+ },
140
+ async (batchOps) => {
141
+ // Execute batch
142
+ await db.collection('users').bulkWrite(batchOps);
143
+ }
144
+ );
145
+ ```
146
+ See detailed description [here](https://vaclavobornik.github.io/mongodash/process-in-batches).
147
+
148
+ <br>
149
+
150
+ ## Dashboard
151
+
152
+ ![Dashboard Screenshot](docs/assets/dashboard.png)
153
+
154
+ ```typescript
155
+ import * as express from 'express';
156
+ import { serveDashboard } from 'mongodash';
157
+
158
+ const app = express();
159
+
160
+ app.use('/dashboard', async (req, res, next) => {
161
+ // Check if mongodash handled the request
162
+ const handled = await serveDashboard(req, res);
163
+ if (!handled) {
164
+ next();
165
+ }
166
+ });
167
+
168
+ app.listen(3000);
169
+ ```
170
+
171
+ See detailed description [here](https://vaclavobornik.github.io/mongodash/dashboard).
172
+
173
+ <br>
174
+
175
+ ## getPrometheusMetrics
176
+
177
+ ```typescript
178
+ import { getPrometheusMetrics } from 'mongodash';
179
+
180
+ app.get('/metrics', async (req, res) => {
181
+ const registry = await getPrometheusMetrics();
182
+ res.set('Content-Type', registry.contentType);
183
+ res.end(await registry.metrics());
184
+ });
185
+ ```
186
+
package/docs/index.md CHANGED
@@ -5,6 +5,9 @@ hero:
5
5
  name: "Mongodash"
6
6
  text: "Modern MongoDB Utility Library"
7
7
  tagline: "Cron, Locks, Transactions, and more made simple."
8
+ image:
9
+ src: /logo-backgroundless.png
10
+ alt: Mongodash Logo
8
11
  actions:
9
12
  - theme: brand
10
13
  text: Getting Started
Binary file