@astral/code-gen
v1.1.1
Published
Пакет содержит инструменты для генерации кода.
Readme
Code Gen
Пакет содержит инструменты для генерации кода.
Install
npm install @astral/code-genArch Code Gen
Генерация api слоя из data
Что делает:
- Формирует endpoints из sources
- Объединяет типы в sources dto.ts в namespaces + переименовывает типы, удаляя лишние постфиксы
- Находит все места использования и изменяет названия, обращения через namespace
- Переименовывает namespace, удаляя постфиксы NetworkSources. Находит все места использования и изменяет их
- Перемещает fakers из sources в api/_fakers, вместе с utils
- Находит места использования и изменяет импорты
- Генерирует fetchers на основе endpoints
- Перемещает enums.ts и types.ts из data и sources в api
- Помечает все Repositories как deprecated
Подготовка
Перед запуском codemod необходимо:
- Создать в api services директорию и сделать экспорт из нее http сервисов и cacheService
- Переименовать в data/sources директории и файлы, которые не соответсвуют паттерну с окончанием "NetworkSources"
Базовое использование
Подходит, если в проекте нет actual директории.
Создайте в корне проекта или подпроекта монорепы файл:
codemod.js
const { migrateManualDataToApiLayer } = require('@astral/code-gen');
migrateManualDataToApiLayer({ projectPrefix: 'wr' });node codemodeИспользование с actual директорией
const { migrateManualDataToApiLayer } = require('@astral/code-gen');
migrateManualDataToApiLayer({ projectPrefix: 'wr', useActualDirectory: true });node codemodeИспользование с импортом sources в modules
Если в проекте нарушены архитектурные границы и sources использовались в modules:
const { migrateManualDataToApiLayer } = require('@astral/code-gen');
migrateManualDataToApiLayer({
projectPrefix: 'wr',
useActualDirectory: true,
useSourcesOutData: true
});