Skip to main content

Type Alias: ExtenderWrapper<TProps>

ExtenderWrapper<TProps> = (next) => EditExtender<TProps>

Defined in: model/edit-request.ts:85

How installing an extender composes. next is the hook's current occupant — the identity function when nothing has claimed it yet.

ctx.edits.setExtender(() => myExtender); // replace
ctx.edits.setExtender((next) => (request) => mergeEntryEdits(next(request), mine(request))); // tap in

mergeEntryEdits is exported from the package (#197). A spread merges the two maps wrongly: two extenders that write the same Entry lose the earlier write.

data/ still holds one field and calls it at one site. Wrapping order is the order requires resolves, never the plugins array's own order.

Lives beside EditExtender, not in plugin.ts (#466): EditExtender now names WriteTarget (write-verdict.ts), which reaches plugin.ts through error-report.ts's PluginId import — plugin.ts importing back from here would cycle.

Type Parameters​

TProps​

TProps = Record<string, unknown>

Parameters​

next​

EditExtender<TProps>

Returns​

EditExtender<TProps>