<commit_before>var Vow = require('vow'),
    vowFs = require('vow-fs'),
    bhClientProcessor = require('../lib/bh-client-processor');

module.exports = require('enb/lib/build-flow').create()
    .name('bh-client')
    .target('target', '?.bemhtml.client.js')
    .defineOption('bhFile', '')
    .defineOption('dependencies', {})
    .useFileList(['bh.js'])
    .needRebuild(function(cache) {
        this._bhFile = this._bhFile || 'node_modules/bh/lib/bh.js';
        this._bhFile = this.node._root + '/' + this._bhFile;
        return cache.needRebuildFile('bh-file', this._bhFile);
    })
    .saveCache(function(cache) {
        cache.cacheFileInfo('bh-file', this._bhFile);
    })
    .builder(function(bhFiles) {
        var node = this.node;
        var dependencies = this._dependencies;
        return Vow.all([
            vowFs.read(this._bhFile, 'utf8').then(function(data) {
                return data;
            }),
            Vow.all(bhFiles.map(function(file) {
                return vowFs.read(file.fullname, 'utf8').then(function(data) {<commit_msg>Update bh-client-module.js<commit_after>/**
 * bh-client-module
 * ================
 * 
 * Склеивает *bh*-файлы по deps'ам с помощью набора `require` в виде `?.bemhtml.client.js`.
 * Предназначен для сборки клиентского BH-кода.
 * Использует модульную обертку.
 * 
 * **Опции**
 * 
 * * *String* **target** — Результирующий таргет. По умолчанию — `?.bemhtml.client.js`.
 * * *String* **filesTarget** — files-таргет, на основе которого получается список исходных файлов (его предоставляет технология `files`). По умолчанию — `?.files`.
 * 
 * **Пример**
 * 
 * ```javascript
 * nodeConfig.addTech(require('bh/techs/bh-client-module'));
 * ```
 */
 var Vow = require('vow'),
    vowFs = require('vow-fs'),
    bhClientProcessor = require('../lib/bh-client-processor');

module.exports = require('enb/lib/build-flow').create()
    .name('bh-client-module')
    .target('target', '?.bemhtml.client.js')
    .defineOption('bhFile', '')
    .defineOption('dependencies', {})
    .useFileList(['bh.js'])
    .needRebuild(function(cache) {
        this._bhFile = this._bhFile || 'node_modules/bh/lib/bh.js';
        this._bhFile = this.node._root + '/' + this._bhFile;
        return cache.needRebuildFile('bh-file', this._bhFile);
    })
    .saveCache(function(cache) {
        cache.cacheFileInfo('bh-file', this._bhFile);
    })
    .builder(function(bhFiles) {
        var node = this.node;
        var dependencies = this._dependencies;
        return Vow.all([
            vowFs.read(this._bhFile, 'utf8').then(function(data) {
                return data;
            }),
            Vow.all(bhFiles.map(function(file) {
                return vowFs.read(file.fullname, 'utf8').then(function(data) {
{'fraction_non_alphanumeric': 0.17899675207506316, 'fraction_numerical': 0.001443522194153735, 'mean_word_length': 2.8661087866108788, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2328762', 'n_tokens_mistral': 967, 'n_tokens_neox': 973, 'n_words': 144}