@liminalfunctions/framework-vitamins 1.0.0 → 1.0.2
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/type_generated_collection.d.ts +2 -0
- package/dist/vitamins.d.ts +1 -0
- package/dist/vitamins.js +17 -10
- package/dist/vitamins.js.map +1 -1
- package/package.json +1 -1
- package/src/type_generated_collection.ts +3 -1
- package/src/vitamins.ts +21 -10
- package/test/0_0_basics.test.ts +72 -73
- package/test/utils/testing_harness.ts +20 -8
|
@@ -4,12 +4,14 @@ export type result = {
|
|
|
4
4
|
export type generated_collection_interface<T extends result> = {
|
|
5
5
|
path: string[];
|
|
6
6
|
collection_id: string;
|
|
7
|
+
collection_name_plural: string;
|
|
7
8
|
query: (query: any) => Promise<T[]>;
|
|
8
9
|
document: (document_id: string) => generated_document_interface<T>;
|
|
9
10
|
};
|
|
10
11
|
export type generated_document_interface<T extends result> = {
|
|
11
12
|
path: string[];
|
|
12
13
|
collection_id: string;
|
|
14
|
+
collection_name_plural: string;
|
|
13
15
|
document_id: string;
|
|
14
16
|
get: () => Promise<T>;
|
|
15
17
|
};
|
package/dist/vitamins.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export declare class Vitamins {
|
|
|
42
42
|
queries_by_collection: Map<string, Set<Query>>;
|
|
43
43
|
debug_on: boolean;
|
|
44
44
|
constructor(vue: App);
|
|
45
|
+
document<Collection extends generated_collection_interface<result>>(collection: Collection, ...generators: child_generator<Infer_Collection_Returntype<Collection>>[]): Query;
|
|
45
46
|
query<Collection extends generated_collection_interface<result>>(collection: Collection, query_parameters: any, ...generators: child_generator<Infer_Collection_Returntype<Collection>>[]): Query;
|
|
46
47
|
delete_document_from_external(document_id: string): void;
|
|
47
48
|
update_document_from_external(document_id: string, data: result): void;
|
package/dist/vitamins.js
CHANGED
|
@@ -212,6 +212,13 @@ export class Vitamins {
|
|
|
212
212
|
this.all_queries = new Map();
|
|
213
213
|
this.debug_on = false;
|
|
214
214
|
}
|
|
215
|
+
document(collection, ...generators) {
|
|
216
|
+
if (!this.queries_by_collection.has(collection.collection_id)) {
|
|
217
|
+
this.queries_by_collection.set(collection.collection_id, new Set());
|
|
218
|
+
}
|
|
219
|
+
let generated_query = new Query(this, collection, undefined, generators);
|
|
220
|
+
return generated_query;
|
|
221
|
+
}
|
|
215
222
|
query(collection, query_parameters, ...generators) {
|
|
216
223
|
if (!this.queries_by_collection.has(collection.collection_id)) {
|
|
217
224
|
this.queries_by_collection.set(collection.collection_id, new Set());
|
|
@@ -292,13 +299,13 @@ export class Vitamins {
|
|
|
292
299
|
}
|
|
293
300
|
this._cleanup(test_queries_for_deletion, []);
|
|
294
301
|
let cloned_data = structuredClone(data);
|
|
295
|
-
if (!this.vue[document.reference.
|
|
296
|
-
throw new Error(`when updating ${document.reference.
|
|
302
|
+
if (!this.vue[document.reference.collection_name_plural]) {
|
|
303
|
+
throw new Error(`when updating ${document.reference.collection_name_plural}, found that the vue app does not have a ${document.reference.collection_name_plural} key`);
|
|
297
304
|
}
|
|
298
|
-
if (!(this.vue[document.reference.
|
|
299
|
-
throw new Error(`when updating ${document.reference.
|
|
305
|
+
if (!(this.vue[document.reference.collection_name_plural] instanceof Map)) {
|
|
306
|
+
throw new Error(`when updating ${document.reference.collection_name_plural}, found that the vue app key ${document.reference.collection_name_plural} is not a map. It should be a Map<string, ${document.reference.collection_name_plural}>`);
|
|
300
307
|
}
|
|
301
|
-
this.vue[document.reference.
|
|
308
|
+
this.vue[document.reference.collection_name_plural].set(document_id, cloned_data);
|
|
302
309
|
}
|
|
303
310
|
_generate_child_queries(document) {
|
|
304
311
|
let all_generated_child_queries = [];
|
|
@@ -344,15 +351,15 @@ export class Vitamins {
|
|
|
344
351
|
child.unlink_parent(document.id);
|
|
345
352
|
}
|
|
346
353
|
this.documents.delete(document.id);
|
|
347
|
-
if (!this.vue[document.reference.
|
|
348
|
-
throw new Error(`when updating ${document.reference.
|
|
354
|
+
if (!this.vue[document.reference.collection_name_plural]) {
|
|
355
|
+
throw new Error(`when updating ${document.reference.collection_name_plural}, found that the vue app does not have a ${document.reference.collection_name_plural} key`);
|
|
349
356
|
}
|
|
350
357
|
;
|
|
351
|
-
if (!this.vue[document.reference.
|
|
352
|
-
throw new Error(`when updating ${document.reference.
|
|
358
|
+
if (!this.vue[document.reference.collection_name_plural] instanceof Map) {
|
|
359
|
+
throw new Error(`when updating ${document.reference.collection_name_plural}, found that the vue app key ${document.reference.collection_name_plural} is not a map. It should be a Map<string, ${document.reference.collection_name_plural}>`);
|
|
353
360
|
}
|
|
354
361
|
;
|
|
355
|
-
this.vue[document.reference.
|
|
362
|
+
this.vue[document.reference.collection_name_plural].delete(document.id);
|
|
356
363
|
}
|
|
357
364
|
}
|
|
358
365
|
}
|
package/dist/vitamins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitamins.js","sourceRoot":"","sources":["../src/vitamins.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vitamins.js","sourceRoot":"","sources":["../src/vitamins.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@ export type result = { _id: string };
|
|
|
2
2
|
export type generated_collection_interface<T extends result> = {
|
|
3
3
|
path: string[]
|
|
4
4
|
collection_id: string
|
|
5
|
+
collection_name_plural: string
|
|
5
6
|
|
|
6
7
|
query: (query: any) => Promise<T[]>;
|
|
7
8
|
document: (document_id: string) => generated_document_interface<T>
|
|
@@ -9,7 +10,8 @@ export type generated_collection_interface<T extends result> = {
|
|
|
9
10
|
|
|
10
11
|
export type generated_document_interface<T extends result> = {
|
|
11
12
|
path: string[]
|
|
12
|
-
collection_id: string
|
|
13
|
+
collection_id: string
|
|
14
|
+
collection_name_plural: string
|
|
13
15
|
document_id: string
|
|
14
16
|
get: () => Promise<T>;
|
|
15
17
|
}
|
package/src/vitamins.ts
CHANGED
|
@@ -223,6 +223,17 @@ export class Vitamins {
|
|
|
223
223
|
this.debug_on = false;
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
+
document<Collection extends generated_collection_interface<result>>(collection: Collection, ...generators: child_generator<Infer_Collection_Returntype<Collection>>[]): Query {
|
|
227
|
+
// if queries_by_collection does not yet have a key for the relevant collection, create one.
|
|
228
|
+
if(!this.queries_by_collection.has(collection.collection_id)){ this.queries_by_collection.set(collection.collection_id, new Set()); }
|
|
229
|
+
|
|
230
|
+
// if the created query already exists within the system, set up to return the existing query instead
|
|
231
|
+
let generated_query = new Query(this, collection, undefined, generators);
|
|
232
|
+
|
|
233
|
+
//return query;
|
|
234
|
+
return generated_query;
|
|
235
|
+
}
|
|
236
|
+
|
|
226
237
|
query<Collection extends generated_collection_interface<result>>(collection: Collection, query_parameters: any, ...generators: child_generator<Infer_Collection_Returntype<Collection>>[]): Query {
|
|
227
238
|
// if queries_by_collection does not yet have a key for the relevant collection, create one.
|
|
228
239
|
if(!this.queries_by_collection.has(collection.collection_id)){ this.queries_by_collection.set(collection.collection_id, new Set()); }
|
|
@@ -336,17 +347,17 @@ export class Vitamins {
|
|
|
336
347
|
let cloned_data = structuredClone(data);
|
|
337
348
|
|
|
338
349
|
//@ts-expect-error
|
|
339
|
-
if(!this.vue[document.reference.
|
|
340
|
-
throw new Error(`when updating ${document.reference.
|
|
350
|
+
if(!this.vue[document.reference.collection_name_plural]){
|
|
351
|
+
throw new Error(`when updating ${document.reference.collection_name_plural}, found that the vue app does not have a ${document.reference.collection_name_plural} key`);
|
|
341
352
|
}
|
|
342
353
|
|
|
343
354
|
//@ts-expect-error
|
|
344
|
-
if(!(this.vue[document.reference.
|
|
345
|
-
throw new Error(`when updating ${document.reference.
|
|
355
|
+
if(!(this.vue[document.reference.collection_name_plural] instanceof Map)){
|
|
356
|
+
throw new Error(`when updating ${document.reference.collection_name_plural}, found that the vue app key ${document.reference.collection_name_plural} is not a map. It should be a Map<string, ${document.reference.collection_name_plural}>`);
|
|
346
357
|
}
|
|
347
358
|
|
|
348
359
|
//@ts-expect-error
|
|
349
|
-
(this.vue[document.reference.
|
|
360
|
+
(this.vue[document.reference.collection_name_plural] as Map).set(document_id, cloned_data);
|
|
350
361
|
}
|
|
351
362
|
|
|
352
363
|
_generate_child_queries(document: Document): Query[] {
|
|
@@ -408,16 +419,16 @@ export class Vitamins {
|
|
|
408
419
|
|
|
409
420
|
this.documents.delete(document.id);
|
|
410
421
|
//@ts-expect-error
|
|
411
|
-
if(!this.vue[document.reference.
|
|
412
|
-
throw new Error(`when updating ${document.reference.
|
|
422
|
+
if(!this.vue[document.reference.collection_name_plural]){
|
|
423
|
+
throw new Error(`when updating ${document.reference.collection_name_plural}, found that the vue app does not have a ${document.reference.collection_name_plural} key`)
|
|
413
424
|
};
|
|
414
425
|
|
|
415
426
|
//@ts-expect-error
|
|
416
|
-
if(!this.vue[document.reference.
|
|
417
|
-
throw new Error(`when updating ${document.reference.
|
|
427
|
+
if(!this.vue[document.reference.collection_name_plural] instanceof Map){
|
|
428
|
+
throw new Error(`when updating ${document.reference.collection_name_plural}, found that the vue app key ${document.reference.collection_name_plural} is not a map. It should be a Map<string, ${document.reference.collection_name_plural}>`)
|
|
418
429
|
};
|
|
419
430
|
//@ts-expect-error
|
|
420
|
-
this.vue[document.reference.
|
|
431
|
+
this.vue[document.reference.collection_name_plural].delete(document.id);
|
|
421
432
|
}
|
|
422
433
|
}
|
|
423
434
|
}
|
package/test/0_0_basics.test.ts
CHANGED
|
@@ -16,26 +16,22 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
16
16
|
|
|
17
17
|
let collection_mutualism = new Mutualism(
|
|
18
18
|
['institution', 'client', 'mutualism'],
|
|
19
|
-
'mutualism',
|
|
20
19
|
mutualsm_database
|
|
21
20
|
)
|
|
22
21
|
|
|
23
22
|
let collection_project = new Project(
|
|
24
23
|
['institution', 'project'],
|
|
25
|
-
'project',
|
|
26
24
|
project_database
|
|
27
25
|
)
|
|
28
26
|
|
|
29
27
|
let collection_client = new Client(
|
|
30
28
|
['institution', 'client'],
|
|
31
|
-
'client',
|
|
32
29
|
client_database,
|
|
33
30
|
collection_mutualism
|
|
34
31
|
)
|
|
35
32
|
|
|
36
33
|
let collection_institution = new Institution(
|
|
37
34
|
['institution'],
|
|
38
|
-
'institution',
|
|
39
35
|
institution_database,
|
|
40
36
|
collection_client,
|
|
41
37
|
collection_project
|
|
@@ -64,10 +60,10 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
64
60
|
|
|
65
61
|
function gen_vue() {
|
|
66
62
|
return {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
institutions: new Map<string, any>(),
|
|
64
|
+
clients: new Map<string, any>(),
|
|
65
|
+
projects: new Map<string, any>(),
|
|
66
|
+
mutualisms: new Map<string, any>(),
|
|
71
67
|
}
|
|
72
68
|
}
|
|
73
69
|
|
|
@@ -99,9 +95,9 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
99
95
|
await sleep(20);
|
|
100
96
|
|
|
101
97
|
let test_against = gen_vue();
|
|
102
|
-
test_against.
|
|
98
|
+
test_against.institutions.set(institution._id, structuredClone(institution));
|
|
103
99
|
|
|
104
|
-
assert.deepEqual(vue.
|
|
100
|
+
assert.deepEqual(vue.institutions.get(institution._id), institution)
|
|
105
101
|
assert.deepEqual(vue, test_against)
|
|
106
102
|
});
|
|
107
103
|
|
|
@@ -121,11 +117,11 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
121
117
|
await sleep(20);
|
|
122
118
|
|
|
123
119
|
let test_against = gen_vue();
|
|
124
|
-
test_against.
|
|
125
|
-
test_against.
|
|
126
|
-
test_against.
|
|
120
|
+
test_against.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
121
|
+
test_against.institutions.set(institution_2._id, structuredClone(institution_2));
|
|
122
|
+
test_against.institutions.set(institution_3._id, structuredClone(institution_3));
|
|
127
123
|
|
|
128
|
-
assert.deepEqual(vue.
|
|
124
|
+
assert.deepEqual(vue.institutions.get(institution_3._id), institution_3)
|
|
129
125
|
assert.deepEqual(vue, test_against)
|
|
130
126
|
});
|
|
131
127
|
|
|
@@ -140,13 +136,13 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
140
136
|
//@ts-expect-error
|
|
141
137
|
let vitamins = new Vitamins(vue);
|
|
142
138
|
//@ts-expect-error
|
|
143
|
-
await vitamins.
|
|
139
|
+
await vitamins.document(api.collection('institution')?.document(institution._id)).run()
|
|
144
140
|
await sleep(20);
|
|
145
141
|
|
|
146
142
|
let test_against = gen_vue();
|
|
147
|
-
test_against.
|
|
143
|
+
test_against.institutions.set(institution._id, structuredClone(institution));
|
|
148
144
|
|
|
149
|
-
assert.deepEqual(vue.
|
|
145
|
+
assert.deepEqual(vue.institutions.get(institution._id), institution)
|
|
150
146
|
assert.deepEqual(vue, test_against)
|
|
151
147
|
});
|
|
152
148
|
|
|
@@ -168,11 +164,11 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
168
164
|
await sleep(20);
|
|
169
165
|
|
|
170
166
|
let test_against = gen_vue();
|
|
171
|
-
test_against.
|
|
172
|
-
test_against.
|
|
167
|
+
test_against.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
168
|
+
test_against.clients.set(client_1._id, structuredClone(client_1));
|
|
173
169
|
|
|
174
|
-
assert.deepEqual(vue.
|
|
175
|
-
assert.deepEqual(vue.
|
|
170
|
+
assert.deepEqual(vue.institutions.get(institution_1._id), institution_1)
|
|
171
|
+
assert.deepEqual(vue.clients.get(client_1._id), client_1)
|
|
176
172
|
assert.deepEqual(vue, test_against)
|
|
177
173
|
});
|
|
178
174
|
|
|
@@ -195,11 +191,11 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
195
191
|
await sleep(20);
|
|
196
192
|
|
|
197
193
|
let test_against = gen_vue();
|
|
198
|
-
test_against.
|
|
199
|
-
test_against.
|
|
194
|
+
test_against.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
195
|
+
test_against.clients.set(client_1._id, structuredClone(client_1));
|
|
200
196
|
|
|
201
|
-
assert.deepEqual(vue.
|
|
202
|
-
assert.deepEqual(vue.
|
|
197
|
+
assert.deepEqual(vue.institutions.get(institution_1._id), institution_1)
|
|
198
|
+
assert.deepEqual(vue.clients.get(client_1._id), client_1)
|
|
203
199
|
assert.deepEqual(vue, test_against)
|
|
204
200
|
});
|
|
205
201
|
|
|
@@ -231,17 +227,17 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
231
227
|
await sleep(20);
|
|
232
228
|
|
|
233
229
|
let test_against = gen_vue();
|
|
234
|
-
test_against.
|
|
235
|
-
test_against.
|
|
236
|
-
test_against.
|
|
237
|
-
test_against.
|
|
238
|
-
test_against.
|
|
239
|
-
|
|
240
|
-
assert.deepEqual(vue.
|
|
241
|
-
assert.deepEqual(vue.
|
|
242
|
-
assert.deepEqual(vue.
|
|
243
|
-
assert.deepEqual(vue.
|
|
244
|
-
assert.deepEqual(vue.
|
|
230
|
+
test_against.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
231
|
+
test_against.projects.set(project_1._id, structuredClone(project_1));
|
|
232
|
+
test_against.projects.set(project_2._id, structuredClone(project_2));
|
|
233
|
+
test_against.projects.set(project_3._id, structuredClone(project_3));
|
|
234
|
+
test_against.projects.set(project_4._id, structuredClone(project_4));
|
|
235
|
+
|
|
236
|
+
assert.deepEqual(vue.institutions.get(institution_1._id), institution_1)
|
|
237
|
+
assert.deepEqual(vue.projects.get(project_1._id), project_1)
|
|
238
|
+
assert.deepEqual(vue.projects.get(project_2._id), project_2)
|
|
239
|
+
assert.deepEqual(vue.projects.get(project_3._id), project_3)
|
|
240
|
+
assert.deepEqual(vue.projects.get(project_4._id), project_4)
|
|
245
241
|
assert.deepEqual(vue, test_against)
|
|
246
242
|
|
|
247
243
|
// make sure that extra queries aren't happening
|
|
@@ -274,13 +270,13 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
274
270
|
await sleep(20);
|
|
275
271
|
|
|
276
272
|
let test_against = gen_vue();
|
|
277
|
-
test_against.
|
|
278
|
-
test_against.
|
|
279
|
-
test_against.
|
|
280
|
-
test_against.
|
|
273
|
+
test_against.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
274
|
+
test_against.institutions.set(institution_2._id, structuredClone(institution_2));
|
|
275
|
+
test_against.institutions.set(institution_3._id, structuredClone(institution_3));
|
|
276
|
+
test_against.clients.set(client_1._id, structuredClone(client_1));
|
|
281
277
|
|
|
282
|
-
assert.deepEqual(vue.
|
|
283
|
-
assert.deepEqual(vue.
|
|
278
|
+
assert.deepEqual(vue.clients.get(client_1._id), client_1)
|
|
279
|
+
assert.deepEqual(vue.institutions.get(institution_3._id), institution_3)
|
|
284
280
|
assert.deepEqual(vue, test_against)
|
|
285
281
|
|
|
286
282
|
assert.equal(api.collection('institution')?.document('*').collection('client').meta_counter.get(client_1._id), 1)
|
|
@@ -313,14 +309,14 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
313
309
|
await sleep(20);
|
|
314
310
|
|
|
315
311
|
let test_against = gen_vue();
|
|
316
|
-
test_against.
|
|
317
|
-
test_against.
|
|
318
|
-
test_against.
|
|
319
|
-
test_against.
|
|
320
|
-
|
|
321
|
-
assert.deepEqual(vue.
|
|
322
|
-
assert.deepEqual(vue.
|
|
323
|
-
assert.deepEqual(vue.
|
|
312
|
+
test_against.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
313
|
+
test_against.clients.set(client_1._id, structuredClone(client_1));
|
|
314
|
+
test_against.clients.set(client_2._id, structuredClone(client_2));
|
|
315
|
+
test_against.clients.set(client_3._id, structuredClone(client_3));
|
|
316
|
+
|
|
317
|
+
assert.deepEqual(vue.clients.get(client_1._id), client_1)
|
|
318
|
+
assert.deepEqual(vue.clients.get(client_2._id), client_2)
|
|
319
|
+
assert.deepEqual(vue.clients.get(client_3._id), client_3)
|
|
324
320
|
assert.deepEqual(vue, test_against)
|
|
325
321
|
|
|
326
322
|
assert.equal(api.collection('institution')?.meta_counter.get(institution_1._id), 1)
|
|
@@ -343,18 +339,18 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
343
339
|
//@ts-expect-error
|
|
344
340
|
let vitamins = new Vitamins(vue);
|
|
345
341
|
//@ts-expect-error
|
|
346
|
-
let query = await vitamins.
|
|
342
|
+
let query = await vitamins.document(api.collection('institution')?.document('*').collection('client').document(client_1._id) as Collection,
|
|
347
343
|
//@ts-expect-error
|
|
348
344
|
(result) => vitamins.query(api.collection('institution'), {_id: result.institution_id }),
|
|
349
345
|
).run()
|
|
350
346
|
await sleep(20);
|
|
351
347
|
|
|
352
348
|
let test_against_phase_1 = gen_vue();
|
|
353
|
-
test_against_phase_1.
|
|
354
|
-
test_against_phase_1.
|
|
349
|
+
test_against_phase_1.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
350
|
+
test_against_phase_1.clients.set(client_1._id, structuredClone(client_1));
|
|
355
351
|
|
|
356
|
-
assert.deepEqual(vue.
|
|
357
|
-
assert.deepEqual(vue.
|
|
352
|
+
assert.deepEqual(vue.clients.get(client_1._id), client_1)
|
|
353
|
+
assert.deepEqual(vue.institutions.get(institution_1._id), institution_1)
|
|
358
354
|
assert.deepEqual(vue, test_against_phase_1)
|
|
359
355
|
|
|
360
356
|
client_1.institution_id = institution_2._id;
|
|
@@ -362,11 +358,11 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
362
358
|
await sleep(20);
|
|
363
359
|
|
|
364
360
|
let test_against_phase_2 = gen_vue();
|
|
365
|
-
test_against_phase_2.
|
|
366
|
-
test_against_phase_2.
|
|
361
|
+
test_against_phase_2.institutions.set(institution_2._id, structuredClone(institution_2));
|
|
362
|
+
test_against_phase_2.clients.set(client_1._id, structuredClone(client_1));
|
|
367
363
|
|
|
368
|
-
assert.deepEqual(vue.
|
|
369
|
-
assert.deepEqual(vue.
|
|
364
|
+
assert.deepEqual(vue.clients.get(client_1._id), client_1);
|
|
365
|
+
assert.deepEqual(vue.institutions.get(institution_2._id), institution_2);
|
|
370
366
|
assert.deepEqual(vue, test_against_phase_2);
|
|
371
367
|
});
|
|
372
368
|
|
|
@@ -384,29 +380,29 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
384
380
|
//@ts-expect-error
|
|
385
381
|
let vitamins = new Vitamins(vue);
|
|
386
382
|
//@ts-expect-error
|
|
387
|
-
let query = await vitamins.
|
|
383
|
+
let query = await vitamins.document(api.collection('institution')?.document('*').collection('client').document(client_1._id) as Collection,
|
|
388
384
|
//@ts-expect-error
|
|
389
385
|
(result) => vitamins.query(api.collection('institution'), {_id: result.institution_id }),
|
|
390
386
|
).run()
|
|
391
387
|
await sleep(20);
|
|
392
388
|
|
|
393
389
|
let test_against_phase_1 = gen_vue();
|
|
394
|
-
test_against_phase_1.
|
|
395
|
-
test_against_phase_1.
|
|
390
|
+
test_against_phase_1.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
391
|
+
test_against_phase_1.clients.set(client_1._id, structuredClone(client_1));
|
|
396
392
|
|
|
397
|
-
assert.deepEqual(vue.
|
|
398
|
-
assert.deepEqual(vue.
|
|
393
|
+
assert.deepEqual(vue.clients.get(client_1._id), client_1)
|
|
394
|
+
assert.deepEqual(vue.institutions.get(institution_1._id), institution_1)
|
|
399
395
|
assert.deepEqual(vue, test_against_phase_1)
|
|
400
396
|
|
|
401
397
|
vitamins.update_document_from_external(client_1._id, Object.assign(client_1, {institution_id: institution_2._id}))
|
|
402
398
|
await sleep(20);
|
|
403
399
|
|
|
404
400
|
let test_against_phase_2 = gen_vue();
|
|
405
|
-
test_against_phase_2.
|
|
406
|
-
test_against_phase_2.
|
|
401
|
+
test_against_phase_2.institutions.set(institution_2._id, structuredClone(institution_2));
|
|
402
|
+
test_against_phase_2.clients.set(client_1._id, structuredClone(client_1));
|
|
407
403
|
|
|
408
|
-
assert.deepEqual(vue.
|
|
409
|
-
assert.deepEqual(vue.
|
|
404
|
+
assert.deepEqual(vue.clients.get(client_1._id), client_1);
|
|
405
|
+
assert.deepEqual(vue.institutions.get(institution_2._id), institution_2);
|
|
410
406
|
assert.deepEqual(vue, test_against_phase_2);
|
|
411
407
|
});
|
|
412
408
|
|
|
@@ -432,9 +428,9 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
432
428
|
await sleep(20);
|
|
433
429
|
|
|
434
430
|
let test_against_phase_1 = gen_vue();
|
|
435
|
-
test_against_phase_1.
|
|
436
|
-
test_against_phase_1.
|
|
437
|
-
test_against_phase_1.
|
|
431
|
+
test_against_phase_1.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
432
|
+
test_against_phase_1.clients.set(client_1._id, structuredClone(client_1));
|
|
433
|
+
test_against_phase_1.projects.set(project_1._id, structuredClone(project_1));
|
|
438
434
|
|
|
439
435
|
assert.deepEqual(vue, test_against_phase_1)
|
|
440
436
|
|
|
@@ -442,7 +438,7 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
442
438
|
await sleep(20);
|
|
443
439
|
|
|
444
440
|
let test_against_phase_2 = gen_vue();
|
|
445
|
-
test_against_phase_2.
|
|
441
|
+
test_against_phase_2.institutions.set(institution_1._id, structuredClone(institution_1));
|
|
446
442
|
|
|
447
443
|
assert.deepEqual(vue, test_against_phase_2)
|
|
448
444
|
});
|
|
@@ -499,7 +495,7 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
499
495
|
//@ts-expect-error
|
|
500
496
|
let vitamins = new Vitamins(vue);
|
|
501
497
|
//@ts-expect-error
|
|
502
|
-
await vitamins.
|
|
498
|
+
await vitamins.document(api.collection('institution').document(institution_1._id),
|
|
503
499
|
(result) => vitamins.query(api.collection('institution')?.document(result._id).collection('client'), {})
|
|
504
500
|
).run()
|
|
505
501
|
}, 'Error: arbitrary error');
|
|
@@ -533,4 +529,7 @@ describe('Client Library Generation: Library Generation', function () {
|
|
|
533
529
|
).run();
|
|
534
530
|
}, 'Error: arbitrary error');
|
|
535
531
|
});
|
|
532
|
+
|
|
533
|
+
// TODO: vue needs the ability to have a different name for the collection.
|
|
534
|
+
// for example, the collection ID may be "user", but on vue it needs to be "users".
|
|
536
535
|
});
|
|
@@ -96,6 +96,7 @@ export function gen_mutualism(institution: result, clients: result[], name: stri
|
|
|
96
96
|
export class Institution {
|
|
97
97
|
path: string[]
|
|
98
98
|
collection_id: string;
|
|
99
|
+
collection_name_plural: string
|
|
99
100
|
database: Map<string, any>
|
|
100
101
|
meta_counter: Map<string, any>
|
|
101
102
|
errors: boolean
|
|
@@ -104,9 +105,10 @@ export class Institution {
|
|
|
104
105
|
client: Client
|
|
105
106
|
|
|
106
107
|
|
|
107
|
-
constructor(path: string[],
|
|
108
|
+
constructor(path: string[], project_database: Map<string, any>, client: Client, project: Project) {
|
|
108
109
|
this.path = path;
|
|
109
|
-
this.collection_id =
|
|
110
|
+
this.collection_id = 'institution';
|
|
111
|
+
this.collection_name_plural = 'institutions'
|
|
110
112
|
this.database = project_database;
|
|
111
113
|
this.meta_counter = new Map();
|
|
112
114
|
this.project = project;
|
|
@@ -124,6 +126,7 @@ export class Institution {
|
|
|
124
126
|
return {
|
|
125
127
|
path: [...self.path, document_id],
|
|
126
128
|
collection_id: self.collection_id,
|
|
129
|
+
collection_name_plural: self.collection_name_plural,
|
|
127
130
|
document_id: document_id,
|
|
128
131
|
async get(): Promise<institution_result>{
|
|
129
132
|
if(self.errors){ throw new Error('arbitrary error')};
|
|
@@ -144,15 +147,17 @@ export class Institution {
|
|
|
144
147
|
export class Client {
|
|
145
148
|
path: string[]
|
|
146
149
|
collection_id: string;
|
|
150
|
+
collection_name_plural: string;
|
|
147
151
|
database: Map<string, any>
|
|
148
152
|
meta_counter: Map<string, any>
|
|
149
153
|
errors: boolean
|
|
150
154
|
|
|
151
155
|
mutualism: Mutualism
|
|
152
156
|
|
|
153
|
-
constructor(path: string[],
|
|
157
|
+
constructor(path: string[], client_database: Map<string, any>, mutualism: Mutualism) {
|
|
154
158
|
this.path = path;
|
|
155
|
-
this.collection_id =
|
|
159
|
+
this.collection_id = 'client';
|
|
160
|
+
this.collection_name_plural = 'clients';
|
|
156
161
|
this.database = client_database;
|
|
157
162
|
this.meta_counter = new Map();
|
|
158
163
|
this.mutualism = mutualism;
|
|
@@ -169,6 +174,7 @@ export class Client {
|
|
|
169
174
|
return {
|
|
170
175
|
path: [...self.path, document_id],
|
|
171
176
|
collection_id: self.collection_id,
|
|
177
|
+
collection_name_plural: self.collection_name_plural,
|
|
172
178
|
document_id: document_id,
|
|
173
179
|
async get(): Promise<client_result> {
|
|
174
180
|
if(self.errors){ throw new Error('arbitrary error')};
|
|
@@ -187,13 +193,15 @@ export class Client {
|
|
|
187
193
|
export class Project {
|
|
188
194
|
path: string[]
|
|
189
195
|
collection_id: string;
|
|
196
|
+
collection_name_plural: string
|
|
190
197
|
database: Map<string, any>
|
|
191
198
|
meta_counter: Map<string, any>
|
|
192
199
|
errors: boolean
|
|
193
200
|
|
|
194
|
-
constructor(path: string[],
|
|
201
|
+
constructor(path: string[], project_database: Map<string, any>) {
|
|
195
202
|
this.path = path;
|
|
196
|
-
this.collection_id =
|
|
203
|
+
this.collection_id = 'project';
|
|
204
|
+
this.collection_name_plural = 'projects'
|
|
197
205
|
this.database = project_database;
|
|
198
206
|
this.meta_counter = new Map();
|
|
199
207
|
this.errors = false;
|
|
@@ -209,6 +217,7 @@ export class Project {
|
|
|
209
217
|
return {
|
|
210
218
|
path: [...self.path, document_id],
|
|
211
219
|
collection_id: self.collection_id,
|
|
220
|
+
collection_name_plural: self.collection_name_plural,
|
|
212
221
|
document_id: document_id,
|
|
213
222
|
async get(): Promise<project_result> {
|
|
214
223
|
if(self.errors){ throw new Error('arbitrary error')};
|
|
@@ -222,13 +231,15 @@ export class Project {
|
|
|
222
231
|
export class Mutualism {
|
|
223
232
|
path: string[]
|
|
224
233
|
collection_id: string;
|
|
234
|
+
collection_name_plural: string
|
|
225
235
|
database: Map<string, any>
|
|
226
236
|
meta_counter: Map<string, any>
|
|
227
237
|
errors: boolean
|
|
228
238
|
|
|
229
|
-
constructor(path: string[],
|
|
239
|
+
constructor(path: string[], mutualism_database: Map<string, any>) {
|
|
230
240
|
this.path = path;
|
|
231
|
-
this.collection_id =
|
|
241
|
+
this.collection_id = 'mutualism';
|
|
242
|
+
this.collection_name_plural = 'mutualisms'
|
|
232
243
|
this.database = mutualism_database;
|
|
233
244
|
this.meta_counter = new Map();
|
|
234
245
|
this.errors = false;
|
|
@@ -244,6 +255,7 @@ export class Mutualism {
|
|
|
244
255
|
return {
|
|
245
256
|
path: [...self.path, document_id],
|
|
246
257
|
collection_id: self.collection_id,
|
|
258
|
+
collection_name_plural: self.collection_name_plural,
|
|
247
259
|
document_id: document_id,
|
|
248
260
|
async get(): Promise<mutualism_result> {
|
|
249
261
|
if(self.errors){ throw new Error('arbitrary error')};
|