original: #179
BemjsonMods = Map<String, String>
BemjsonNode = {
block: String,
elem: ?String,
mods: ?BemjsonMods,
elemMods: ?BemjsonMods,
mix: ?Array<BemjsonNode|String>
};
stringifyBemjsonNode(Object|BemjsonNode);
parseBemjsonNode(String);
// ex
const n = parseBemjsonNode("b__e b__e_m_b x x_m_v");
// → BemjsonNode<{
block: 'b',
elem: 'e',
elemMods: {m: 'b'},
mix: [
BemjsonNode<{
block: 'x',
mods: {m: 'v'}
}>
]
}>
n.block; // → 'b'
n.mix[0].block; // → 'x'
stringifyBemjsonNode(new BemjsonNode({
block: 'b',
elem: 'e',
elemMods: {m: 'b'},
mix: {
block: 'x',
mods: {m: '1'},
mix: { elem: 'huem', elemMods: { q: '2' } }
}
}));
// → "b__e b__e_m_b x x_m_1 x__huem x__huem_q_2"
original: #179