thaldrin/src/utils/types.ts

146 lines
2.6 KiB
TypeScript
Raw Normal View History

2021-04-08 22:42:39 +00:00
import { SupabaseClient } from "@supabase/supabase-js";
import { Client, Guild, GuildMember, Message, NewsChannel, TextChannel, User } from "discord.js";
2021-04-04 15:17:46 +00:00
export type Server = {
readonly id: string
2021-04-04 15:17:46 +00:00
server_id: string
locale: string
2021-04-07 11:18:36 +00:00
prefix: string[]
2021-04-04 15:17:46 +00:00
shortlinks: boolean
2021-04-07 11:18:36 +00:00
sourcefinder: boolean
2021-04-04 15:17:46 +00:00
embeds: boolean
interactiontext: boolean
}
export type Usage = {
readonly id: string
name: string,
type: string
amount: number
2021-04-08 22:42:39 +00:00
}
export type Command = {
name: string;
description: string;
2021-04-09 13:18:03 +00:00
aliases?: string[];
module?: string;
cooldown?: number;
guild?: boolean;
dev?: boolean;
nsfw?: boolean;
AuthorPermissions?: string | string[];
hidden?: boolean;
2021-04-08 22:42:39 +00:00
}
export type Context = {
client: Client;
2021-04-09 18:43:45 +00:00
args: string[]
2021-04-08 22:42:39 +00:00
guild: Guild | null;
message: Message;
channel: TextChannel | NewsChannel;
author: User;
member: GuildMember | null;
supabase: SupabaseClient;
guildSettings: Server;
config: Config;
isDeveloper: string[]
}
// ! Config Typings
2021-04-09 18:43:45 +00:00
export interface Config {
/**
* package.json import to autocompltete it's vars
*/
2021-04-08 22:42:39 +00:00
pkg: Pkg;
2021-04-09 18:43:45 +00:00
/**
* variables.ts import
* Public Variables are defined in here.
*/
2021-04-08 22:42:39 +00:00
variables: Variables;
2021-04-09 18:43:45 +00:00
/**
* API Keys for various APIs
*/
2021-04-08 22:42:39 +00:00
apis: Apis;
2021-04-09 18:43:45 +00:00
/**
* Discord API Token
*/
2021-04-08 22:42:39 +00:00
token: string;
2021-04-09 18:43:45 +00:00
/**
* Config Strings for Supabase
* Thaldrin's Database
*/
2021-04-08 22:42:39 +00:00
supabase: Supabase;
}
interface Developer {
id: string;
}
interface Supabase {
url: string;
key: string;
}
interface Apis {
sheri: string;
yiffrest: string;
}
interface Variables {
name: string;
prefix: string[];
2021-04-09 18:43:45 +00:00
/**
* Developers of this Bot
*/
developers: Developer[];
2021-04-08 22:42:39 +00:00
}
interface Pkg {
name: string;
version: string;
description: string;
main: string;
scripts: Scripts;
repository: Repository;
keywords: any[];
author: string;
license: string;
bugs: Bugs;
homepage: string;
dependencies: Dependencies;
devDependencies: DevDependencies;
}
interface DevDependencies {
'@types/node': string;
'@types/ws': string;
}
interface Dependencies {
'@supabase/supabase-js': string;
'@thaldrin/sourcefinder': string;
chalk: string;
'discord.js': string;
winston: string;
'winston-daily-rotate-file': string;
yiff: string;
}
interface Bugs {
url: string;
}
interface Repository {
type: string;
url: string;
}
interface Scripts {
build: string;
start: string;
dev: string;
'update:subs': string;
2021-04-04 15:17:46 +00:00
}