UNPKG

985 BJavaScriptView Raw
1class RandomGatewayDeploymentIdPlugin {
2 constructor(serverless, options) {
3 this.serverless = serverless;
4
5 this.hooks = {
6 'before:aws:package:finalize:mergeCustomProviderResources': this.randomizeDeploymentId.bind(this)
7 };
8 }
9
10 randomizeDeploymentId() {
11 let resources = this.serverless.service.resources.Resources;
12 Object.entries(resources).forEach(([resourceName, resource]) => {
13 if (resource.Type === 'AWS::ApiGateway::Deployment') {
14 const randomizedName = this.randomize(resourceName)
15 const variableRegex = new RegExp(resourceName, 'g')
16 resources = JSON.parse(JSON.stringify(resources).replace(variableRegex, randomizedName));
17 }
18
19 this.serverless.service.resources.Resources = resources;
20 });
21 }
22
23 randomize(resourceName) {
24 return resourceName + Date.now();
25 }
26}
27
28module.exports = RandomGatewayDeploymentIdPlugin;