🚸 Improve CLI output messages (#438)

This commit is contained in:
Eric Doughty-Papassideris
2024-03-26 12:06:22 +01:00
committed by ericlinagora
parent 38c320e965
commit 7c31550339
@@ -12,6 +12,7 @@ import CompanyUser, { TYPE as CompanyUserTYPE } from "../../../services/user/ent
import gr from "../../../services/global-resolver"; import gr from "../../../services/global-resolver";
type Options = { type Options = {
spinner: ora.Ora;
repository?: string; repository?: string;
repairEntities?: boolean; repairEntities?: boolean;
}; };
@@ -25,7 +26,7 @@ class SearchIndexAll {
this.search = this.platform.getProvider<SearchServiceAPI>("search"); this.search = this.platform.getProvider<SearchServiceAPI>("search");
} }
public async run(options: Options = {}): Promise<void> { public async run(options: Options): Promise<void> {
const repositories: Map<string, Repository<any>> = new Map(); const repositories: Map<string, Repository<any>> = new Map();
repositories.set("users", await this.database.getRepository(UserTYPE, User)); repositories.set("users", await this.database.getRepository(UserTYPE, User));
@@ -39,7 +40,7 @@ class SearchIndexAll {
// Complete user with companies in cache // Complete user with companies in cache
if (options.repository === "users" && options.repairEntities) { if (options.repository === "users" && options.repairEntities) {
console.log("Complete user with companies in cache"); options.spinner.info("Complete user with companies in cache");
const companiesUsersRepository = await this.database.getRepository( const companiesUsersRepository = await this.database.getRepository(
CompanyUserTYPE, CompanyUserTYPE,
CompanyUser, CompanyUser,
@@ -67,23 +68,23 @@ class SearchIndexAll {
} while (page.page_token); } while (page.page_token);
} }
console.log("Start indexing..."); options.spinner.start("Start indexing...");
let count = 0; let count = 0;
// Get all items // Get all items
let page: Pagination = { limitStr: "100" }; let page: Pagination = { limitStr: "100" };
do { do {
console.log("Indexed " + count + " items...");
const list = await repository.find({}, { pagination: page }, undefined); const list = await repository.find({}, { pagination: page }, undefined);
page = list.nextPage as Pagination; page = list.nextPage as Pagination;
await this.search.upsert(list.getEntities()); await this.search.upsert(list.getEntities());
count += list.getEntities().length; count += list.getEntities().length;
options.spinner.start("Indexed " + count + " items...");
await new Promise(r => setTimeout(r, 200)); await new Promise(r => setTimeout(r, 200));
} while (page.page_token); } while (page.page_token);
console.log("Emptying flush (10s)..."); options.spinner.succeed(`${count} items indexed`);
options.spinner.start("Emptying flush (10s)...");
await new Promise(r => setTimeout(r, 10000)); await new Promise(r => setTimeout(r, 10000));
options.spinner.succeed("Done!");
console.log("Done!");
} }
} }
@@ -128,6 +129,7 @@ const command: yargs.CommandModule<unknown, unknown> = {
// Let this run even without a repository as its error message includes valid repository names // Let this run even without a repository as its error message includes valid repository names
await migrator.run({ await migrator.run({
repository, repository,
spinner,
}); });
spinner.stop(); spinner.stop();