@goatlab/fluent-pouchdb 0.7.11 → 0.7.12
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/dist/PouchDBConnector.d.ts +115 -0
- package/dist/PouchDBConnector.js +604 -0
- package/dist/PouchDBConnector.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/test/entities/advanced.entity.d.ts +79 -0
- package/dist/test/entities/advanced.entity.js +61 -0
- package/dist/test/entities/advanced.entity.js.map +1 -0
- package/dist/test/entities/goat.entity.d.ts +155 -0
- package/dist/test/entities/goat.entity.js +89 -0
- package/dist/test/entities/goat.entity.js.map +1 -0
- package/dist/test/pouchdb.repository.factory.d.ts +8 -0
- package/dist/test/pouchdb.repository.factory.js +32 -0
- package/dist/test/pouchdb.repository.factory.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +9 -7
|
@@ -0,0 +1,604 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PouchDBConnector = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const fluent_1 = require("@goatlab/fluent");
|
|
6
|
+
const js_utils_1 = require("@goatlab/js-utils");
|
|
7
|
+
const pouchdb_1 = tslib_1.__importDefault(require("pouchdb"));
|
|
8
|
+
pouchdb_1.default.plugin(require('pouchdb-find'));
|
|
9
|
+
pouchdb_1.default.plugin(require('pouchdb-adapter-memory'));
|
|
10
|
+
pouchdb_1.default.plugin(require('pouchdb-json'));
|
|
11
|
+
let db = [];
|
|
12
|
+
// Base class for connectors
|
|
13
|
+
class BaseConnector {
|
|
14
|
+
outputKeys = [];
|
|
15
|
+
modelRelations = [];
|
|
16
|
+
isMongoDB = false;
|
|
17
|
+
relationQuery;
|
|
18
|
+
async findFirst(query) {
|
|
19
|
+
const data = await this.findMany({ ...query, limit: 1 });
|
|
20
|
+
return data[0] || null;
|
|
21
|
+
}
|
|
22
|
+
async requireById(id, q) {
|
|
23
|
+
const found = await this.findByIds([id], {
|
|
24
|
+
select: q?.select,
|
|
25
|
+
include: q?.include,
|
|
26
|
+
limit: 1
|
|
27
|
+
});
|
|
28
|
+
if (!found[0]) {
|
|
29
|
+
throw new Error(`Object ${id} not found`);
|
|
30
|
+
}
|
|
31
|
+
return found[0];
|
|
32
|
+
}
|
|
33
|
+
async requireFirst(query) {
|
|
34
|
+
const found = await this.findFirst(query);
|
|
35
|
+
if (!found) {
|
|
36
|
+
throw new Error('Object not found');
|
|
37
|
+
}
|
|
38
|
+
return found;
|
|
39
|
+
}
|
|
40
|
+
async findByIds(ids, q) {
|
|
41
|
+
return this.findMany({
|
|
42
|
+
where: { id: { in: ids } },
|
|
43
|
+
select: q?.select,
|
|
44
|
+
include: q?.include,
|
|
45
|
+
limit: q?.limit
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
setRelatedQuery(query) {
|
|
49
|
+
this.relationQuery = query;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
class PouchDBConnector extends BaseConnector {
|
|
53
|
+
dataSource;
|
|
54
|
+
inputSchema;
|
|
55
|
+
outputSchema;
|
|
56
|
+
entity;
|
|
57
|
+
constructor({ entity, dataSource, inputSchema, outputSchema }) {
|
|
58
|
+
super();
|
|
59
|
+
this.dataSource = dataSource;
|
|
60
|
+
this.inputSchema = inputSchema;
|
|
61
|
+
this.outputSchema =
|
|
62
|
+
outputSchema || inputSchema;
|
|
63
|
+
this.entity = entity;
|
|
64
|
+
const relationShipBuilder = fluent_1.modelGeneratorDataSource.getRepository(entity);
|
|
65
|
+
const { relations } = (0, fluent_1.getRelationsFromModelGenerator)(relationShipBuilder);
|
|
66
|
+
this.modelRelations = Object.values(relations || {});
|
|
67
|
+
this.outputKeys = (0, fluent_1.getOutputKeys)(relationShipBuilder) || [];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
* @param data
|
|
72
|
+
*/
|
|
73
|
+
async insert(data) {
|
|
74
|
+
// Validate Input
|
|
75
|
+
const validatedData = this.inputSchema.parse(data);
|
|
76
|
+
// Add created date if needed
|
|
77
|
+
const dataToInsert = { ...validatedData };
|
|
78
|
+
if (this.outputKeys.includes('created') && !dataToInsert.created) {
|
|
79
|
+
dataToInsert.created = new Date();
|
|
80
|
+
}
|
|
81
|
+
let response;
|
|
82
|
+
if (dataToInsert.id) {
|
|
83
|
+
// If id is provided, use put with explicit _id
|
|
84
|
+
const docData = { ...dataToInsert };
|
|
85
|
+
docData._id = docData.id;
|
|
86
|
+
delete docData.id;
|
|
87
|
+
response = await this.dataSource.put(docData);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// If no id, use post to auto-generate
|
|
91
|
+
response = await this.dataSource.post(dataToInsert);
|
|
92
|
+
}
|
|
93
|
+
let datum = await this.dataSource.get(response.id);
|
|
94
|
+
datum['id'] = datum['_id'];
|
|
95
|
+
// Handle date fields
|
|
96
|
+
if (datum['created'] && typeof datum['created'] === 'string') {
|
|
97
|
+
datum['created'] = new Date(datum['created']);
|
|
98
|
+
}
|
|
99
|
+
if (datum['updated'] && typeof datum['updated'] === 'string') {
|
|
100
|
+
datum['updated'] = new Date(datum['updated']);
|
|
101
|
+
}
|
|
102
|
+
// Validate Output
|
|
103
|
+
return this.outputSchema.parse(js_utils_1.Objects.clearEmpties(js_utils_1.Objects.deleteNulls(datum)));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
*
|
|
107
|
+
* @param data
|
|
108
|
+
*/
|
|
109
|
+
async insertMany(data) {
|
|
110
|
+
const validatedData = this.inputSchema.array().parse(data);
|
|
111
|
+
// Add created date if needed
|
|
112
|
+
const dataToInsert = validatedData.map((item) => {
|
|
113
|
+
const doc = { ...item };
|
|
114
|
+
if (this.outputKeys.includes('created') && !doc.created) {
|
|
115
|
+
doc.created = new Date();
|
|
116
|
+
}
|
|
117
|
+
return doc;
|
|
118
|
+
});
|
|
119
|
+
const inserted = await this.dataSource.bulkDocs(dataToInsert);
|
|
120
|
+
const insertedOK = inserted.map((i) => {
|
|
121
|
+
if (i.id) {
|
|
122
|
+
return i;
|
|
123
|
+
}
|
|
124
|
+
}).filter(Boolean);
|
|
125
|
+
const elements = await this.dataSource.bulkGet({
|
|
126
|
+
docs: insertedOK
|
|
127
|
+
});
|
|
128
|
+
const res = elements.results.map(r => {
|
|
129
|
+
if (r.id && r.docs?.[0] && r.docs[0]['ok']) {
|
|
130
|
+
const doc = { ...r.docs[0]['ok'], id: r.id };
|
|
131
|
+
// Handle date fields
|
|
132
|
+
if (doc['created'] && typeof doc['created'] === 'string') {
|
|
133
|
+
doc['created'] = new Date(doc['created']);
|
|
134
|
+
}
|
|
135
|
+
if (doc['updated'] && typeof doc['updated'] === 'string') {
|
|
136
|
+
doc['updated'] = new Date(doc['updated']);
|
|
137
|
+
}
|
|
138
|
+
return js_utils_1.Objects.clearEmpties(js_utils_1.Objects.deleteNulls(doc));
|
|
139
|
+
}
|
|
140
|
+
}).filter(Boolean);
|
|
141
|
+
return this.outputSchema.array().parse(res);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* PATCH operation
|
|
145
|
+
* @param data
|
|
146
|
+
*/
|
|
147
|
+
async updateById(id, data) {
|
|
148
|
+
// Get existing document
|
|
149
|
+
const existing = await this.dataSource.get(id);
|
|
150
|
+
const existingRev = existing._rev;
|
|
151
|
+
existing['id'] = existing['_id'];
|
|
152
|
+
if ('_id' in existing)
|
|
153
|
+
delete existing['_id'];
|
|
154
|
+
if ('_rev' in existing)
|
|
155
|
+
delete existing['_rev'];
|
|
156
|
+
// Merge with new data
|
|
157
|
+
const merged = {
|
|
158
|
+
...existing,
|
|
159
|
+
...data
|
|
160
|
+
};
|
|
161
|
+
if (this.outputKeys.includes('updated')) {
|
|
162
|
+
merged['updated'] = new Date();
|
|
163
|
+
}
|
|
164
|
+
// Convert date strings to Date objects for existing data
|
|
165
|
+
if (merged['created'] && typeof merged['created'] === 'string') {
|
|
166
|
+
merged['created'] = new Date(merged['created']);
|
|
167
|
+
}
|
|
168
|
+
if (merged['updated'] && typeof merged['updated'] === 'string') {
|
|
169
|
+
merged['updated'] = new Date(merged['updated']);
|
|
170
|
+
}
|
|
171
|
+
// Validate merged data with partial schema
|
|
172
|
+
const validatedData = this.inputSchema.partial().parse(merged);
|
|
173
|
+
const updateResults = await this.dataSource.put({
|
|
174
|
+
...validatedData,
|
|
175
|
+
_id: id,
|
|
176
|
+
_rev: existingRev
|
|
177
|
+
}, { force: true });
|
|
178
|
+
if (!updateResults.ok) {
|
|
179
|
+
throw new Error('Could not update');
|
|
180
|
+
}
|
|
181
|
+
const dbResult = await this.dataSource.get(id);
|
|
182
|
+
dbResult['id'] = dbResult['_id'];
|
|
183
|
+
// Convert date strings to Date objects
|
|
184
|
+
if (dbResult['created'] && typeof dbResult['created'] === 'string') {
|
|
185
|
+
dbResult['created'] = new Date(dbResult['created']);
|
|
186
|
+
}
|
|
187
|
+
if (dbResult['updated'] && typeof dbResult['updated'] === 'string') {
|
|
188
|
+
dbResult['updated'] = new Date(dbResult['updated']);
|
|
189
|
+
}
|
|
190
|
+
// Validate Output
|
|
191
|
+
return this.outputSchema?.parse(js_utils_1.Objects.clearEmpties(js_utils_1.Objects.deleteNulls(dbResult)));
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
*
|
|
195
|
+
* PUT operation. All fields not included in the data
|
|
196
|
+
* param will be set to null
|
|
197
|
+
*
|
|
198
|
+
* @param id
|
|
199
|
+
* @param data
|
|
200
|
+
*/
|
|
201
|
+
async replaceById(id, data) {
|
|
202
|
+
const existing = await this.dataSource.get(id);
|
|
203
|
+
const existingId = existing._id;
|
|
204
|
+
const existingRev = existing._rev;
|
|
205
|
+
const existingCreated = existing.created;
|
|
206
|
+
// For replace, we start with only the provided data
|
|
207
|
+
const newData = {
|
|
208
|
+
...data
|
|
209
|
+
};
|
|
210
|
+
// Preserve system fields
|
|
211
|
+
if (existingCreated) {
|
|
212
|
+
newData.created = existingCreated;
|
|
213
|
+
}
|
|
214
|
+
if (this.outputKeys.includes('updated')) {
|
|
215
|
+
newData['updated'] = new Date();
|
|
216
|
+
}
|
|
217
|
+
// Don't validate against full schema since replace allows partial data
|
|
218
|
+
const validatedData = newData;
|
|
219
|
+
const updateResults = await this.dataSource.put({
|
|
220
|
+
...validatedData,
|
|
221
|
+
_id: existingId,
|
|
222
|
+
_rev: existingRev
|
|
223
|
+
}, { force: true });
|
|
224
|
+
if (!updateResults.ok) {
|
|
225
|
+
throw new Error('Could not Replace');
|
|
226
|
+
}
|
|
227
|
+
const val = await this.dataSource.get(existingId);
|
|
228
|
+
val['id'] = val['_id'].toString();
|
|
229
|
+
// Convert date strings to Date objects
|
|
230
|
+
if (val['created'] && typeof val['created'] === 'string') {
|
|
231
|
+
val['created'] = new Date(val['created']);
|
|
232
|
+
}
|
|
233
|
+
if (val['updated'] && typeof val['updated'] === 'string') {
|
|
234
|
+
val['updated'] = new Date(val['updated']);
|
|
235
|
+
}
|
|
236
|
+
// For replace, use partial schema since not all fields may be present
|
|
237
|
+
return this.outputSchema.partial().parse(js_utils_1.Objects.clearEmpties(js_utils_1.Objects.deleteNulls(val)));
|
|
238
|
+
}
|
|
239
|
+
// TODO: apply types to the DB?
|
|
240
|
+
/**
|
|
241
|
+
*
|
|
242
|
+
* Returns the PouchDB Database, you can use it
|
|
243
|
+
* form more complex queries
|
|
244
|
+
*
|
|
245
|
+
* @param query
|
|
246
|
+
*/
|
|
247
|
+
raw() {
|
|
248
|
+
return this.dataSource;
|
|
249
|
+
}
|
|
250
|
+
async findMany(query) {
|
|
251
|
+
const pouchQuery = this.getPouchDBWhere(query?.where);
|
|
252
|
+
// Note: PouchDB requires indexes for sorting, so we'll sort in memory instead
|
|
253
|
+
const needsSort = query?.orderBy && query.orderBy.length > 0;
|
|
254
|
+
// If we need to sort, we can't use PouchDB's limit/skip because they apply before sorting
|
|
255
|
+
// So we'll fetch all results and apply limit/offset after sorting
|
|
256
|
+
if (!needsSort) {
|
|
257
|
+
// Add limit and skip only if we don't need to sort
|
|
258
|
+
if (query?.limit) {
|
|
259
|
+
pouchQuery.limit = query.limit;
|
|
260
|
+
}
|
|
261
|
+
if (query?.offset) {
|
|
262
|
+
pouchQuery.skip = query.offset;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
const response = await this.dataSource.find(pouchQuery);
|
|
266
|
+
const found = response.docs;
|
|
267
|
+
// Process documents
|
|
268
|
+
let processed = found.map(d => {
|
|
269
|
+
const doc = { ...d };
|
|
270
|
+
doc['id'] = doc['_id'];
|
|
271
|
+
if ('_id' in doc)
|
|
272
|
+
delete doc['_id'];
|
|
273
|
+
if ('_rev' in doc)
|
|
274
|
+
delete doc['_rev'];
|
|
275
|
+
// Handle date fields
|
|
276
|
+
if (doc['created'] && typeof doc['created'] === 'string') {
|
|
277
|
+
doc['created'] = new Date(doc['created']);
|
|
278
|
+
}
|
|
279
|
+
if (doc['updated'] && typeof doc['updated'] === 'string') {
|
|
280
|
+
doc['updated'] = new Date(doc['updated']);
|
|
281
|
+
}
|
|
282
|
+
return js_utils_1.Objects.clearEmpties(js_utils_1.Objects.deleteNulls(doc));
|
|
283
|
+
});
|
|
284
|
+
// Apply in-memory sorting if needed
|
|
285
|
+
if (needsSort && query?.orderBy) {
|
|
286
|
+
processed = processed.sort((a, b) => {
|
|
287
|
+
for (const order of query.orderBy) {
|
|
288
|
+
const entries = Object.entries(order);
|
|
289
|
+
if (!entries[0])
|
|
290
|
+
continue;
|
|
291
|
+
const [field, direction] = entries[0];
|
|
292
|
+
const aVal = a[field];
|
|
293
|
+
const bVal = b[field];
|
|
294
|
+
if (aVal === bVal)
|
|
295
|
+
continue;
|
|
296
|
+
const result = aVal < bVal ? -1 : 1;
|
|
297
|
+
return direction === 'asc' ? result : -result;
|
|
298
|
+
}
|
|
299
|
+
return 0;
|
|
300
|
+
});
|
|
301
|
+
// Apply offset and limit after sorting
|
|
302
|
+
if (query?.offset) {
|
|
303
|
+
processed = processed.slice(query.offset);
|
|
304
|
+
}
|
|
305
|
+
if (query?.limit) {
|
|
306
|
+
processed = processed.slice(0, query.limit);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
if (query?.paginated) {
|
|
310
|
+
const paginationInfo = {
|
|
311
|
+
total: 0,
|
|
312
|
+
perPage: query.paginated.perPage,
|
|
313
|
+
currentPage: query.paginated.page,
|
|
314
|
+
nextPage: query.paginated.page + 1,
|
|
315
|
+
firstPage: 1,
|
|
316
|
+
lastPage: Math.ceil(0 / query.paginated.perPage),
|
|
317
|
+
prevPage: query.paginated.page === 1 ? null : query.paginated.page - 1,
|
|
318
|
+
from: (query.paginated.page - 1) * query.paginated.perPage + 1,
|
|
319
|
+
to: query.paginated.perPage * query.paginated.page,
|
|
320
|
+
data: processed
|
|
321
|
+
};
|
|
322
|
+
return paginationInfo;
|
|
323
|
+
}
|
|
324
|
+
if (query?.select) {
|
|
325
|
+
// Apply field selection
|
|
326
|
+
const selectedFields = Object.keys(query.select).filter(key => query.select[key]);
|
|
327
|
+
const selected = processed.map(doc => {
|
|
328
|
+
const selectedDoc = { id: doc.id };
|
|
329
|
+
selectedFields.forEach(field => {
|
|
330
|
+
if (field in doc) {
|
|
331
|
+
selectedDoc[field] = doc[field];
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
return selectedDoc;
|
|
335
|
+
});
|
|
336
|
+
return selected;
|
|
337
|
+
}
|
|
338
|
+
// Validate Output against schema
|
|
339
|
+
// Use partial validation since documents may have been created with replaceById
|
|
340
|
+
return this.outputSchema?.partial().array().parse(processed);
|
|
341
|
+
}
|
|
342
|
+
getPouchDBWhere(where) {
|
|
343
|
+
/*
|
|
344
|
+
|
|
345
|
+
if (this.relationQuery && this.relationQuery.data) {
|
|
346
|
+
const ids = this.relationQuery.data.map(
|
|
347
|
+
d => Ids.objectID(d.id) as unknown as ObjectID
|
|
348
|
+
)
|
|
349
|
+
|
|
350
|
+
andFilters.push([
|
|
351
|
+
this.relationQuery.relation.inverseSidePropertyPath,
|
|
352
|
+
'in',
|
|
353
|
+
ids
|
|
354
|
+
])
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
if (!andFilters || andFilters.length === 0) {
|
|
358
|
+
return filters
|
|
359
|
+
}
|
|
360
|
+
*/
|
|
361
|
+
if (!where || Object.keys(where).length === 0) {
|
|
362
|
+
return {
|
|
363
|
+
selector: {}
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
const Filters = {
|
|
367
|
+
where: { $or: [{ $and: [] }] }
|
|
368
|
+
};
|
|
369
|
+
const orConditions = (0, fluent_1.extractConditions)(where['OR']);
|
|
370
|
+
const andConditions = (0, fluent_1.extractConditions)(where['AND']);
|
|
371
|
+
const copy = js_utils_1.Objects.clone(where);
|
|
372
|
+
if (!!copy['AND']) {
|
|
373
|
+
delete copy['AND'];
|
|
374
|
+
}
|
|
375
|
+
if (!!copy['OR']) {
|
|
376
|
+
delete copy['OR'];
|
|
377
|
+
}
|
|
378
|
+
const rootLevelConditions = (0, fluent_1.extractConditions)([copy]);
|
|
379
|
+
for (const condition of andConditions) {
|
|
380
|
+
let { element, operator, value } = condition;
|
|
381
|
+
if (element === 'id') {
|
|
382
|
+
element = '_id';
|
|
383
|
+
/*
|
|
384
|
+
value = (Array.isArray(value)
|
|
385
|
+
? value.map(v => Ids.objectID(v) as unknown as ObjectID)
|
|
386
|
+
: (Ids.objectID(value) as unknown as ObjectID) as unknown as PrimitivesArray | Primitives)
|
|
387
|
+
*/
|
|
388
|
+
}
|
|
389
|
+
switch (operator) {
|
|
390
|
+
case fluent_1.LogicOperator.equals:
|
|
391
|
+
Filters.where.$or[0].$and.push({ [element]: { $eq: value } });
|
|
392
|
+
break;
|
|
393
|
+
case fluent_1.LogicOperator.isNot:
|
|
394
|
+
Filters.where.$or[0].$and.push({ [element]: { $neq: value } });
|
|
395
|
+
break;
|
|
396
|
+
case fluent_1.LogicOperator.greaterThan:
|
|
397
|
+
Filters.where.$or[0].$and.push({ [element]: { $gt: value } });
|
|
398
|
+
break;
|
|
399
|
+
case fluent_1.LogicOperator.greaterOrEqualThan:
|
|
400
|
+
Filters.where.$or[0].$and.push({ [element]: { $gte: value } });
|
|
401
|
+
break;
|
|
402
|
+
case fluent_1.LogicOperator.lessThan:
|
|
403
|
+
Filters.where.$or[0].$and.push({ [element]: { $lt: value } });
|
|
404
|
+
break;
|
|
405
|
+
case fluent_1.LogicOperator.lessOrEqualThan:
|
|
406
|
+
Filters.where.$or[0].$and.push({ [element]: { $lte: value } });
|
|
407
|
+
break;
|
|
408
|
+
case fluent_1.LogicOperator.in:
|
|
409
|
+
Filters.where.$or[0].$and.push({ [element]: { $in: value } });
|
|
410
|
+
break;
|
|
411
|
+
case fluent_1.LogicOperator.notIn:
|
|
412
|
+
Filters.where.$or[0].$and.push({
|
|
413
|
+
[element]: { $not: { $in: value } }
|
|
414
|
+
});
|
|
415
|
+
break;
|
|
416
|
+
case fluent_1.LogicOperator.exists:
|
|
417
|
+
Filters.where.$or[0].$and.push({ [element]: { $exists: true } });
|
|
418
|
+
break;
|
|
419
|
+
case fluent_1.LogicOperator.notExists:
|
|
420
|
+
Filters.where.$or[0].$and.push({ [element]: { $exists: false } });
|
|
421
|
+
break;
|
|
422
|
+
case fluent_1.LogicOperator.regexp:
|
|
423
|
+
Filters.where.$or[0].$and.push({ [element]: { $regex: value } });
|
|
424
|
+
break;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
for (const condition of rootLevelConditions) {
|
|
428
|
+
let { element, operator, value } = condition;
|
|
429
|
+
if (element === 'id') {
|
|
430
|
+
element = '_id';
|
|
431
|
+
/*
|
|
432
|
+
value = (Array.isArray(value)
|
|
433
|
+
? value.map(v => Ids.objectID(v) as unknown as ObjectID)
|
|
434
|
+
: (Ids.objectID(value) as unknown as ObjectID) as unknown as PrimitivesArray | Primitives)
|
|
435
|
+
*/
|
|
436
|
+
}
|
|
437
|
+
switch (operator) {
|
|
438
|
+
case fluent_1.LogicOperator.equals:
|
|
439
|
+
Filters.where.$or[0].$and.push({ [element]: { $eq: value } });
|
|
440
|
+
break;
|
|
441
|
+
case fluent_1.LogicOperator.isNot:
|
|
442
|
+
Filters.where.$or[0].$and.push({ [element]: { $neq: value } });
|
|
443
|
+
break;
|
|
444
|
+
case fluent_1.LogicOperator.greaterThan:
|
|
445
|
+
Filters.where.$or[0].$and.push({ [element]: { $gt: value } });
|
|
446
|
+
break;
|
|
447
|
+
case fluent_1.LogicOperator.greaterOrEqualThan:
|
|
448
|
+
Filters.where.$or[0].$and.push({ [element]: { $gte: value } });
|
|
449
|
+
break;
|
|
450
|
+
case fluent_1.LogicOperator.lessThan:
|
|
451
|
+
Filters.where.$or[0].$and.push({ [element]: { $lt: value } });
|
|
452
|
+
break;
|
|
453
|
+
case fluent_1.LogicOperator.lessOrEqualThan:
|
|
454
|
+
Filters.where.$or[0].$and.push({ [element]: { $lte: value } });
|
|
455
|
+
break;
|
|
456
|
+
case fluent_1.LogicOperator.in:
|
|
457
|
+
Filters.where.$or[0].$and.push({ [element]: { $in: value } });
|
|
458
|
+
break;
|
|
459
|
+
case fluent_1.LogicOperator.notIn:
|
|
460
|
+
Filters.where.$or[0].$and.push({
|
|
461
|
+
[element]: { $not: { $in: value } }
|
|
462
|
+
});
|
|
463
|
+
break;
|
|
464
|
+
case fluent_1.LogicOperator.exists:
|
|
465
|
+
Filters.where.$or[0].$and.push({ [element]: { $exists: true } });
|
|
466
|
+
break;
|
|
467
|
+
case fluent_1.LogicOperator.notExists:
|
|
468
|
+
Filters.where.$or[0].$and.push({ [element]: { $exists: false } });
|
|
469
|
+
break;
|
|
470
|
+
case fluent_1.LogicOperator.regexp:
|
|
471
|
+
Filters.where.$or[0].$and.push({ [element]: { $regex: value } });
|
|
472
|
+
break;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
for (const condition of orConditions) {
|
|
476
|
+
let { element, operator, value } = condition;
|
|
477
|
+
switch (operator) {
|
|
478
|
+
case fluent_1.LogicOperator.equals:
|
|
479
|
+
Filters.where.$or.push({ [element]: { $eq: value } });
|
|
480
|
+
break;
|
|
481
|
+
case fluent_1.LogicOperator.isNot:
|
|
482
|
+
Filters.where.$or.push({ [element]: { $neq: value } });
|
|
483
|
+
break;
|
|
484
|
+
case fluent_1.LogicOperator.greaterThan:
|
|
485
|
+
Filters.where.$or.push({ [element]: { $gt: value } });
|
|
486
|
+
break;
|
|
487
|
+
case fluent_1.LogicOperator.greaterOrEqualThan:
|
|
488
|
+
Filters.where.$or.push({ [element]: { $gte: value } });
|
|
489
|
+
break;
|
|
490
|
+
case fluent_1.LogicOperator.lessThan:
|
|
491
|
+
Filters.where.$or.push({ [element]: { $lt: value } });
|
|
492
|
+
break;
|
|
493
|
+
case fluent_1.LogicOperator.lessOrEqualThan:
|
|
494
|
+
Filters.where.$or.push({ [element]: { $lte: value } });
|
|
495
|
+
break;
|
|
496
|
+
case fluent_1.LogicOperator.in:
|
|
497
|
+
Filters.where.$or.push({ [element]: { $in: value } });
|
|
498
|
+
break;
|
|
499
|
+
case fluent_1.LogicOperator.notIn:
|
|
500
|
+
Filters.where.$or.push({
|
|
501
|
+
[element]: { $not: { $in: value } }
|
|
502
|
+
});
|
|
503
|
+
break;
|
|
504
|
+
case fluent_1.LogicOperator.exists:
|
|
505
|
+
Filters.where.$or.push({ [element]: { $exists: true } });
|
|
506
|
+
break;
|
|
507
|
+
case fluent_1.LogicOperator.notExists:
|
|
508
|
+
Filters.where.$or.push({ [element]: { $exists: false } });
|
|
509
|
+
break;
|
|
510
|
+
case fluent_1.LogicOperator.regexp:
|
|
511
|
+
Filters.where.$or.push({ [element]: { $regex: value } });
|
|
512
|
+
break;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
return js_utils_1.Objects.clearEmpties({ selector: Filters.where });
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
*
|
|
519
|
+
* @param id
|
|
520
|
+
*/
|
|
521
|
+
async deleteById(id) {
|
|
522
|
+
try {
|
|
523
|
+
const doc = await this.dataSource.get(id);
|
|
524
|
+
await this.dataSource.remove(doc);
|
|
525
|
+
return id;
|
|
526
|
+
}
|
|
527
|
+
catch (error) {
|
|
528
|
+
if (error.status === 404) {
|
|
529
|
+
throw new Error(`The element with id ${id} was not found`);
|
|
530
|
+
}
|
|
531
|
+
throw error;
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
loadFirst(query) {
|
|
535
|
+
// Create a clone of the original class
|
|
536
|
+
// to avoid polluting attributes (relatedQuery)
|
|
537
|
+
const detachedClass = Object.assign(Object.create(Object.getPrototypeOf(this)), this);
|
|
538
|
+
detachedClass.setRelatedQuery({
|
|
539
|
+
entity: this.entity,
|
|
540
|
+
repository: this,
|
|
541
|
+
query
|
|
542
|
+
});
|
|
543
|
+
return detachedClass;
|
|
544
|
+
}
|
|
545
|
+
loadById(id) {
|
|
546
|
+
// Create a new instance to avoid polluting the original one
|
|
547
|
+
const newInstance = this.clone();
|
|
548
|
+
newInstance.setRelatedQuery({
|
|
549
|
+
entity: this.entity,
|
|
550
|
+
repository: this,
|
|
551
|
+
query: {
|
|
552
|
+
where: {
|
|
553
|
+
id
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
});
|
|
557
|
+
return newInstance;
|
|
558
|
+
}
|
|
559
|
+
clone() {
|
|
560
|
+
return new this.constructor();
|
|
561
|
+
}
|
|
562
|
+
async findById(id, q) {
|
|
563
|
+
const results = await this.findByIds([id], q);
|
|
564
|
+
return results[0] || null;
|
|
565
|
+
}
|
|
566
|
+
async findByIds(ids, q) {
|
|
567
|
+
// Call parent implementation
|
|
568
|
+
const results = await super.findByIds(ids, q);
|
|
569
|
+
// Sort results to match the order of input IDs
|
|
570
|
+
const orderedResults = [];
|
|
571
|
+
for (const id of ids) {
|
|
572
|
+
const found = results.find(r => r.id === id);
|
|
573
|
+
if (found) {
|
|
574
|
+
orderedResults.push(found);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
return orderedResults;
|
|
578
|
+
}
|
|
579
|
+
async pluck(path, query) {
|
|
580
|
+
const allDocs = await this.findMany(query);
|
|
581
|
+
// If path is a string, pluck that field
|
|
582
|
+
if (typeof path === 'string') {
|
|
583
|
+
return allDocs.map(doc => doc[path]).filter(val => val !== undefined);
|
|
584
|
+
}
|
|
585
|
+
// Otherwise return empty array
|
|
586
|
+
return [];
|
|
587
|
+
}
|
|
588
|
+
async clear() {
|
|
589
|
+
try {
|
|
590
|
+
// Get all documents first
|
|
591
|
+
const allDocs = await this.dataSource.allDocs();
|
|
592
|
+
// Delete all documents
|
|
593
|
+
const deletePromises = allDocs.rows.map(row => this.dataSource.remove(row.id, row.value.rev));
|
|
594
|
+
await Promise.all(deletePromises);
|
|
595
|
+
return true;
|
|
596
|
+
}
|
|
597
|
+
catch (error) {
|
|
598
|
+
console.error('Error clearing database:', error);
|
|
599
|
+
return false;
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
exports.PouchDBConnector = PouchDBConnector;
|
|
604
|
+
//# sourceMappingURL=PouchDBConnector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PouchDBConnector.js","sourceRoot":"","sources":["../src/PouchDBConnector.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PouchDB = exports.PouchDBConnector = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const PouchDBConnector_1 = require("./PouchDBConnector");
|
|
6
|
+
Object.defineProperty(exports, "PouchDBConnector", { enumerable: true, get: function () { return PouchDBConnector_1.PouchDBConnector; } });
|
|
7
|
+
const pouchdb_1 = tslib_1.__importDefault(require("pouchdb"));
|
|
8
|
+
exports.PouchDB = pouchdb_1.default;
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,yDAAqD;AAG5C,iGAHA,mCAAgB,OAGA;AAFzB,8DAA6B;AAEF,kBAFpB,iBAAO,CAEoB"}
|