enb
Version:
Faster BEM/BEViS assembler
74 lines (66 loc) • 2.47 kB
JavaScript
/**
* borschik
* ========
*
* Технология переехала в пакет `enb-borschik`.
*/
var Vow = require('vow');
var inherit = require('inherit');
var BorschikPreprocessor = require('../lib/preprocess/borschik-preprocessor');
/**
* @type {Tech}
*/
module.exports = inherit(require('../lib/tech/base-tech'), {
getName: function () {
return 'borschik';
},
configure: function () {
this._source = this.node.unmaskTargetName(this.getRequiredOption('sourceTarget'));
this._target = this.node.unmaskTargetName(this.getRequiredOption('destTarget'));
this._freeze = this.getOption('freeze', false);
this._minify = this.getOption('minify', true);
this._tech = this.getOption('tech', null);
},
getTargets: function () {
return [this._target];
},
build: function () {
var target = this._target;
this.node.getLogger().logTechIsDeprecated(
target,
'borschik',
'enb',
'borschik',
'enb-borschik'
);
var targetPath = this.node.resolvePath(target);
var source = this._source;
var sourcePath = this.node.resolvePath(source);
var _this = this;
var cache = this.node.getNodeCache(target);
return this.node.requireSources([source]).then(function () {
if (cache.needRebuildFile('source-file', sourcePath) ||
cache.needRebuildFile('target-file', targetPath)
) {
var borschikProcessor = BorschikProcessorSibling.fork();
return Vow.when(
borschikProcessor.process(sourcePath, targetPath, _this._freeze, _this._minify, _this._tech)
).then(function () {
cache.cacheFileInfo('source-file', sourcePath);
cache.cacheFileInfo('target-file', targetPath);
_this.node.resolveTarget(target);
borschikProcessor.dispose();
});
} else {
_this.node.isValidTarget(target);
_this.node.resolveTarget(target);
return null;
}
});
}
});
var BorschikProcessorSibling = require('sibling').declare({
process: function (sourcePath, targetPath, freeze, minify, tech) {
return (new BorschikPreprocessor()).preprocessFile(sourcePath, targetPath, freeze, minify, tech);
}
});