galactic-bot/@types/Storage.d.ts

72 lines
1.7 KiB
TypeScript

// Galactic - Discord moderation bot
// Copyright (C) 2024 Navy.gif
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import { MongoClientOptions } from 'mongodb';
import { PoolClusterConfig, PoolConfig } from 'mysql';
export type MariaError = {
code: string,
errno: number,
fatal: boolean,
sql: string,
sqlState: string,
sqlMessage:string
} & Error
export type Credentials = {
user: string,
password: string,
host: string,
port: number,
database: string
}
type DBOptions = {
load?: boolean,
tables: string[]
}
export type MongoDBOptions = {
client?: MongoClientOptions,
} & DBOptions
export type MariaDBOptions = {
cluster?: PoolClusterConfig,
client?: PoolConfig,
} & DBOptions
export type StorageManagerOptions = {
[key: string]: MariaDBOptions | MongoDBOptions
mongodb: MongoDBOptions,
mariadb: MariaDBOptions
}
export type ProviderOptions = {
name?: string,
tables: string[],
}
export type TableOptions = {
name: string
}
export type MongoDBTableOptions = {
//
} & TableOptions
export type MariaDBTableOptions = {
//
} & TableOptions