<commit_before>jsoToReact
==================================================
для записи шаблонов не использая jsx используется формат описания jso
формат полносью совместим с js, имеет более компактный вид чем jsx

Пример использования
--------------------------------------
```js
var jsoToReact = require('jso-to-react');
var bem = require('bem-name');

var jr = jsoToReact;
var b = bem('page-buy-vip-price');
var t = getText;

{
    render: function() {
        ...

        function Price() {<commit_msg>описание основных типов<commit_after>jsoToReact
==================================================
для записи шаблонов не использая jsx используется формат описания jso
формат полносью совместим с js, имеет более компактный вид чем jsx

Ключевые моменты
--------------------------------------
```js
b('title') -->  "block__title"
b('+i.title') -->  "+i.block__title"
Icon  -->  какойто конструктор компоненты 

[b('title'), "Bla bla"]  --> <div className={b('title')}>Bla bla</div>
[b('+i.title'), "Bla bla"]  --> <i className={b('title')}>Bla bla</i>
[{class: b('title')}, "Bla bla"]  --> <div className={b('title')}>Bla bla</div>
[{class: b('+i.title')}, "Bla bla"]  --> <i className={b('title')}>Bla bla</i>
[{tag: 'i', class: b('title')}, "Bla bla"]  --> <i className={b('title')}>Bla bla</i>
[{class: Icon, name: 'edit'}]  --> <Icon name={b('title')}/>
[Icon, {name: 'edit'}]  --> <Icon name={b('title')}/>

[null, x1, x2, ..]  --> [<x1>, <x2>, ..] // список в формате jso
[1, <x>] --> <x> // если нужно вставить значение как оно есть

```

Пример использования
--------------------------------------
```js
var jsoToReact = require('jso-to-react');
var bem = require('bem-name');

var jr = jsoToReact;
var b = bem('page-buy-vip-price');
var t = getText;

{
    render: function() {
        ...

        function Price() {
{'fraction_non_alphanumeric': 0.3006001091107474, 'fraction_numerical': 0.002727768685215494, 'mean_word_length': 3.121348314606742, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 31, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5116757', 'n_tokens_mistral': 680, 'n_tokens_neox': 715, 'n_words': 166}