UNPKG

@trackcity/plugins

Version:

Trackcity Plugin base

57 lines (44 loc) 1.18 kB
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 }