TypeScript · correctness
store-insert-requires-on-conflict
eslint:store-insert-requires-on-conflict Require an embedded SQL INSERT to carry ON CONFLICT; store writes replay under cron re-runs and queue redelivery and must be idempotent upserts.
- Default
- error
- Fix
- none
- Languages
- typescript
Why
A replayed bare insert can duplicate data or fail on a uniqueness constraint.
Fix
Add an appropriate `ON CONFLICT` action or supported replay-safe insert form.
Before / after
Executed by this rule’s unit tests.
Before
Do not issue a replay-unsafe insert
db.prepare(`INSERT INTO runs (id) VALUES (?)`).run(); After
Handle a replayed insert
db.prepare(`INSERT INTO runs (id) VALUES (?) ON CONFLICT(id) DO NOTHING`).run(); Message IDs
storeInsertRequiresOnConflict