Skip to content

Commit 7eaf631

Browse files
authored
Merge pull request nicka#13 from nicka/release/1.3.0
Release v1.3.0
2 parents 904ecaa + fa10bd0 commit 7eaf631

File tree

8 files changed

+3047
-220
lines changed

8 files changed

+3047
-220
lines changed

.npmignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ logs
1919
node_modules
2020
pids
2121
results
22+
yarn.lock

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog - serverless-plugin-diff
22

3+
<a name="1.3.0"></a>
4+
## 6 February 2017: v1.3.0
5+
6+
Remove Q package dependency and add support for upcoming `stackName` property -- [@nicka][@nicka]
7+
8+
---
9+
310
<a name="1.2.1"></a>
411
## 2 December 2016: v1.2.1
512

lib/index.js

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ const AWS = require('aws-sdk');
44
const diff = require('json-diff').diffString;
55
const exec = require('child-process-promise').exec;
66
const fs = require('fs-promise');
7-
const Q = require('q');
87

98
class ServerlessPlugin {
109
constructor(serverless, options) {
@@ -57,40 +56,44 @@ class ServerlessPlugin {
5756
}
5857

5958
downloadTemplate() {
60-
const deferred = Q.defer();
59+
let stackName;
60+
6161
const orgTemplate = this.options.orgTemplate;
62+
63+
if (this.serverless.service.provider
64+
&& typeof this.serverless.service.provider.stackName !== 'undefined'
65+
&& this.serverless.service.provider.stackName !== '') {
66+
stackName = this.serverless.service.provider.stackName;
67+
} else {
68+
stackName = `${this.serverless.service.service}-${this.options.stage}`;
69+
}
70+
6271
const params = {
63-
StackName: `${this.serverless.service.service}-${this.options.stage}`,
72+
StackName: stackName,
6473
TemplateStage: 'Processed',
6574
};
6675

6776
this.serverless.cli.log('Downloading currently deployed template');
6877

69-
this.cloudFormation.getTemplate(params, (err, data) => {
70-
if (err) {
71-
deferred.reject(err.message);
72-
} else {
78+
return this.cloudFormation.getTemplate(params).promise()
79+
.then((data) => {
7380
let templateBody = JSON.parse(data.TemplateBody);
7481
templateBody = JSON.stringify(templateBody, null, 2);
7582

76-
fs.writeFile(orgTemplate, templateBody)
77-
.then(() => deferred.resolve())
78-
.catch(fsErr => deferred.reject(fsErr.message));
79-
}
80-
});
81-
82-
return deferred.promise;
83+
return fs.writeFile(orgTemplate, templateBody)
84+
.then(() => Promise.resolve());
85+
})
86+
.catch(err => Promise.reject(err.message));
8387
}
8488

8589
diff() {
86-
const deferred = Q.defer();
8790
const diffTool = this.options.diffTool;
8891
const localTemplate = this.options.localTemplate;
8992
const orgTemplate = this.options.orgTemplate;
9093

9194
this.serverless.cli.log('Running diff against deployed template');
9295

93-
fs.stat(localTemplate)
96+
return fs.stat(localTemplate)
9497
.then(() => {
9598
if (typeof diffTool === 'undefined') {
9699
const orgTemplateJson = JSON.parse(fs.readFileSync(orgTemplate, 'utf8'));
@@ -103,25 +106,23 @@ class ServerlessPlugin {
103106
console.log(differences);
104107
}
105108

106-
deferred.resolve(differences);
107-
} else {
108-
exec(`${diffTool} ${orgTemplate} ${localTemplate} || true`)
109-
.then((result) => {
110-
const diffData = result.stdout;
111-
console.log(diffData);
112-
deferred.resolve(diffData);
113-
})
114-
.catch(execErr => deferred.reject(execErr.message));
109+
return Promise.resolve(differences);
115110
}
111+
112+
return exec(`${diffTool} ${orgTemplate} ${localTemplate} || true`)
113+
.then((result) => {
114+
const diffData = result.stdout;
115+
console.log(diffData);
116+
return Promise.resolve(diffData);
117+
});
116118
})
117119
.catch((err) => {
118120
if (err.code === 'ENOENT') {
119121
const errorPrefix = `${localTemplate} could not be found:`;
120-
deferred.reject(`${errorPrefix} run "sls deploy --noDeploy" first.`);
122+
return Promise.reject(`${errorPrefix} run "sls deploy --noDeploy" first.`);
121123
}
124+
return Promise.reject(err);
122125
});
123-
124-
return deferred.promise;
125126
}
126127
}
127128

0 commit comments

Comments
 (0)