Галоўная / Артыкулы / DenoX CLI: Стварэнне проектаў і функцый без адчування пакутнай неконтрольнасці

DenoX CLI: Стварэнне проектаў і функцый без адчування пакутнай неконтрольнасці

Установіце DenoX CLI, створыце шаблоны прыкладоў, сгенераваце функцыі на адной з модэлей MVC за дапамою OpenAPI, безпечна адключыце модулі і апдаціруйце файлы, якія належаюць фрэймворку, не чынячы змян у коде прыклада.

752 слоў

Адзін з галоўных цялей DenoX — скасаваць павтаральную роботу пад час разработкі, не пазбавляючы інжынераў контролю. Шаблон выдае свой сабэйсны CLI у вачынку адного файла TypeScript, які можа ствараць проекты, генераваць всі неабходныя функцыі, безпечна адключаць модулі та апгрэйдаваць сам шаблон.

У працоўнасці з адміністрацыяй DenoX CLI, на вядома адзіну частку, паслужаюць власныя можлівасці Deno, на адзінаку ад багато сучасных CLIs, які выкарыстоўваюць дзесяткі пакетаў.

Інсталляцыя

Інсталюйце за адным камандам:

deno install -grA -n denox https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts

Альбо запускайце яго без інсталляцыі:

deno run -A https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts new my-shop

CLI — это самодостатні файл: няма зовнішняй залежнасці і няма імпортаў з самага шаблону.

Стварэнне проекта

Створэнне новага прыкладу аплікацыі — за адной камандай:

denox new my-shop

Скрафтінг — гэта не проста ягоўка шаблона на дыск. Ён запускае офіцыйны стартэр, адмахвае історыю змян у Git гэтага стартэра, стварае чысты репазітарый, вяртае значэнне поля версіі на 0.1.0, ачышчае лог змян, перапісвае файл README пад новую назву і відпаведна правяе файл denox.config.ts.

Рэзультат готавы да розрабоцы і вже праходзіць перакананні deno task ci проекта без неабяжной ручнай чысткі.

Работаюць таксама спецыяльныя шаблоны:

denox new my-app --template=<repository>

Стварэнне цэлага фічырскага модуля

Сярод найсильнейшых можаўкаў CLI — стварэнне цэлага фічырскага модуля на адной командзе.

denox g feature reviews

У зяместо пустых месцаў для заполнення, пры гэнераванні выдаецца цэлы фрагмент API у формате MVC: модель і DTO, інтэрфейс репазітарыя плюс рэалізацыі ў памяці та Deno KV, сервіс, кантролер, маршруты, апісацыя OpenAPI, якая знаходзится праз адны файл з кодам, і шаблон тэста на інтеграцыю.

Рэгістрацыя ў src/api/main.ts адбываецца автаматычна, таму да гэтай функцыі можна з’явіцца без дадатковых налаштаванняў.

OpenAPI ўбудована

Każна створаная функцыя мае свою апісацыю OpenAPI.

Паследкі:

  • Дакументацыя знаходзится праз адны файл з рэалізацыяй
  • Тэсты на парнасць маршрутаў продовжаюць праходзіць
  • Пры запуску:
deno task insomnia

автаматычна гэнеруе колекцыю Insomnia.

Няма неабходнасці вручную падтрымваць окремую дакументацыю API.

Безпечнае гэнераванне коду

CLI застаецца абераглівым пад час змены існуючага коду.

Калі знак // denox:features не існуець або зменены, адказвальны прыстрык адмовяецца ствараць тачку вставкі.

Ён усё раве запішае новыя файлы з функцыйямі, выведзе точныя рэядкі, якія трэба вставіць вручную, і не чапаецца за жадным існуючым файлам з кодам.

Неправільныя назвы або дублікаты ідэнтыфікатораў функцыйяў зупіняюць каманду перад тым, як будзе здарыцца змена структуры.

Адключэнне функцыйі

Зворачная операцыя мае такое ж значэнне, як і стварэнне.

denox rm feature reviews

Адключэнне праглядаеся так, каб утримаць проекты цэлымі.

CLI спачатку адключае ўсія звязкі рутэраў з данай функцыйяй.

Лішынь пасля таго, калі прыстрык абсолютна ад’юнкураваны, файлы выкарыстоўваюцца.

Нават якщо процес зупініцца на паўпацёку, у проекте ніколі не застануцца імпорты, якія вядуць да відсутняых файлаў.

Пасля завершэння src/api/main.ts падпараджаецца стану да стварэння: няма самотных імпортаў і няма зайвых порожніх рэядкаў.

Перад пераглядам выкорыстоўваюцца:

denox rm feature reviews --dry-run

Кансольныя модулі застаюцца заблокаванымі. Спробы выдаліць вбудованыя элементы — такія як аутэнтыкацыя, корыстуначы, тавары, платежы, медычныя даны і кантакты — адхіляюцца.

Апдэйт фреймворку

Ўтримайце проекты у актуальным стане за дапамою:

denox upgrade

Апдэйты не перазапішуць усю структуру. Зменяюцься толькі шляхі, якія належаюць фреймворку.

Этыя шляхі чытальна пераказаны ў файле .denox-core.json.

Усё, што знаходзіцца за межамі гэтага файла, застаецца недастрымленым, укладаючы:

  • Створаныя функцыі
  • Канфігурацыя проекта
  • Файлы сераўнавання
  • Код, спецыфічны для прыемлівача

Дадатковыя режымы апдэйту:

denox upgrade --dry-run
denox upgrade --interactive
denox upgrade --ref=v1.2.0

Перад апдэйтом інструментарый лінія команд пераканальваецца, чы не є брудным рабочы лес Git. Незадафіксаваныя змены спакоюўваюць процэс, якщо толькі не будзе зроблена прымусовая дзейнасць, чым утрамаджваецца запобежэнне випадковай втраты дакументацыі.

Стварэнне сторанак

CLI таксама падтрымлівае маршрутызаванне на адварыс файлах у фрэймворку.

denox g page docs/faq

альбо

denox g page items/[id]

Пасля стварэння сторанкі таблыца маршрутаў автаматычна перагенеруецца.

Філасофія DenoX CLI

CLI адпаваюць фрэймворку: прынцып «звычай працоўвае лепш за настройкі», але без адказвання за контроль.

Этыя прынцыпы выражаюцца ў конкрэтных правілах: існуючыя файлы не чынюцца зменамі, рукамі адредагаваныя кантэнты не перапісуюцца, разрушальныя каманды падтрымліваюць параметр --dry-run, модулі, якія належаць фрэймворку, не можна проста адмахнуцца, OpenAPI застаецца супакоўаным з маршрутамі, а файлы фрэймворку застаюцца окремымі ад коду прыемлівача.

Усе гэта дае маленькі, прыемлівы CLI: менш шаблонаў, без закрыцьця таго, што зменілася.