appwrite-utils-cli 0.9.80 → 0.9.81

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.
@@ -44,9 +44,9 @@ export class InteractiveCLI {
44
44
  choices: Object.values(CHOICES),
45
45
  },
46
46
  ]);
47
- await this.initControllerIfNeeded();
48
47
  switch (action) {
49
48
  case CHOICES.CREATE_COLLECTION_CONFIG:
49
+ await this.initControllerIfNeeded();
50
50
  await this.createCollectionConfig();
51
51
  break;
52
52
  case CHOICES.SETUP_DIRS_FILES:
@@ -106,13 +106,15 @@ export class InteractiveCLI {
106
106
  async selectDatabases(databases, message, multiSelect = true) {
107
107
  const choices = databases.map((db) => ({ name: db.name, value: db })).filter((db) => db.name.toLowerCase() !== "migrations");
108
108
  const configDatabases = this.getLocalDatabases();
109
- const allDatabases = Array.from(new Set([...databases, ...configDatabases]));
109
+ const dbNames = databases.map((db) => db.name).concat(configDatabases.map((db) => db.name));
110
+ const allDbNamesUnique = Array.from(new Set(dbNames));
111
+ const allDatabases = allDbNamesUnique.map((name) => configDatabases.find((db) => db.name === name) ?? databases.find((db) => db.name === name)).filter((v) => v !== undefined).sort((a, b) => a.name.localeCompare(b.name));
110
112
  const { selectedDatabases } = await inquirer.prompt([
111
113
  {
112
114
  type: multiSelect ? "checkbox" : "list",
113
115
  name: "selectedDatabases",
114
116
  message: chalk.blue(message),
115
- choices,
117
+ choices: allDatabases,
116
118
  loop: false,
117
119
  pageSize: 10,
118
120
  },
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.9.80",
4
+ "version": "0.9.81",
5
5
  "main": "src/main.ts",
6
6
  "type": "module",
7
7
  "repository": {
@@ -55,10 +55,9 @@ export class InteractiveCLI {
55
55
  },
56
56
  ]);
57
57
 
58
- await this.initControllerIfNeeded();
59
-
60
58
  switch (action) {
61
59
  case CHOICES.CREATE_COLLECTION_CONFIG:
60
+ await this.initControllerIfNeeded();
62
61
  await this.createCollectionConfig();
63
62
  break;
64
63
  case CHOICES.SETUP_DIRS_FILES:
@@ -124,7 +123,9 @@ export class InteractiveCLI {
124
123
  ): Promise<Models.Database[]> {
125
124
  const choices = databases.map((db) => ({ name: db.name, value: db })).filter((db) => db.name.toLowerCase() !== "migrations");
126
125
  const configDatabases = this.getLocalDatabases();
127
- const allDatabases = Array.from(new Set([...databases, ...configDatabases]));
126
+ const dbNames = databases.map((db) => db.name).concat(configDatabases.map((db) => db.name));
127
+ const allDbNamesUnique = Array.from(new Set(dbNames));
128
+ const allDatabases = allDbNamesUnique.map((name) => configDatabases.find((db) => db.name === name) ?? databases.find((db) => db.name === name)).filter((v) => v !== undefined).sort((a, b) => a.name.localeCompare(b.name));
128
129
 
129
130
 
130
131
  const { selectedDatabases } = await inquirer.prompt([
@@ -132,7 +133,7 @@ export class InteractiveCLI {
132
133
  type: multiSelect ? "checkbox" : "list",
133
134
  name: "selectedDatabases",
134
135
  message: chalk.blue(message),
135
- choices,
136
+ choices: allDatabases,
136
137
  loop: false,
137
138
  pageSize: 10,
138
139
  },