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 возвращает ошибки значениями). diff --git a/package-lock.json b/package-lock.json index 6292ef4..5a5e2ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8614,10 +8614,11 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2",