'use strict'; const BbPromise = require('bluebird'); const userStats = require('../../../utils/userStats'); const pluginUtils = require('../lib/utils'); class PluginList { constructor(serverless, options) { this.serverless = serverless; this.options = options; Object.assign(this, pluginUtils); this.commands = { plugin: { commands: { list: { usage: 'Lists all available plugins', lifecycleEvents: ['list'], }, }, }, }; this.hooks = { 'plugin:list:list': () => BbPromise.bind(this) .then(this.list) .then(this.trackPluginList), }; } list() { return BbPromise.bind(this) .then(this.getPlugins) .then(plugins => this.display(plugins)); } trackPluginList() { userStats.track('service_pluginListed'); return BbPromise.resolve(); } } module.exports = PluginList;