инкрементальное накопление зависимостей в объектной модели
приём зависимостей в унифицированном формате
сериализация и десериализация накопленных зависимостей в унифицированный формат и из него (сохранение и чтение)
манипуляции с множествами зависимостей
объединение
пересечение
вычитание
вычисление упорядоченного множества БЭМ-сущностей из объектной модели дерева зависимостей по заданным критериям
инструменты для парсинга зависимостей из исходников
Архитектура bem-deps
Класс DepsContainer
Контейнер для инкрементального накопления зависимостей.
Методы инстанса:
add(deps) — добавляет информацию о зависимостях в контейнер; deps — чанк, описывающий зависимости в унифицированном формате
serialize() — сериализует информацию в унифицированный формат
forEach() — хелпер, позволяющий получить необходимое подмножество из объектной модели зависимостей
Статические методы:
deserialize() — фабрика, создаёт инстанс DepsContainer из сериализованного формата
Формат для хранения зависимостей
TBD
Формат для накопления зависимостей
{
deps: [
{
block: 'block-name', // имя блока
elem: 'elem-name', // имя элемента
mod: 'val' || true // имя и значение модификатора, `true` в качестве значения для булева модификатора
priority: true // флаг приоритета зависимости
}
],
priority: [] // массив для указания приоритета зависимостей без их включения
}
Хелперы для парсинга зависимостей из исходников
Базовый класс DepsParser()
Абстрактный класс, задаёт интерфейс для парсеров зависимостей.
Класс DepsJsParser()
Парсер исходных файлов deps.js.
Класс DepsYmlParser()
Парсер исходных файлов deps.yaml.
Класс YmParser()
Парсер исходных js файлов, использующих модульную систему ym. Полезен при условии, что имена модулей однозначно соответствуют описываемых в них БЭМ-сущностям.
Утилиты
Утилиты возвращают новый инстанс DepsContainer с вычисленными зависимостями:
Обязанности
bem-deps
Архитектура
bem-deps
Класс
DepsContainer
Контейнер для инкрементального накопления зависимостей.
Методы инстанса:
add(deps)
— добавляет информацию о зависимостях в контейнер;deps
— чанк, описывающий зависимости в унифицированном форматеserialize()
— сериализует информацию в унифицированный форматforEach()
— хелпер, позволяющий получить необходимое подмножество из объектной модели зависимостейСтатические методы:
deserialize()
— фабрика, создаёт инстансDepsContainer
из сериализованного форматаФормат для хранения зависимостей
TBD
Формат для накопления зависимостей
Хелперы для парсинга зависимостей из исходников
Базовый класс DepsParser()
Абстрактный класс, задаёт интерфейс для парсеров зависимостей.
Класс DepsJsParser()
Парсер исходных файлов
deps.js
.Класс DepsYmlParser()
Парсер исходных файлов
deps.yaml
.Класс YmParser()
Парсер исходных
js
файлов, использующих модульную системуym
. Полезен при условии, что имена модулей однозначно соответствуют описываемых в них БЭМ-сущностям.Утилиты
Утилиты возвращают новый инстанс
DepsContainer
с вычисленными зависимостями:subtract(source, subtraction...)
merge(source...)
intersect(source...)