diff --git a/lib/classes/Utils.js b/lib/classes/Utils.js index 8010d88b3..c0b7bb454 100644 --- a/lib/classes/Utils.js +++ b/lib/classes/Utils.js @@ -39,15 +39,15 @@ class Utils { return fse.mkdirsSync(path.dirname(filePath)); } - writeFileSync(filePath, contents) { - return writeFileSync(filePath, contents); + writeFileSync(filePath, contents, cycles) { + return writeFileSync(filePath, contents, cycles); } - writeFile(filePath, contents) { + writeFile(filePath, contents, cycles) { const that = this; return new BbPromise((resolve, reject) => { try { - that.writeFileSync(filePath, contents); + that.writeFileSync(filePath, contents, cycles); } catch (e) { reject(e); } diff --git a/lib/plugins/aws/package/lib/saveServiceState.js b/lib/plugins/aws/package/lib/saveServiceState.js index 46756bd62..7d6afe2fb 100644 --- a/lib/plugins/aws/package/lib/saveServiceState.js +++ b/lib/plugins/aws/package/lib/saveServiceState.js @@ -36,7 +36,7 @@ module.exports = { }, }; - this.serverless.utils.writeFileSync(serviceStateFilePath, state); + this.serverless.utils.writeFileSync(serviceStateFilePath, state, true); return BbPromise.resolve(); }, diff --git a/lib/plugins/aws/package/lib/saveServiceState.test.js b/lib/plugins/aws/package/lib/saveServiceState.test.js index db9b02bd1..064fb861c 100644 --- a/lib/plugins/aws/package/lib/saveServiceState.test.js +++ b/lib/plugins/aws/package/lib/saveServiceState.test.js @@ -63,7 +63,7 @@ describe('#saveServiceState()', () => { }; expect(getServiceStateFileNameStub.calledOnce).to.equal(true); - expect(writeFileSyncStub.calledWithExactly(filePath, expectedStateFileContent)) + expect(writeFileSyncStub.calledWithExactly(filePath, expectedStateFileContent, true)) .to.equal(true); }); }); @@ -97,7 +97,7 @@ describe('#saveServiceState()', () => { }; expect(getServiceStateFileNameStub.calledOnce).to.equal(true); - expect(writeFileSyncStub.calledWithExactly(filePath, expectedStateFileContent)) + expect(writeFileSyncStub.calledWithExactly(filePath, expectedStateFileContent, true)) .to.equal(true); }); }); diff --git a/lib/utils/fs/writeFile.js b/lib/utils/fs/writeFile.js index 625bdbc28..abeef07e0 100644 --- a/lib/utils/fs/writeFile.js +++ b/lib/utils/fs/writeFile.js @@ -5,13 +5,17 @@ const path = require('path'); const jc = require('json-cycle'); const YAML = require('js-yaml'); -function writeFile(filePath, conts) { +function writeFile(filePath, conts, cycles) { let contents = conts || ''; return fse.mkdirsAsync(path.dirname(filePath)) .then(() => { if (filePath.indexOf('.json') !== -1 && typeof contents !== 'string') { - contents = jc.stringify(contents, null, 2); + if (cycles) { + contents = jc.stringify(contents, null, 2); + } else { + contents = JSON.stringify(contents, null, 2); + } } const yamlFileExists = (filePath.indexOf('.yaml') !== -1); diff --git a/lib/utils/fs/writeFile.test.js b/lib/utils/fs/writeFile.test.js index 972669f40..966c928d4 100644 --- a/lib/utils/fs/writeFile.test.js +++ b/lib/utils/fs/writeFile.test.js @@ -49,7 +49,7 @@ describe('#writeFile()', function () { bar.foo = bar; const expected = '{\n "foo": {\n "$ref": "$"\n }\n}'; - return writeFile(tmpFilePath, bar) + return writeFile(tmpFilePath, bar, true) .then(() => expect(fse.readFileAsync(tmpFilePath, 'utf8')).to.eventually.equal(expected) ); diff --git a/lib/utils/fs/writeFileSync.js b/lib/utils/fs/writeFileSync.js index ab5fff093..6e58263c4 100644 --- a/lib/utils/fs/writeFileSync.js +++ b/lib/utils/fs/writeFileSync.js @@ -5,13 +5,17 @@ const path = require('path'); const jc = require('json-cycle'); const YAML = require('js-yaml'); -function writeFileSync(filePath, conts) { +function writeFileSync(filePath, conts, cycles) { let contents = conts || ''; fse.mkdirsSync(path.dirname(filePath)); if (filePath.indexOf('.json') !== -1 && typeof contents !== 'string') { - contents = jc.stringify(contents, null, 2); + if (cycles) { + contents = jc.stringify(contents, null, 2); + } else { + contents = JSON.stringify(contents, null, 2); + } } const yamlFileExists = (filePath.indexOf('.yaml') !== -1); diff --git a/lib/utils/fs/writeFileSync.test.js b/lib/utils/fs/writeFileSync.test.js index 64cc604b9..87ec760a5 100644 --- a/lib/utils/fs/writeFileSync.test.js +++ b/lib/utils/fs/writeFileSync.test.js @@ -53,7 +53,7 @@ describe('#writeFileSync()', () => { bar.foo = bar; const expected = '{\n "foo": {\n "$ref": "$"\n }\n}'; - writeFileSync(tmpFilePath, bar); + writeFileSync(tmpFilePath, bar, true); return fse.readFileAsync(tmpFilePath, 'utf8').then((contents) => { expect(contents).to.equal(expected);