Nine Pomeranian Monsters

    bem-tools-find

    0.0.1 • Public • Published

    bem-tools-find

    NPM version Build Status Coverage Status David

    Logo

    Инструмент для поиска БЭМ сущностей по заданным критериям.

    Возможности

    • Использование в качестве самостоятельного CLI инструмента
    • Использование в качестве плагина к bem-tools
    • Возможность использования с помощью JS API

    Установка

    Инструмент устанавливается как обычная npm-зависимость:

    $ npm install bem-tools-find
    

    Использование

    Использование с помощью CLI-интерфейса.

    BEM Tool Find
    
    Usage:
      find COMMAND [OPTIONS] [ARGS]
      find [OPTIONS] [ARGS]
    
    Commands:
      completion : Shell completion
    
    Options:
      -h, --help : Help
      -l LEVEL, --level=LEVEL : Name of level(s)
      -b BLOCK, --block=BLOCK : Name of block(s)
      -e ELEMENT, --element=ELEMENT : Name of element(s)
      -m MODIFIER, --mod=MODIFIER : Name of modifier(s)
      -t TECH, --tech=TECH : Name of tech(s)
      -v VIEW, --view=VIEW : Type of output
    
    Arguments:
      ENTITY : entity
    
    

    Здесь:

    • -h, --help - флаг предназначенный для получения справочной информации по вызову команды.
    • -l, --level - имя уровня(ей) переопределения блоков для поиска. Может быть использован несколько раз.
    • -b, --block - имя блока(ов) для поиска. Может быть использован несколько раз.
    • -e, --element - имя элемента(ов) блока(ов) для поиска. Может быть использован несколько раз.
    • -m, --mod - имя модификатора. Если указан также параметр элемента (-e, --element), то подразумевается поиск по модификаторам элементов блока. Если параметр элемента отсутствует, то будет произведен поиск по модификаторам блока.
    • -t, --tech - имя технологии блока.
    • -v, --view - стиль вывода результата поиска. Может принимать значения plain(по умолчанию), table и tree.

    Примеры вызова команды

    • Поиск всех БЭМ сущностей в проекте:
    $ ./node-modules/bem-tools-find/find
    
    • Поиск файлов блока my-block:
    $ ./node-modules/bem-tools-find/find -b my-block
    
    • Поиск файлов блока my-block на уровне переопределения desktop.blocks:
    $ ./node-modules/bem-tools-find/find -l desktop.blocks -b my-block
    
    • Поиск файлов для нескольких блоков:
    $ ./node-modules/bem-tools-find/find -b my-block1 -b my-block2
    
    • Поиск файлов элемента my-element блока my-block:
    $ ./node-modules/bem-tools-find/find -b my-block -e my-element
    
    • Поиск файлов модификатора my-mod блока my-block:
    $ ./node-modules/bem-tools-find/find -b my-block -m my-mod
    
    • Поиск файлов модификатора my-mod элемента my-element блока my-block:
    $ ./node-modules/bem-tools-find/find -b my-block -e my-element -m my-mod
    
    • Поиск файлов технологии js блока my-block:
    $ ./node-modules/bem-tools-find/find -b my-block -t js
    
    • Вывод результатов поиска файлов блока my-block в табличном виде:
    $ ./node-modules/bem-tools-find/find -b my-block -v table
    
    • Вывод результатов поиска файлов блока my-block в виде дерева БЭМ сущностей:
    $ ./node-modules/bem-tools-find/find -b my-block -v tree
    
    • Получение справочной информации:
    $ ./node-modules/bem-tools-find/find --help
    

    Кроме того, инструмент допускает использование сокращенного синтаксиса для поиска сущностей, например для того, чтобы найти файлы блоков my-block1 и my-block2, можно использовать команду:

    $ ./node-modules/bem-tools-find/find my-block1 my-block2
    

    Аналогично для элементов и модификаторов блоков:

    $ ./node-modules/bem-tools-find/find my-block1__some-elem
    
    $ ./node-modules/bem-tools-find/find my-block1_modName_modValue
    

    Использование инструмента с помощью JS API.

    bem-tools-find также может быть использован программно. Для этого нужно подключить зависимость bem-tools-find в модуль вашего проекта и передать переметры для поиска BEM-сущностей.

    var bemToolsFind = require('bem-tools-find');
    
    bemToolsFind({
        levels: ['level1'],
        blocks: ['block1', 'block2'],
        elements: ['elem1', 'elem2'],
        modifiers: ['mod1', 'mod2'],
        techs: ['tech1', 'tech2']
    }).pipe(process.stdout) //здесь вместо `process.stdout` можно использовать ваш собственный stream.
    

    Примечание: в передаваемом объекте с параметрами поиска любые поля могут быть опущены в том случае если критерий поиска по ним не является необходимым.

    Тестирование

    Запуск тестов

    $ npm test
    

    Запуск тестов с вычислением покрытия кода тестами с помощью инструмента istanbul:

    $ npm run cover
    

    Проверка синтаксиса кода с помощью: jshint, jscs

    $ npm run lint
    

    Особая благодарность за помощь в разработке:

    Разработчики:

    Вопросы и предложения присылать в раздел issues репозитория данного инструмента.

    Install

    npm i bem-tools-find

    DownloadsWeekly Downloads

    2

    Version

    0.0.1

    License

    MPL-2.0

    Last publish

    Collaborators

    • veged
    • tadatuta
    • tormozz48