'use strict'; const BbPromise = require('bluebird'); const validate = require('../lib/validate'); const monitorStack = require('../lib/monitorStack'); const emptyS3Bucket = require('./lib/bucket'); const removeStack = require('./lib/stack'); class AwsRemove { constructor(serverless, options) { this.serverless = serverless; this.options = options || {}; this.provider = this.serverless.getProvider('aws'); Object.assign(this, validate, emptyS3Bucket, removeStack, monitorStack); this.hooks = { 'remove:remove': () => BbPromise.bind(this) .then(this.validate) .then(this.emptyS3Bucket) .then(this.removeStack) .then(cfData => this.monitorStack('removal', cfData)), }; } } module.exports = AwsRemove;