diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 763122c..3e977bc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,7 +22,7 @@ jobs: # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: @@ -42,7 +42,7 @@ jobs: matrix: node-version: [18.x, 20.x] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e3d6ce..d80b141 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.4.0] - Unreleased +## [0.4.0] - 2026-09-06 ### Added diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..609a965 --- /dev/null +++ b/TODO.md @@ -0,0 +1,28 @@ +# TODO + +## Статус: 0.4.0 (dual package) +0.3.0 был подготовлен, но не опубликован — его изменения вошли в состав релиза 0.4.0. + +## Открытые задачи + +### TypeScript 7 (нативный порт, tsc-go) +`ts-jest` поддерживает `<7`, `typescript-eslint` — `<6.1`. Вернуться к миграции, когда экосистема догонит. + +### Обвязка +- Dependabot: проверить, что grouped PR реально приходят (настройка завершена). + +### Роадмап фич (из бенчмаркинга аналогов, см. README → Alternatives) +Отложено — возвращаться при запросах пользователей / перед 1.0: +- `abort()` + `AbortSignal` вторым аргументом `batchFetch` — как у batshit; +- per-item retry-токен — как `BATCHER_RETRY_TOKEN` у promise-batcher; +- `prime(id, value | Error)` — fill-if-absent кэш-прайминг как у dataloader; +- `isIdle` / `idlePromise()` — idle-трекинг как у promise-batcher; +- `cacheKeyFn` для объектных ключей (как у dataloader) — переработка дженериков + `ID extends number | string`; +- богатый scheduler-контракт `(start, latest, batchSize)` как у batshit — нативные + debounce (`bufferScheduler`) и size-triggered (`windowedFiniteBatchScheduler`, + `maxBatchSizeScheduler`) планировщики; сейчас наш `batchScheduleFn` вызывается один + раз на батч и debounce невыразим; +- devtools-пакет (как `@yornaath/batshit-devtools-react`); +- `loadManySettled` / опция «не реджектить loadMany при per-item ошибках» + (у dataloader loadMany возвращает ошибки значениями).