mirror of
https://github.com/sern-handler/cli
synced 2026-06-26 09:42:22 +00:00
61 lines
2.2 KiB
TypeScript
61 lines
2.2 KiB
TypeScript
import * as Rest from '../rest.js'
|
|
import assert from 'node:assert'
|
|
import dotenv from 'dotenv'
|
|
import ora from 'ora';
|
|
import type { CommandData, GuildId } from '../utilities/types.js';
|
|
import { readFileSync, writeFile } from 'node:fs'
|
|
import { resolve } from 'node:path'
|
|
import prompts from 'prompts';
|
|
|
|
const getConfirmation = (args: Record<string,any> ) => {
|
|
if(args.yes) {
|
|
return args.yes
|
|
} else {
|
|
return prompts({
|
|
type: 'confirm',
|
|
name: 'confirmation',
|
|
message: 'Are you sure you want to delete ALL your application commands?',
|
|
initial: true
|
|
}, { onCancel: () => (console.log("Cancelled operation ( ̄┰ ̄*)"), process.exit(1)) })
|
|
.then(response => response.confirmation);
|
|
}
|
|
}
|
|
export async function commandClear(args: Record<string,any>) {
|
|
dotenv.configDotenv({ path: args.env || resolve('.env') })
|
|
const token = process.env.token || process.env.DISCORD_TOKEN;
|
|
assert(token, 'Could not find a token for this bot in .env or commandline. Do you have DISCORD_TOKEN in env?');
|
|
|
|
const confirmation = await getConfirmation(args);
|
|
|
|
if (confirmation) {
|
|
const spin = ora({
|
|
text: `Deleting ALL application commands...`,
|
|
spinner: 'aesthetic',
|
|
}).start();
|
|
const rest = await Rest.create(token);
|
|
let guildCommands: Record<GuildId, CommandData[]>
|
|
try {
|
|
guildCommands = JSON.parse(readFileSync('.sern/command-data-remote.json', 'utf-8'))
|
|
await rest.updateGlobal([]);
|
|
delete guildCommands.global
|
|
for (const guildId in guildCommands) {
|
|
await rest.putGuildCommands(guildId, []);
|
|
}
|
|
writeFile('.sern/command-data-remote.json', "{}", (err) => {
|
|
if(err) {
|
|
spin.fail("Error happened while writing to json:");
|
|
console.error(err)
|
|
process.exit(1)
|
|
}
|
|
})
|
|
spin.succeed();
|
|
} catch(e) {
|
|
spin.fail("Something went wrong. ");
|
|
throw e;
|
|
}
|
|
} else {
|
|
console.log('Operation canceled. ( ̄┰ ̄*)');
|
|
}
|
|
|
|
}
|