Skip to content

parse and stringify BemjsonNodes #183

@Yeti-or

Description

@Yeti-or

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"

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions