enb
Version:
Faster BEM/BEViS assembler
42 lines (40 loc) • 1.67 kB
JavaScript
/**
* priv-js
* =======
*
* Технология переехала в пакет `enb-priv-js`.
*/
var Vow = require('vow');
var vowFs = require('../lib/fs/async-fs');
var BorschikPreprocessor = require('../lib/preprocess/borschik-preprocessor');
module.exports = require('../lib/build-flow').create()
.name('priv-js')
.deprecated('enb', 'enb-priv-js')
.target('target', '?.priv.js')
.useFileList('priv.js')
.useSourceText('bemhtmlTarget', '?.bemhtml.js')
.builder(function (sourceFiles, bemhtml) {
var _this = this;
var target = this._target;
var jsBorschikPreprocessor = new BorschikPreprocessor();
var node = this.node;
return Vow.all(sourceFiles.map(function (file) {
return _this.node.createTmpFileForTarget(target).then(function (tmpfile) {
return jsBorschikPreprocessor.preprocessFile(file.fullname, tmpfile, false, false).then(function () {
return vowFs.read(tmpfile, 'utf8').then(function (data) {
var filename = node.relativePath(file.fullname);
vowFs.remove(tmpfile);
var pre = '/* ' + filename + ': begin */\n';
var post = '\n/* ' + filename + ': end */';
return pre + data + post;
});
});
});
})).then(function (res) {
res.push(
'\nif (typeof exports !== "undefined" && typeof blocks !== "undefined") { exports.blocks = blocks; }\n'
);
return bemhtml + '\n' + res.join('\n');
});
})
.createTech();