diff --git a/src/AxonClient.js b/src/AxonClient.js index 6bf85cac..42fdca77 100755 --- a/src/AxonClient.js +++ b/src/AxonClient.js @@ -170,7 +170,7 @@ class AxonClient extends EventEmitter { /* ADBProvider */ this.DBProvider = new this.extensions.DBProvider(this); this.DBProvider.init(); - this.log('NOTICE', 'DB ready.'); + this.log('NOTICE', `DB ready. [TYPE: ${this.DBProvider.type}]`); if (this.settings.debugMode) { this.on('debug', this.onDebug); diff --git a/src/Database/ADBProvider.js b/src/Database/ADBProvider.js index c17dc8b6..17ed9316 100644 --- a/src/Database/ADBProvider.js +++ b/src/Database/ADBProvider.js @@ -17,6 +17,7 @@ import NotImplementedException from '../Errors/NotImplementedException'; * guildID: string, prefixes: Array, createdAt: Date, updatedAt: Date, modules: Array, commands: Array, listeners: Array, * ignoredUsers: Array, ignoredRoles: Array, ignoredChannels: Array, modOnly: Boolean, modRoles: Array, modUsers: Array * }} GuildConfigRaw + * @typedef {import('../Utility/Constants/AxonEnums').DB_TYPES} DB_TYPES */ /** @@ -32,16 +33,17 @@ import NotImplementedException from '../Errors/NotImplementedException'; * @class ADBProvider * * @prop {AxonClient} axon - The AxonClient + * @prop {DB_TYPES} type - The Database type */ class ADBProvider { /** * Creates an instance of ADBProvider. * * @param {AxonClient} axonClient - * + * @param {DB_TYPES} [type=0] * @memberof ADBProvider */ - constructor(axonClient) { + constructor(axonClient, type = 0) { if (this.constructor === 'ADBProvider') { throw new NoAbstractInstanceException(); } @@ -51,6 +53,7 @@ class ADBProvider { } this.axon = axonClient; + this.type = type; } /** diff --git a/src/Database/InMemoryProvider.js b/src/Database/InMemoryProvider.js index 529dcbdc..8251a2b9 100644 --- a/src/Database/InMemoryProvider.js +++ b/src/Database/InMemoryProvider.js @@ -21,6 +21,10 @@ import ADBProvider from './ADBProvider'; * @extends ADBProvider */ class InMemoryProvider extends ADBProvider { + constructor(axon) { + super(axon, 0); + } + init() { return; } diff --git a/src/Database/JsonProvider.js b/src/Database/JsonProvider.js index 036649b0..c8040a38 100644 --- a/src/Database/JsonProvider.js +++ b/src/Database/JsonProvider.js @@ -26,6 +26,10 @@ import JsonManager from './JSON/JsonManager'; * @prop {JsonManager} manager - Class responsible to read / write data to the DB as json. */ class JsonProvider extends ADBProvider { + constructor(axon) { + super(axon, 1); + } + /** * Override init method. * diff --git a/src/Database/MongoProvider.js b/src/Database/MongoProvider.js index 6d7f2b08..bcc8a8c9 100644 --- a/src/Database/MongoProvider.js +++ b/src/Database/MongoProvider.js @@ -28,6 +28,10 @@ import ADBProvider from './ADBProvider'; * @prop {GuildSchema} GuildSchema */ class MongoProvider extends ADBProvider { + constructor(axon) { + super(axon, 2); + } + /** * Override init method. * diff --git a/src/Loggers/ALogger.js b/src/Loggers/ALogger.js index 8a7ee850..d2de5b25 100644 --- a/src/Loggers/ALogger.js +++ b/src/Loggers/ALogger.js @@ -22,7 +22,7 @@ class ALogger { /** * Creates an instance of ALogger * @param out Can be Console, Winston or Signale. Chalk will go as Console - * @param {LOGGER_TYPES} type - The logger type + * @param {LOGGER_TYPES} [type=0] - The logger type * @memberof ALogger */ constructor(out, type = 0) { diff --git a/types/Database/ADBProvider.ts b/types/Database/ADBProvider.ts index f60f2348..5783865c 100644 --- a/types/Database/ADBProvider.ts +++ b/types/Database/ADBProvider.ts @@ -1,5 +1,5 @@ import { - AxonClient, AxonConfig, GuildConfig, updateDBVal, + AxonClient, AxonConfig, GuildConfig, updateDBVal, DB_TYPES, } from '..'; /** @@ -19,12 +19,16 @@ export declare abstract class ADBProvider { * The AxonClient */ public axon: AxonClient; + /** + * The Database type + */ + public type: DB_TYPES /** * Creates an instance of ADBProvider. * * @memberof ADBProvider */ - constructor(axonClient: AxonClient); + constructor(axonClient: AxonClient, type: DB_TYPES); /** * Init the ADBProvider. * Method called just after instantiation. Can be overridden with anything that will be used by the provider. diff --git a/types/Database/InMemoryProvider.ts b/types/Database/InMemoryProvider.ts index f531d040..e480cff5 100644 --- a/types/Database/InMemoryProvider.ts +++ b/types/Database/InMemoryProvider.ts @@ -11,6 +11,8 @@ import { * @extends ADBProvider */ export declare class InMemoryProvider extends ADBProvider { + public type: 0; + public init(): void; public fetchAxon(): Promise; /** diff --git a/types/Database/JsonProvider.ts b/types/Database/JsonProvider.ts index 89583b63..f20828ed 100644 --- a/types/Database/JsonProvider.ts +++ b/types/Database/JsonProvider.ts @@ -11,6 +11,8 @@ import { * @extends ADBProvider */ export declare class JsonProvider extends ADBProvider { + public type: 1; + /** * Class responsible to read / write data to the DB as json. */ diff --git a/types/Database/MongoProvider.ts b/types/Database/MongoProvider.ts index 553fbddf..aa61d91c 100644 --- a/types/Database/MongoProvider.ts +++ b/types/Database/MongoProvider.ts @@ -11,6 +11,8 @@ import { * @extends ADBProvider */ export declare class MongoProvider extends ADBProvider { + public type: 1; + public AxonSchema?: AxonSchema; public GuildSchema?: GuildSchema;