Skip to content

bem-sdk-archive/bemjson-to-decl

Repository files navigation

bemjson-to-decl

Easy to use BEMJSON to set of BEM-entities (aka BEMDECL) converter written in JS

NPM Status Travis Status Coverage Status Dependency Status

Prerequisites

Installing

Run in your project:

npm install --save bemjson-to-decl

Usage

const bemjsonToDecl = require('bemjson-to-decl');

bemjsonToDecl.convert([
    {elem: 'control', elemMods: {theme: 'normal'}},
    {elem: 'control', elemMods: {theme: 'ghost'}}
], {block: 'button'});

// →
//  [ BemEntityName { block: 'button', elem: 'control' },
//    BemEntityName { block: 'button', elem: 'control', mod: { name: 'theme', val: true } },
//    BemEntityName { block: 'button', elem: 'control', mod: { name: 'theme', val: 'normal' } },
//    BemEntityName { block: 'button', elem: 'control', mod: { name: 'theme', val: 'ghost' } }
//  ]

API

convert(bemjson: BEMJSON, scope: ?BemEntityName): BemEntityName[]

Extract BEM-entities from BEMJSON object.

const bemjsonToDecl = require('bemjson-to-decl');

bemjsonToDecl.convert({block: 'button', mods: {theme: 'normal'}});

// →
//  [ BemEntityName { block: 'button' },
//    BemEntityName { block: 'button', mod: { name: 'theme', val: true } },
//    BemEntityName { block: 'button', mod: { name: 'theme', val: 'normal' } }
//  ]

stringify(bemjson: BEMJSON, scope: ?BemEntityName, opts: ?{indent: string}): string

Extract BEM-entities and stringify result to the string.

const bemjsonToDecl = require('bemjson-to-decl');

bemjsonToDecl.stringify({block: 'button'}, null, {indent: '\t'});

// →
// "[\n\t{\n\t\tblock: 'button'\n\t}\n]"

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Vladimir Grinenko - Initial work - tadatuta

See also the full list of contributors who participated in this project.

You may also get it with git log --pretty=format:"%an <%ae>" | sort -u.

License

Code and documentation are licensed under the Mozilla Public License 2.0 - see the LICENSE.md file for details.