pbem
Version:
BEM-helper system for Pug (Jade)
48 lines (37 loc) • 979 B
JavaScript
;
const PRIVATE = Symbol();
require('./lib/Template')(PRIVATE);
require('./lib/Block')(PRIVATE);
require('./lib/Element')(PRIVATE);
const scope = require('./scope');
const presetMethodsMaping = {
mod: {
type: 'mods',
targetClass: scope.Block
},
attr: {
type: 'attributes',
targetClass: scope.Block
},
data: {
type: 'data',
targetClass: scope.Block
},
local: {
type: 'locals',
targetClass: scope.Template
}
};
for (let methodName in presetMethodsMaping) {
let {type, targetClass} = presetMethodsMaping[methodName];
targetClass.prototype[methodName] = function(name, value) {
return this[PRIVATE].setParam(type, name, value);
};
}
const PBEM = require('./lib/PBEM');
function pbem(newConfig) {
return new PBEM(newConfig);
}
pbem.createTemplate = (name, options) => pbem().createTemplate(name, options);
pbem.createBlock = (name, options) => pbem().createBlock(name, options);
module.exports = pbem;