## Urobme bruno lepším, spoločne !! Sme radi, že chcete zlepšiť bruno. Nižšie sú uvedené pokyny, ako začať s výchovou bruno na vašom počítači. ### Technologický zásobník Bruno je vytvorené pomocou Next.js a React. Na dodávanie desktopovej verzie (ktorá podporuje lokálne kolekcie) používame aj electron. Balíčky, ktoré používame: - CSS - Tailwind - Editory kódu - Codemirror - Správa stavu - Redux - Ikony - Tabler Icons - Formuláre - formik - Overovanie schém - Yup - Klient požiadaviek - axios - Sledovač súborového systému - chokidar ### Závislosti Budete potrebovať [NodeJS v18.x alebo najnovšiu verziu LTS](https://nodejs.org/en/) a npm versiu 8.x. V projekte používame pracovné priestory npm ## Vývoj Bruno sa vyvíja ako desktopová aplikácia. Aplikáciu je potrebné načítať spustením aplikácie Next.js v jednom termináli a potom spustiť aplikáciu electron v inom termináli. ### Závislosti - NodeJS v18 ### Miestny vývoj ```bash # použite verziu nodejs 18 nvm use # nainštalovať balíčky npm i --legacy-peer-deps # zostaviť balíčky npm run build:graphql-docs npm run build:bruno-query npm run build:bruno-common # spustite ďalšiu aplikáciu (terminál 1) npm run dev:web # spustite aplikáciu electron (terminál 2) npm run dev:electron ``` ### Riešenie problémov Pri spustení `npm install` sa môžete stretnúť s chybou `Unsupported platform`. Ak chcete túto chybu odstrániť, musíte odstrániť súbory `node_modules`, `package-lock.json` a spustiť `npm install`. Tým by sa mali nainštalovať všetky potrebné balíky potrebné na spustenie aplikácie. ```shell # Odstrániť node_modules v podadresároch find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do rm -rf "$dir" done # Odstráňte package-lock v podadresároch find . -type f -name "package-lock.json" -delete ``` ### Testovanie ````bash # bruno-schema npm test --workspace=packages/bruno-schema # bruno-lang npm test --workspace=packages/bruno-lang ``` ### Vyrobenie Pull Request - Prosím, aby PR boli malé a zamerané na jednu vec - Prosím, dodržujte formát vytvárania vetiev - feature/[názov funkcie]: Táto vetva by mala obsahovať zmeny pre konkrétnu funkciu - Príklad: feature/dark-mode - bugfix/[názov chyby]: Táto vetva by mala obsahovať iba opravy konkrétnej chyby - Príklad: bugfix/bug-1