Skip to content

Commit

Permalink
Add save methond
Browse files Browse the repository at this point in the history
  • Loading branch information
belozer committed Jan 24, 2017
1 parent ad91d23 commit 1cc7144
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ module.exports = {
parse: require('./parse'),
assign: require('./assign'),
load: require('./load'),
stringify: require('./stringify')
stringify: require('./stringify'),
save: require('./save')
};
32 changes: 32 additions & 0 deletions lib/save.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
'use strict';

const fs = require('fs');
const stringify = require('javascript-stringify');
const converter = require('./convert');

/**
* Save normalized declaration to target format
*
* @param {String} filename Filename for save declaration
* @param {Object} decl Normalized declaraions
* @param {Object} opts Addtional options
* @param {String} opts.format Format for save declaration
* @return {Promise} Success or Error
*/
module.exports = (filename, decl, opts) => {
opts = Object.assign({ format: 'v2' }, opts);
decl = converter(decl, opts);

let data = [
'exports.format = ' + stringify(opts.format),
'exports.decl = ' + stringify(decl, null, ' '),
''
].join(';\n');

return new Promise((resolve, reject) => {
fs.writeFile(filename, data, (err) => {
if (err) { reject(err); }
resolve()
});
});
}
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
"@bem/entity-name": "1.1.0",
"es6-promisify": "5.0.0",
"graceful-fs": "4.1.11",
"javascript-stringify": "^1.5.0",
"node-eval": "1.0.4"
},
"devDependencies": {
Expand Down

0 comments on commit 1cc7144

Please sign in to comment.