mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const validate = require('../lib/validate');
|
|
const monitorStack = require('../lib/monitorStack');
|
|
const emptyS3Bucket = require('./lib/bucket');
|
|
const removeStack = require('./lib/stack');
|
|
const removeEcrRepository = require('./lib/ecr');
|
|
const checkIfEcrRepositoryExists = require('../lib/checkIfEcrRepositoryExists');
|
|
|
|
class AwsRemove {
|
|
constructor(serverless, options) {
|
|
this.serverless = serverless;
|
|
this.options = options || {};
|
|
this.provider = this.serverless.getProvider('aws');
|
|
|
|
Object.assign(
|
|
this,
|
|
validate,
|
|
emptyS3Bucket,
|
|
removeStack,
|
|
monitorStack,
|
|
removeEcrRepository,
|
|
checkIfEcrRepositoryExists
|
|
);
|
|
|
|
this.hooks = {
|
|
'remove:remove': async () => {
|
|
const doesEcrRepositoryExistPromise = this.checkIfEcrRepositoryExists();
|
|
await this.validate();
|
|
await this.emptyS3Bucket();
|
|
const cfData = await this.removeStack();
|
|
await this.monitorStack('delete', cfData);
|
|
if (await doesEcrRepositoryExistPromise) {
|
|
await this.removeEcrRepository();
|
|
}
|
|
},
|
|
};
|
|
}
|
|
}
|
|
|
|
module.exports = AwsRemove;
|