Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .cursor/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
plans/
39 changes: 39 additions & 0 deletions .cursor/rules/bun-quality-checks.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
description: After TS/JS changes, verify with Bun — Biome lint/format, TypeScript, tests.
globs: "**/*.{ts,tsx,js,jsx,mjs,cjs,json,jsonc}"
alwaysApply: false
---

# Проверки качества (Bun)

Перед завершением задачи по коду **запускай проверки через Bun** и **устраняй ошибки**.

## Линт и формат

В этом репозитории **отдельного Prettier нет** — линт и форматирование делаются **Biome**.

- CI-проверка (как в проекте): `bun run lint` (внутри: `bunx biome ci`).
- Автоисправление при необходимости: `bunx biome check --write` по затронутым путям или `.`.

Если в проект добавят **Prettier**, дополнительно: `bunx prettier --check .` (или по файлам).

## TypeScript

- `bun run typecheck` — `tsc --noEmit` по корневому `tsconfig.json` (сейчас только `src/`).

Типы в `tests/` проверяются в основном через **`bun test`**.

## Тесты

- `bun test` — полный набор.
- Опционально live-ingest (нужен `DUCKBUG_TEST_DSN`): `bun run test:live-ingest`.

## Порядок

1. `bun run lint`
2. `bun run typecheck` — **всегда**, если менял `src/**/*.ts`
3. `bun test`

Либо одной командой: `bun run check` (lint + typecheck + test).

Не считай задачу закрытой, пока эти шаги для затронутого кода не проходят (или явно не задокументировано исключение).
3 changes: 3 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Required for `bun run test:live-ingest` (that script fails if unset). Optional for ad-hoc `bun test ./tests/duckbugLiveIngestEnv.ingest.ts` (skipped if unset).
# Copy to `.env` and fill in — do not commit secrets.
# DUCKBUG_TEST_DSN=https://duckbug.io/api/ingest/{projectId}:{publicKey}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Local
.env
.DS_Store
*.local
*.log*
Expand Down
5 changes: 3 additions & 2 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ bunx commitlint --edit "$1" || {
echo "❌ Ошибка валидации коммита"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "📝 Формат коммита должен быть: <type>: <описание>"
echo "📝 Формат: <type>!: <описание> (breaking) или <type>: <описание>"
echo ""
echo "✅ Допустимые типы коммитов:"
echo " • feat - новая функциональность"
Expand All @@ -22,7 +22,8 @@ bunx commitlint --edit "$1" || {
echo " • chore - обновление задач сборки"
echo " • revert - откат изменений"
echo ""
echo "💡 Примеры правильных коммитов:"
echo "💡 Примеры:"
echo " feat!: breaking change в публичном API (major в semantic-release)"
echo " feat: добавить поддержку логирования ошибок"
echo " fix: исправить утечку памяти в DuckBugProvider"
echo " docs: обновить README с примерами использования"
Expand Down
Loading
Loading