mongolite-ts 0.2.3 → 0.3.0
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/README.md +69 -5
- package/dist/collection.d.ts +6 -0
- package/dist/collection.js +65 -24
- package/dist/collection.js.map +1 -1
- package/package.json +6 -5
- package/dist/document-utils.d.ts +0 -34
- package/dist/document-utils.js +0 -101
- package/dist/document-utils.js.map +0 -1
- package/dist/find-cursor.d.ts +0 -51
- package/dist/find-cursor.js +0 -204
- package/dist/find-cursor.js.map +0 -1
- package/dist/query-builder.d.ts +0 -18
- package/dist/query-builder.js +0 -358
- package/dist/query-builder.js.map +0 -1
- package/dist/update-operations.d.ts +0 -17
- package/dist/update-operations.js +0 -147
- package/dist/update-operations.js.map +0 -1
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { getNestedValue, setNestedValue, unsetNestedValue } from './document-utils.js';
|
|
2
|
-
/**
|
|
3
|
-
* Class to handle update operations on documents
|
|
4
|
-
*/
|
|
5
|
-
export class UpdateOperationHandler {
|
|
6
|
-
/**
|
|
7
|
-
* Apply update operations to a document
|
|
8
|
-
* @param doc The document to modify
|
|
9
|
-
* @param update The update operations to apply
|
|
10
|
-
* @returns Whether the document was modified
|
|
11
|
-
*/
|
|
12
|
-
applyUpdateOperations(doc, update) {
|
|
13
|
-
let modified = false;
|
|
14
|
-
// Process update operators
|
|
15
|
-
for (const operator in update) {
|
|
16
|
-
const opArgs = update[operator];
|
|
17
|
-
if (!opArgs)
|
|
18
|
-
continue;
|
|
19
|
-
switch (operator) {
|
|
20
|
-
case '$set':
|
|
21
|
-
for (const path in opArgs) {
|
|
22
|
-
const value = opArgs[path];
|
|
23
|
-
setNestedValue(doc, path, value);
|
|
24
|
-
modified = true;
|
|
25
|
-
}
|
|
26
|
-
break;
|
|
27
|
-
case '$unset':
|
|
28
|
-
for (const path in opArgs) {
|
|
29
|
-
unsetNestedValue(doc, path);
|
|
30
|
-
modified = true;
|
|
31
|
-
}
|
|
32
|
-
break;
|
|
33
|
-
case '$inc':
|
|
34
|
-
for (const path in opArgs) {
|
|
35
|
-
const value = opArgs[path];
|
|
36
|
-
if (typeof value === 'number') {
|
|
37
|
-
const currentValue = getNestedValue(doc, path) || 0;
|
|
38
|
-
if (typeof currentValue === 'number') {
|
|
39
|
-
setNestedValue(doc, path, currentValue + value);
|
|
40
|
-
modified = true;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
break;
|
|
45
|
-
case '$push':
|
|
46
|
-
for (const path in opArgs) {
|
|
47
|
-
const value = opArgs[path];
|
|
48
|
-
const currentValue = getNestedValue(doc, path);
|
|
49
|
-
if (Array.isArray(currentValue)) {
|
|
50
|
-
if (typeof value === 'object' && value !== null && '$each' in value) {
|
|
51
|
-
if (Array.isArray(value.$each)) {
|
|
52
|
-
currentValue.push(...value.$each);
|
|
53
|
-
modified = true;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
currentValue.push(value);
|
|
58
|
-
modified = true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
else if (currentValue === undefined) {
|
|
62
|
-
// If the field doesn't exist, create it as an array
|
|
63
|
-
if (typeof value === 'object' && value !== null && '$each' in value) {
|
|
64
|
-
if (Array.isArray(value.$each)) {
|
|
65
|
-
setNestedValue(doc, path, [...value.$each]);
|
|
66
|
-
modified = true;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
setNestedValue(doc, path, [value]);
|
|
71
|
-
modified = true;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
break;
|
|
76
|
-
case '$pull':
|
|
77
|
-
for (const path in opArgs) {
|
|
78
|
-
const value = opArgs[path];
|
|
79
|
-
const currentValue = getNestedValue(doc, path);
|
|
80
|
-
if (Array.isArray(currentValue)) {
|
|
81
|
-
// Simple equality pull
|
|
82
|
-
const newArray = currentValue.filter((item) => {
|
|
83
|
-
if (typeof value === 'object' && value !== null) {
|
|
84
|
-
// For objects, we need to check all criteria
|
|
85
|
-
for (const key in value) {
|
|
86
|
-
if (typeof item === 'object' &&
|
|
87
|
-
item !== null &&
|
|
88
|
-
!this.matchesFilterValue(item[key], value[key])) {
|
|
89
|
-
return true; // Keep the item if it doesn't match the criteria
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return false; // Remove if all criteria match
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
// Simple equality check for primitives
|
|
96
|
-
return item !== value;
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
if (newArray.length !== currentValue.length) {
|
|
100
|
-
setNestedValue(doc, path, newArray);
|
|
101
|
-
modified = true;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return modified;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Check if a value matches a filter condition
|
|
112
|
-
*/
|
|
113
|
-
matchesFilterValue(value, condition) {
|
|
114
|
-
if (typeof condition === 'object' && condition !== null) {
|
|
115
|
-
// Check for operators
|
|
116
|
-
// This is a simplified version, in a real implementation you'd handle many operators
|
|
117
|
-
if ('$eq' in condition) {
|
|
118
|
-
return value === condition.$eq;
|
|
119
|
-
}
|
|
120
|
-
else if ('$ne' in condition) {
|
|
121
|
-
return value !== condition.$ne;
|
|
122
|
-
}
|
|
123
|
-
else if ('$gt' in condition) {
|
|
124
|
-
return value > condition.$gt;
|
|
125
|
-
}
|
|
126
|
-
else if ('$gte' in condition) {
|
|
127
|
-
return value >= condition.$gte;
|
|
128
|
-
}
|
|
129
|
-
else if ('$lt' in condition) {
|
|
130
|
-
return value < condition.$lt;
|
|
131
|
-
}
|
|
132
|
-
else if ('$lte' in condition) {
|
|
133
|
-
return value <= condition.$lte;
|
|
134
|
-
}
|
|
135
|
-
else if ('$in' in condition && Array.isArray(condition.$in)) {
|
|
136
|
-
return condition.$in.includes(value);
|
|
137
|
-
}
|
|
138
|
-
else if ('$nin' in condition && Array.isArray(condition.$nin)) {
|
|
139
|
-
return !condition.$nin.includes(value);
|
|
140
|
-
}
|
|
141
|
-
// For a complete implementation, handle more operators
|
|
142
|
-
}
|
|
143
|
-
// Default to simple equality
|
|
144
|
-
return value === condition;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
//# sourceMappingURL=update-operations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-operations.js","sourceRoot":"","sources":["../src/update-operations.ts"],"names":[],"mappings":"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"}
|