@friggframework/core 2.0.0-next.85 → 2.0.0-next.86
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.
|
@@ -28,8 +28,9 @@
|
|
|
28
28
|
* const updateMetrics = new UpdateProcessMetrics({ processRepository, websocketService });
|
|
29
29
|
* await updateMetrics.execute(processId, {
|
|
30
30
|
* processed: 100,
|
|
31
|
-
* success:
|
|
31
|
+
* success: 92,
|
|
32
32
|
* errors: 5,
|
|
33
|
+
* skipped: 3,
|
|
33
34
|
* errorDetails: [{ contactId: 'abc', error: 'Missing email', timestamp: '...' }]
|
|
34
35
|
* });
|
|
35
36
|
*/
|
|
@@ -54,6 +55,11 @@ class UpdateProcessMetrics {
|
|
|
54
55
|
* @param {number} [metricsUpdate.processed=0] - Records processed in this batch
|
|
55
56
|
* @param {number} [metricsUpdate.success=0] - Successful records
|
|
56
57
|
* @param {number} [metricsUpdate.errors=0] - Failed records
|
|
58
|
+
* @param {number} [metricsUpdate.skipped=0] - Intentionally-skipped
|
|
59
|
+
* records (hash-match, dedupe, loop protection, etc.). Increments
|
|
60
|
+
* `results.aggregateData.totalSkipped`. Distinct from errors so the
|
|
61
|
+
* UI can show `processed = synced + failed + skipped` without
|
|
62
|
+
* conflating intentional skips with failures.
|
|
57
63
|
* @param {Array} [metricsUpdate.errorDetails=[]] - Error details array
|
|
58
64
|
* @returns {Promise<Object>} Updated process record
|
|
59
65
|
* @throws {Error} If process not found or update fails
|
|
@@ -71,9 +77,11 @@ class UpdateProcessMetrics {
|
|
|
71
77
|
const processed = metricsUpdate.processed || 0;
|
|
72
78
|
const success = metricsUpdate.success || 0;
|
|
73
79
|
const errors = metricsUpdate.errors || 0;
|
|
80
|
+
const skipped = metricsUpdate.skipped || 0;
|
|
74
81
|
if (processed) increment['context.processedRecords'] = processed;
|
|
75
82
|
if (success) increment['results.aggregateData.totalSynced'] = success;
|
|
76
83
|
if (errors) increment['results.aggregateData.totalFailed'] = errors;
|
|
84
|
+
if (skipped) increment['results.aggregateData.totalSkipped'] = skipped;
|
|
77
85
|
|
|
78
86
|
const pushSlice = {};
|
|
79
87
|
if (
|
|
@@ -191,6 +199,7 @@ class UpdateProcessMetrics {
|
|
|
191
199
|
total: context.totalRecords || 0,
|
|
192
200
|
successCount: aggregateData.totalSynced || 0,
|
|
193
201
|
errorCount: aggregateData.totalFailed || 0,
|
|
202
|
+
skippedCount: aggregateData.totalSkipped || 0,
|
|
194
203
|
recordsPerSecond: aggregateData.recordsPerSecond || 0,
|
|
195
204
|
estimatedCompletion: context.estimatedCompletion || null,
|
|
196
205
|
timestamp: new Date().toISOString(),
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@friggframework/core",
|
|
3
3
|
"prettier": "@friggframework/prettier-config",
|
|
4
|
-
"version": "2.0.0-next.
|
|
4
|
+
"version": "2.0.0-next.86",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@aws-sdk/client-apigatewaymanagementapi": "^3.588.0",
|
|
7
7
|
"@aws-sdk/client-kms": "^3.588.0",
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@friggframework/eslint-config": "2.0.0-next.
|
|
42
|
-
"@friggframework/prettier-config": "2.0.0-next.
|
|
43
|
-
"@friggframework/test": "2.0.0-next.
|
|
41
|
+
"@friggframework/eslint-config": "2.0.0-next.86",
|
|
42
|
+
"@friggframework/prettier-config": "2.0.0-next.86",
|
|
43
|
+
"@friggframework/test": "2.0.0-next.86",
|
|
44
44
|
"@prisma/client": "^6.17.0",
|
|
45
45
|
"@types/lodash": "4.17.15",
|
|
46
46
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"publishConfig": {
|
|
81
81
|
"access": "public"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "8862a43e3aa4be518fa1b35da41b76129b617a2e"
|
|
84
84
|
}
|