feat: добавить программный API для использования как библиотеки

- создан src/index.ts с реэкспортом 14 чистых функций и типов
- перенесён findNearestTemplatesDir из completion.ts в templateUtils.ts
- обновлён package.json: main → dist/index.js, добавлено поле types
- добавлен declaration: true в tsconfig.json для генерации .d.ts
- документирован API в README.md и README_RU.md
- версия поднята до 0.2.0
This commit is contained in:
2026-04-02 18:17:32 +03:00
parent 6604becb0c
commit 96d68c5a63
7 changed files with 92 additions and 21 deletions

View File

@@ -117,3 +117,27 @@ export const {{name.pascalCase}} = () => {
| `--overwrite` | Перезаписать существующие файлы |
| `--skip-update` | Не проверять обновления CLI |
| `--<переменная> <значение>` | Произвольная переменная шаблона |
## Программный API
Пакет можно использовать как библиотеку:
```typescript
import { buildPlan, writePlan, collectTemplateVariables } from '@gromlab/create';
```
| Функция | Назначение |
|---|---|
| `renderTemplate(input, vars)` | Подставляет переменные и модификаторы в строку |
| `collectTemplateVariables(templateDir)` | Собирает все имена переменных из шаблона |
| `listTemplateNames(templatesDir)` | Список доступных шаблонов (подпапки) |
| `findNearestTemplatesDir(startDir)` | Ищет `.templates` вверх по дереву каталогов |
| `readDirRecursive(dir)` | Рекурсивный список всех файлов в каталоге |
| `resolveTemplateContext(templatesDir, name, vars)` | Валидация шаблона и переменных |
| `buildPlan(templateDir, outDir, vars, files)` | Построение плана генерации (source → target) |
| `writePlan(plan, vars, overwrite)` | Запись файлов на диск по плану |
| `getCollisions(plan)` | Список файлов из плана, которые уже существуют |
| `getExistingDirs(outDir, dirs)` | Проверка существующих директорий |
| `getTopLevelDirs(outDir, plan)` | Директории верхнего уровня из плана |
| `getRoots(outDir, plan)` | Корневые пути для итогового вывода |
| `CASE_MODIFIERS` | Словарь модификаторов регистра |