@trackcity/plugins
Version:
Trackcity Plugin base
57 lines (44 loc) • 1.18 kB
JavaScript
const { FlapsLogger, createLogger } = require("flaps-logger");
const Colors = require("cli-color");
const { WorkspaceManager } = require("@trackcity/managers");
/**
* @abstract
*/
class TrackcityPlugin {
constructor() {
this.workspaceInit = new WorkspaceManager();
}
getWorkspaceManager() {
return this.workspaceInit;
}
/**
* @abstract
* @param {string[]} argv
*/
onStart(argv) {}
getPluginData() {
return this.pluginData;
}
getWorkspace() {
return this.workspace;
}
onInit() {}
createLogger(name) {
return new createLogger({
format: (t, m, date) => {
if (name) {
return `${Colors.blackBright(`[${date.toUTCString()}]`)} / [${t}] (${name}): ${m}`;
}
return `${Colors.blackBright(`[${date.toUTCString()}]`)} / [${t}]: ${m}`;
}
});
}
init(data, workspace) {
this.pluginData = data;
this.workspace = workspace;
this.onInit();
}
}
module.exports = {
TrackcityPlugin
}