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..236ceb2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9749,10 +9749,11 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" },