bem / bem/bem-sdk

parse and stringify BemjsonNodes

Open
#183 0 comments 0 reactions 0 assignees View on GitHub
hacktoberfest pkg:naming prio:normal status:evaluating type:feature
Dominant language
JavaScript
Stars
89
Forks
24
PR merge metrics
No merged PRs in 30d

Description

original: https://github.com/bem-sdk/bem-sdk/issues/179

```js
BemjsonMods = Map
BemjsonNode = {
block: String,
elem: ?String,
mods: ?BemjsonMods,
elemMods: ?BemjsonMods,
mix: ?Array
};

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"
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.