appwrite-utils-cli 0.0.51 → 0.0.53

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.
@@ -334,7 +334,7 @@ export class DataLoader {
334
334
  }
335
335
  }
336
336
  console.log("Running update references");
337
- this.dealWithMergedUsers();
337
+ // this.dealWithMergedUsers();
338
338
  this.updateOldReferencesForNew();
339
339
  console.log("Done running update references");
340
340
  }
@@ -357,73 +357,6 @@ export class DataLoader {
357
357
  }
358
358
  let needsUpdate = false;
359
359
  let numUpdates = 0;
360
- // Collect primary key fields from the users collection definitions
361
- this.config.collections.forEach((collection) => {
362
- if (this.getCollectionKey(collection.name) === usersCollectionKey) {
363
- const collectionImportDefs = collection.importDefs;
364
- if (!collectionImportDefs || !collectionImportDefs.length) {
365
- return;
366
- }
367
- collectionImportDefs.forEach((importDef) => {
368
- if (importDef.primaryKeyField) {
369
- usersCollectionPrimaryKeyFields.add(importDef.primaryKeyField);
370
- }
371
- });
372
- }
373
- });
374
- console.log(`Primary key fields collected for users collection: ${[
375
- ...usersCollectionPrimaryKeyFields,
376
- ]}`);
377
- // Iterate over all collections to update references based on merged users
378
- this.config.collections.forEach((collection) => {
379
- const collectionData = this.importMap.get(this.getCollectionKey(collection.name));
380
- if (!collectionData || !collectionData.data) {
381
- console.log(`No data found for collection ${collection.name}`);
382
- return;
383
- }
384
- const collectionImportDefs = collection.importDefs;
385
- if (!collectionImportDefs || !collectionImportDefs.length) {
386
- console.log(`No import definitions found for collection ${collection.name}`);
387
- return;
388
- }
389
- collectionImportDefs.forEach((importDef) => {
390
- importDef.idMappings?.forEach((idMapping) => {
391
- if (this.getCollectionKey(idMapping.targetCollection) ===
392
- usersCollectionKey) {
393
- const fieldToSetKey = idMapping.fieldToSet || idMapping.sourceField;
394
- const targetFieldKey = idMapping.targetFieldToMatch || idMapping.targetField;
395
- if (usersCollectionPrimaryKeyFields.has(targetFieldKey)) {
396
- console.log(`Processing collection ${collection.name} with target field ${targetFieldKey}`);
397
- // Process each item in the collection
398
- collectionData.data.forEach((item) => {
399
- const oldId = item.finalData[idMapping.sourceField] ||
400
- item.context[idMapping.sourceField];
401
- if (oldId === undefined || oldId === null) {
402
- console.log(`Skipping item with undefined or null oldId in collection ${collection.name}`);
403
- return;
404
- }
405
- const newId = this.mergedUserMap.get(`${oldId}`);
406
- if (newId) {
407
- needsUpdate = true;
408
- numUpdates++;
409
- console.log(`Updating old ID ${oldId} to new ID ${newId} in collection ${collection.name}`);
410
- // Update context to use new user ID
411
- item.finalData[fieldToSetKey] = newId;
412
- item.context[fieldToSetKey] = newId;
413
- }
414
- else {
415
- console.log(`No new ID found for old ID ${oldId} in mergedUserMap.`);
416
- }
417
- });
418
- }
419
- }
420
- });
421
- });
422
- if (needsUpdate) {
423
- console.log(`Updated ${numUpdates} references for collection ${collection.name}`);
424
- this.importMap.set(this.getCollectionKey(collection.name), collectionData);
425
- }
426
- });
427
360
  }
428
361
  updateOldReferencesForNew() {
429
362
  if (!this.config.collections) {
@@ -491,7 +424,12 @@ export class DataLoader {
491
424
  else {
492
425
  // Merge arrays if new data is non-empty array and filter for uniqueness
493
426
  collectionData.data[i].finalData[fieldToSetKey] = [
494
- ...new Set([...currentDataFiltered, ...newData].filter((value) => `${value}` !== `${valueToMatch}`)),
427
+ ...new Set([
428
+ ...(Array.isArray(currentDataFiltered)
429
+ ? currentDataFiltered
430
+ : [currentDataFiltered]),
431
+ ...newData,
432
+ ].filter((value) => `${value}` !== `${valueToMatch}`)),
495
433
  ];
496
434
  }
497
435
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "appwrite-utils-cli",
3
3
  "description": "Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.",
4
- "version": "0.0.51",
4
+ "version": "0.0.53",
5
5
  "main": "src/main.ts",
6
6
  "type": "module",
7
7
  "repository": {
@@ -413,7 +413,7 @@ export class DataLoader {
413
413
  }
414
414
  }
415
415
  console.log("Running update references");
416
- this.dealWithMergedUsers();
416
+ // this.dealWithMergedUsers();
417
417
  this.updateOldReferencesForNew();
418
418
  console.log("Done running update references");
419
419
  }
@@ -441,108 +441,6 @@ export class DataLoader {
441
441
 
442
442
  let needsUpdate = false;
443
443
  let numUpdates = 0;
444
-
445
- // Collect primary key fields from the users collection definitions
446
- this.config.collections.forEach((collection) => {
447
- if (this.getCollectionKey(collection.name) === usersCollectionKey) {
448
- const collectionImportDefs = collection.importDefs;
449
- if (!collectionImportDefs || !collectionImportDefs.length) {
450
- return;
451
- }
452
- collectionImportDefs.forEach((importDef) => {
453
- if (importDef.primaryKeyField) {
454
- usersCollectionPrimaryKeyFields.add(importDef.primaryKeyField);
455
- }
456
- });
457
- }
458
- });
459
-
460
- console.log(
461
- `Primary key fields collected for users collection: ${[
462
- ...usersCollectionPrimaryKeyFields,
463
- ]}`
464
- );
465
-
466
- // Iterate over all collections to update references based on merged users
467
- this.config.collections.forEach((collection) => {
468
- const collectionData = this.importMap.get(
469
- this.getCollectionKey(collection.name)
470
- );
471
-
472
- if (!collectionData || !collectionData.data) {
473
- console.log(`No data found for collection ${collection.name}`);
474
- return;
475
- }
476
-
477
- const collectionImportDefs = collection.importDefs;
478
- if (!collectionImportDefs || !collectionImportDefs.length) {
479
- console.log(
480
- `No import definitions found for collection ${collection.name}`
481
- );
482
- return;
483
- }
484
-
485
- collectionImportDefs.forEach((importDef) => {
486
- importDef.idMappings?.forEach((idMapping) => {
487
- if (
488
- this.getCollectionKey(idMapping.targetCollection) ===
489
- usersCollectionKey
490
- ) {
491
- const fieldToSetKey = idMapping.fieldToSet || idMapping.sourceField;
492
- const targetFieldKey =
493
- idMapping.targetFieldToMatch || idMapping.targetField;
494
-
495
- if (usersCollectionPrimaryKeyFields.has(targetFieldKey)) {
496
- console.log(
497
- `Processing collection ${collection.name} with target field ${targetFieldKey}`
498
- );
499
-
500
- // Process each item in the collection
501
- collectionData.data.forEach((item) => {
502
- const oldId =
503
- item.finalData[idMapping.sourceField] ||
504
- item.context[idMapping.sourceField];
505
-
506
- if (oldId === undefined || oldId === null) {
507
- console.log(
508
- `Skipping item with undefined or null oldId in collection ${collection.name}`
509
- );
510
- return;
511
- }
512
-
513
- const newId = this.mergedUserMap.get(`${oldId}`);
514
-
515
- if (newId) {
516
- needsUpdate = true;
517
- numUpdates++;
518
- console.log(
519
- `Updating old ID ${oldId} to new ID ${newId} in collection ${collection.name}`
520
- );
521
-
522
- // Update context to use new user ID
523
- item.finalData[fieldToSetKey] = newId;
524
- item.context[fieldToSetKey] = newId;
525
- } else {
526
- console.log(
527
- `No new ID found for old ID ${oldId} in mergedUserMap.`
528
- );
529
- }
530
- });
531
- }
532
- }
533
- });
534
- });
535
-
536
- if (needsUpdate) {
537
- console.log(
538
- `Updated ${numUpdates} references for collection ${collection.name}`
539
- );
540
- this.importMap.set(
541
- this.getCollectionKey(collection.name),
542
- collectionData
543
- );
544
- }
545
- });
546
444
  }
547
445
 
548
446
  updateOldReferencesForNew() {
@@ -655,7 +553,12 @@ export class DataLoader {
655
553
  // Merge arrays if new data is non-empty array and filter for uniqueness
656
554
  collectionData.data[i].finalData[fieldToSetKey] = [
657
555
  ...new Set(
658
- [...currentDataFiltered, ...newData].filter(
556
+ [
557
+ ...(Array.isArray(currentDataFiltered)
558
+ ? currentDataFiltered
559
+ : [currentDataFiltered]),
560
+ ...newData,
561
+ ].filter(
659
562
  (value: any) => `${value}` !== `${valueToMatch}`
660
563
  )
661
564
  ),