'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;