mirror of
https://github.com/versia-pub/server.git
synced 2026-03-13 05:49:16 +01:00
refactor(cli): ♻️ Rewrite CLI with Clerk. Removes a bunch of commands now covered by API.
This commit is contained in:
parent
28577d017a
commit
5b756ea2dd
32 changed files with 536 additions and 2721 deletions
65
cli/index/rebuild.ts
Normal file
65
cli/index/rebuild.ts
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
// @ts-expect-error - Root import is required or the Clec type definitions won't work
|
||||
// biome-ignore lint/correctness/noUnusedImports: Root import is required or the Clec type definitions won't work
|
||||
import { type Root, defineCommand } from "clerc";
|
||||
import ora from "ora";
|
||||
import {
|
||||
SonicIndexType,
|
||||
searchManager,
|
||||
} from "~/classes/search/search-manager.ts";
|
||||
import { config } from "~/config.ts";
|
||||
|
||||
export const rebuildIndexCommand = defineCommand(
|
||||
{
|
||||
name: "index rebuild",
|
||||
description: "Rebuild the search index.",
|
||||
parameters: ["<type>"],
|
||||
flags: {
|
||||
"batch-size": {
|
||||
description: "Number of records to process at once",
|
||||
type: Number,
|
||||
alias: "b",
|
||||
default: 100,
|
||||
},
|
||||
},
|
||||
},
|
||||
async (context) => {
|
||||
const { "batch-size": batchSize } = context.flags;
|
||||
const { type } = context.parameters;
|
||||
|
||||
if (!config.search.enabled) {
|
||||
throw new Error(
|
||||
"Search is not enabled in the instance configuration.",
|
||||
);
|
||||
}
|
||||
|
||||
const spinner = ora("Rebuilding search indexes").start();
|
||||
|
||||
switch (type) {
|
||||
case "accounts":
|
||||
await searchManager.rebuildSearchIndexes(
|
||||
[SonicIndexType.Accounts],
|
||||
batchSize,
|
||||
(progress) => {
|
||||
spinner.text = `Rebuilding search indexes (${(progress * 100).toFixed(2)}%)`;
|
||||
},
|
||||
);
|
||||
break;
|
||||
case "statuses":
|
||||
await searchManager.rebuildSearchIndexes(
|
||||
[SonicIndexType.Statuses],
|
||||
batchSize,
|
||||
(progress) => {
|
||||
spinner.text = `Rebuilding search indexes (${(progress * 100).toFixed(2)}%)`;
|
||||
},
|
||||
);
|
||||
break;
|
||||
default: {
|
||||
throw new Error(
|
||||
"Invalid index type. Can be 'accounts' or 'statuses'.",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
spinner.succeed("Search indexes rebuilt");
|
||||
},
|
||||
);
|
||||
Loading…
Add table
Add a link
Reference in a new issue