Helper library, that contains functions and methods which will help you form final BEMJSON object in *.priv.js
files.
npm install priv-js
var Blocks = require('priv-js');
var blocks = new Blocks;
All *.priv.js
files exports function:
// button.priv.js
module.exports = function(blocks) {
// ...
};
This function expects to get instance of priv-js
object in first argument:
var privFile = require('button.priv.js');
privFile(blocks);
Constructor. Returns Blocks
instance, that have next methods:
Declares object by name.
blocks.declare('header', function(data) {
return {
block: 'header',
content: data.name
}
});
blocks.declare('utils', {
format: function(number) { ... },
inverse: function(obj) { ... }
});
Checks whether block is declared or not.
blocks.declare('layout-vertical', function () {
return {
block: 'layout-vertical'
};
});
blocks.declare('layout', function () {
if (blocks.has('layout-vertical')) {
return blocks.exec('layout-vertical');
}
return {
block: 'layout'
};
});
Get declared object by name.
blocks.declare('price', function(data) {
var utils = blocks.get('utils');
return {
block: 'price',
content: utils.format(data.price) + 'руб.'
}
});
Executes stored function with args
. If type of stored object is not a function, exception will be thrown. Returns result of execution.
blocks.declare('item', function(data) {
return [
{ block: 'image' },
blocks.exec('price');
blocks.exec('debug', data.debug);
]
});
$ npm test