Compare commits

...

5 Commits

  1. 19
      bot.js
  2. 27
      src/db/connect.js
  3. 33
      src/util/log/log.js
  4. 18
      src/util/log/ora.js
  5. 20
      src/util/log/types.js
  6. 7
      src/util/misc/wait.js

@ -1,14 +1,5 @@
const logger = require('./src/util/log/log');
const client = {test: 'e', config: {logLevel: 1}};
const log = logger(client);
log();
log("Hello World!")
log("Hello in blue", {color: 'blue'});
log('A strange warning appears!', {color: 'yellowBright', source: 'warn', sourceColor: 'yellow'});
log('Extra line spacing before', {}, false, true);
log('regular line');
log('extra line spacing after', {}, true);
log('regular line');
log('both line spaces', {}, true, true);
log('regular line');
log('a custom fancy pink color', {color: '#ff00ff', sourceColor: '#660066'});
const dbConnect = require('./src/db/connect');
const r = async () => {
await dbConnect({auth: require('./src/json/auth.json'), config: {logLevel: 1}});
};
r();

@ -1,10 +1,23 @@
const chalk = require('chalk');
const mongoose = require('mongoose');
const log = require('../util/log/log');
const ora = require('../util/log/ora');
module.exports = async client => {
const config = client.config;
try {
await mongoose.connect(`mongodb+srv://${config.database.user}:${config.database.password}@${config.database.cluster}.3jpp4.mongodb.net/test`, {
useFindAndModify: false, useNewUrlParser: true, dbName: 'Natsuki-Main', useUnifiedTopology: true, useCreateIndex: true
}).catch(() => {});
} catch (e) {
const auth = client.auth;
const t = Date.now();
client.misc = {};
client.misc.dbconnected = false;
await ora(chalk.blueBright.bold.underline("Connecting to MongoDB..."),
mongoose.connect(`mongodb+srv://${auth.database.user}:${auth.database.password}@${auth.database.cluster}.3jpp4.mongodb.net/test`, {
useFindAndModify: false, useNewUrlParser: true, dbName: auth.database.name, useUnifiedTopology: true, useCreateIndex: true
})
).catch((e) => log(client).error("Failed to connect to mongoose!! Error below.", 0, true, true, e))
.then(() => {client.misc.dbconnected = true;});
if (!client.misc.dbconnected) {
log(client).warn("Database not connected, considering runtime to be unusable and exiting.", 0, true, true);
throw new Error();
}
return log(client).success(`Connected to Mongo Database in ${chalk.white(`${Date.now() - t}ms`)}.`);
};

@ -1,6 +1,7 @@
const chalk = require('chalk');
const getLevel = require('./getlevel');
const types = require('./types');
const config = require('../../json/config.json');
@ -12,19 +13,25 @@ let defaultOptions = {
suffix: " >> "
};
const tlog = (client) => (message = "Test Log", options = {}, prenl = false, postnl = false, ...multcons) => {
let opt = {};
if (typeof options !== 'object') {options = {};}
opt.color = options.color || defaultOptions.color;
opt.level = ['string', 'number'].includes(typeof options.level) ? options.level : defaultOptions.level;
opt.suffix = typeof options.suffix === 'string' ? options.suffix : defaultOptions.suffix;
opt.source = options.source || defaultOptions.source;
opt.sourceColor = options.sourceColor || defaultOptions.sourceColor;
try {if (client.config.logLevel < opt.level) {return;}}
catch {
client.config.logLevel = getLevel(client.config.logLevel);
if (client.config.logLevel < opt.level) {return;}
}
console.log(`${prenl ? '\n' : ''}${(opt.sourceColor.startsWith('#') ? chalk.hex(opt.sourceColor) : chalk[opt.sourceColor])(`[${opt.source.toUpperCase()}]`)}${opt.suffix}${options.nc || options.noColor ? message : (opt.color.startsWith('#') ? chalk.hex(opt.color) : chalk[opt.color])(message)}${postnl ? '\n' : ''}`, ...multcons);
};
module.exports = (client) => {
return (message = "Test Log", options = {}, newLine = false, spacer = false) => {
let opt = {};
opt.color = options.color || defaultOptions.color;
opt.level = ['string', 'number'].includes(typeof options.level) ? options.level : defaultOptions.level;
opt.suffix = typeof options.suffix === 'string' ? options.suffix : defaultOptions.suffix;
opt.source = options.source || defaultOptions.source;
opt.sourceColor = options.sourceColor || defaultOptions.sourceColor;
try {if (client.config.logLevel < opt.level) {return;}}
catch {
client.config.logLevel = getLevel(client.config.logLevel);
if (client.config.logLevel < opt.level) {return;}
}
console.log(`${spacer ? '\n' : ''}${(opt.sourceColor.startsWith('#') ? chalk.hex(opt.sourceColor) : chalk[opt.sourceColor])(`[${opt.source.toUpperCase()}]`)}${opt.suffix}${options.nc || options.noColor ? message : (opt.color.startsWith('#') ? chalk.hex(opt.color) : chalk[opt.color])(message)}${newLine ? '\n' : ''}`);
return {
log: tlog(client),
...types(tlog(client))
};
};

@ -0,0 +1,18 @@
const ora = require('ora');
module.exports = async (text, promise, callback) => {
return new Promise(async (resolve, reject) => {
let spin = ora(text).start();
return await promise
.catch(e => {
spin.stop();
spin.clear();
return reject(e)
})
.then((...args) => {
spin.stop();
spin.clear();
return callback ? resolve(callback(spin, args)) : resolve(true);
});
});
};

@ -0,0 +1,20 @@
module.exports = (log) => { return {
error: (message, options, prenl, postnl, ...multcons) => log(message, {
color: 'redBright',
source: 'err!',
sourceColor: 'red',
level: 0
}, prenl, postnl, ...multcons),
warn: (message, options, prenl, postnl, ...multcons) => log(message, {
color: 'yellowBright',
source: 'warn',
sourceColor: 'yellow',
level: 1
}, prenl, postnl, ...multcons),
success: (message, options, prenl, postnl, ...multcons) => log(message, {
color: 'greenBright',
source: 'proc' || options && options.source,
sourceColor: 'green',
level: options && typeof options.level !== 'undefined' ? options.level : 0
}, prenl, postnl, ...multcons)
}};

@ -0,0 +1,7 @@
module.exports = (time) => {
return new Promise(function (resolve) {
setTimeout(function () {
resolve(null);
}, time);
});
};
Loading…
Cancel
Save