rock
Version:
Generate and scaffold file structures or project skeletons from templates.
38 lines (31 loc) • 828 B
JavaScript
var fs = require('fs-promise')
var tweeze = require('tweezers')
var rutil = require('./util')
var me = module.exports
me.open = null
me.close = null
function readFileAndExtract (file, callback) {
return fs.readFile(file, 'utf8')
.then(function (data) {
return tweeze(data, me.open, me.close)
})
}
function readFilesAndExtract (files, open, close) {
var fileObj = {}
var tokens = {}
me.open = open || me.open
me.close = close || me.open
return Promise.all(files.map(function (file) {
return readFileAndExtract(file)
.then(function (obj) {
rutil.extend(tokens, obj)
fileObj[file] = Object.keys(obj)
})
}))
.then(function () {
fileObj.tokens = Object.keys(tokens)
fileObj.tokens.sort()
return fileObj
})
}
module.exports.readFilesAndExtract = readFilesAndExtract