appwrite-utils-cli 0.9.80 → 0.9.82

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/dist/main.js CHANGED
@@ -122,12 +122,12 @@ const argv = yargs(hideBin(process.argv))
122
122
  })
123
123
  .parse();
124
124
  async function main() {
125
- const controller = new UtilsController(process.cwd());
126
125
  if (argv.it) {
127
126
  const cli = new InteractiveCLI(process.cwd());
128
127
  await cli.run();
129
128
  }
130
129
  else {
130
+ const controller = new UtilsController(process.cwd());
131
131
  await controller.init();
132
132
  if (argv.setup) {
133
133
  await setupDirsFiles(false, process.cwd());
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.82",
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
  },
package/src/main.ts CHANGED
@@ -159,12 +159,12 @@ const argv = yargs(hideBin(process.argv))
159
159
  .parse() as ParsedArgv;
160
160
 
161
161
  async function main() {
162
- const controller = new UtilsController(process.cwd());
163
-
162
+
164
163
  if (argv.it) {
165
164
  const cli = new InteractiveCLI(process.cwd());
166
165
  await cli.run();
167
166
  } else {
167
+ const controller = new UtilsController(process.cwd());
168
168
  await controller.init();
169
169
 
170
170
  if (argv.setup) {