moderator-toolbox-nxg-for-reddit / util/wiki/mutateWikiPage
util/wiki/mutateWikiPage¶
Functions¶
mutateWikiPage()¶
mutateWikiPage<
T,R>(config):Promise<R>
Defined in: extension/data/util/wiki/mutateWikiPage.ts:113
Serialized, conflict-safe mutation of a single wiki page.
Type Parameters¶
T¶
T
R¶
R
Parameters¶
config¶
MutateWikiPageConfig<T, R>
The mutation configuration (see MutateWikiPageConfig).
Returns¶
Promise<R>
The mutator’s result. Rejects on transport failure, a refusal (parse-time,
write-time, or mutator abort), or after exhausting conflict retries.
Interfaces¶
MutateWikiPageConfig¶
Defined in: extension/data/util/wiki/mutateWikiPage.ts:72
Configuration for a single mutateWikiPage call.
Type Parameters¶
T¶
T
R¶
R
Properties¶
backoff?¶
optionalbackoff?: (attempt) =>Promise<void>
Defined in: extension/data/util/wiki/mutateWikiPage.ts:102
Delay before re-attempting after a 409 conflict (receives the just-failed attempt
index). Defaults to exponential backoff with jitter; pass () => Promise.resolve()
to retry immediately (e.g. in tests).
Parameters¶
attempt¶
number
Returns¶
Promise<void>
codec¶
codec:
WikiPageCodec<T>
Defined in: extension/data/util/wiki/mutateWikiPage.ts:78
The payload codec for this page.
maxAttempts?¶
optionalmaxAttempts?:number
Defined in: extension/data/util/wiki/mutateWikiPage.ts:96
Override the retry bound (default DEFAULT_MAX_ATTEMPTS).
mutator¶
mutator:
WikiMutator<T,R>
Defined in: extension/data/util/wiki/mutateWikiPage.ts:82
The mutation to apply (see WikiMutator).
onCommit?¶
optionalonCommit?: (subreddit,data) =>void
Defined in: extension/data/util/wiki/mutateWikiPage.ts:92
Side effect after a committed write (e.g. refresh cache + emit a change event).
Parameters¶
subreddit¶
string
data¶
T
Returns¶
void
onNoop?¶
optionalonNoop?: (subreddit,data) =>void
Defined in: extension/data/util/wiki/mutateWikiPage.ts:94
Side effect on a no-write outcome (e.g. refresh the display cache with read data).
Parameters¶
subreddit¶
string
data¶
T
Returns¶
void
page¶
page:
string
Defined in: extension/data/util/wiki/mutateWikiPage.ts:76
The wiki page path (also part of the serialization key).
reason¶
reason:
string
Defined in: extension/data/util/wiki/mutateWikiPage.ts:80
The wiki revision note.
refuseWrite?¶
optionalrefuseWrite?: (data) =>string|undefined
Defined in: extension/data/util/wiki/mutateWikiPage.ts:90
Optional pre-write guard, re-checked each attempt (including against the fresh
data a 409 surfaces). Return a reason string to refuse the write - the call
rejects with that message - or undefined to proceed.
Parameters¶
data¶
T
Returns¶
string | undefined
subreddit¶
subreddit:
string
Defined in: extension/data/util/wiki/mutateWikiPage.ts:74
The subreddit the page belongs to (also part of the serialization key).
writeOptions¶
writeOptions:
WikiVersionedWriteOptions
Defined in: extension/data/util/wiki/mutateWikiPage.ts:84
Per-page write behavior (visibility, tab handling, reason format).
Type Aliases¶
MutatorOutcome¶
MutatorOutcome<
R> = {result:R;write:true; } | {result:R;write:false; } | {abort:Error;write:false; }
Defined in: extension/data/util/wiki/mutateWikiPage.ts:59
The outcome of applying a mutator to the current page data.
write: true- the mutator changeddata; persist it and resolve withresult.write: falsewithresult- no change is warranted (e.g. target already resolved); skip the write and resolve withresult.write: falsewithabort- refuse to proceed; reject with the given error.
Type Parameters¶
R¶
R
WikiMutator¶
WikiMutator<
T,R> = (data) =>MutatorOutcome<R>
Defined in: extension/data/util/wiki/mutateWikiPage.ts:69
A mutation applied to a page’s data. Receives the current (mutable) data and returns whether to persist plus a typed result. Re-invoked with fresh data on every conflict retry, so it must re-derive its decision from the data it is given.
Type Parameters¶
T¶
T
R¶
R
Parameters¶
data¶
T