From e6e71ec2d4e9ee17937a27b1a417b6db3469f81e Mon Sep 17 00:00:00 2001 From: Alexander Lobyntsev Date: Fri, 28 Jun 2024 13:52:27 +0700 Subject: [PATCH] chore(scaffold): add script for update/sync component list --- package.json | 1 + scaffold/Readme.md | 16 ++++++++++++++++ scaffold/scaffold-components.js | 12 ++++++++++-- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f2346b97fb..19b0602517 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "author": "Salute Frontend Team ", "license": "MIT", "scripts": { + "scaffold:update-components-docs": "npm run scaffold:components", "scaffold:docs": "simple-scaffold -c scaffold/scaffold-config.js --name $npm_config_package", "scaffold:components": "node scaffold/scaffold-components.js", "scaffold:update-docs-ui": "node scaffold/update-docs-ui.js && npm i --no-audit --no-progress --package-lock-only --lockfile-version 2 --legacy-peer-deps --prefix=$npm_config_dir", diff --git a/scaffold/Readme.md b/scaffold/Readme.md index ad329d9c14..b56bf98821 100644 --- a/scaffold/Readme.md +++ b/scaffold/Readme.md @@ -56,3 +56,19 @@ npm run scaffold:docs --package="plasma-asdk" --vertical="plasma-themes" --theme Чтобы избежать данного warning нужно использовать экранирование `\`. Например: `style=\{{flexDirection: 'column'}}` + +### Как обновить список компонентов в уже имеющейся документации? + +Есть отдельная команда - `npm run scaffold:update-components-docs`. + +Например, для пакета `caldera-online`: + +```console +npm run scaffold:update-components-docs --vertical="caldera-online-themes" --package="caldera-online" --exclude="sheet" +``` + +Обновит/добавит/синхронизирует список компонентов документации и библиотеки, при этом **исключит** компонент `Sheet`. + +**Примечание:** + +Аргумент `exclude` принимает перечисление компонентов через запятую: `--exclude="sheet,textarea,etc"` diff --git a/scaffold/scaffold-components.js b/scaffold/scaffold-components.js index acba162fde..b7916de807 100644 --- a/scaffold/scaffold-components.js +++ b/scaffold/scaffold-components.js @@ -7,7 +7,13 @@ const fg = require('fast-glob'); // INFO: Генерация компонентов по шаблону и на основе списка компонентов на основе пакета // INFO: для которого делается документация async function main() { - const { npm_config_package: npmConfigPackage, npm_config_vertical: npmConfigVertical } = process.env || {}; + const { + npm_config_package: npmConfigPackage, + npm_config_vertical: npmConfigVertical, + npm_config_exclude: npmConfigExclude, + } = process.env || {}; + + const excludeList = npmConfigExclude ? npmConfigExclude.split(',').map((component) => component?.trim()) : []; if (!npmConfigPackage) { return; @@ -25,7 +31,9 @@ async function main() { // INFO: Получаем актуальный список директорий компонентов // например ['AutoComplete','Avatar','AvatarGroup','Badge','Button','ButtonGroup','Cell'] - const components = await readdir(packageDir); + const components = (await readdir(packageDir)).filter( + (component) => !excludeList.includes(component.toLowerCase()), + ); // INFO: Собираем шаблоны документации для компонентов // [