A finished result from roll or evaluate
Per-die markers; defaults to MARKDOWN_MARKS
The rendered breakdown
import { roll } from 'roll-parser';
import { renderBreakdown } from 'roll-parser/render';
import { createMockRng } from 'roll-parser/testing';
const result = roll('4d6kh3', { rng: createMockRng([3, 6, 2, 5]) });
renderBreakdown(result); // '4d6[3, 6, ~~2~~, 5] = 14'
renderBreakdown(result, {}); // '4d6[3, 6, 2, 5] = 14'
renderBreakdown(result, {
dropped: (_die, text) => `<s>${text}</s>`,
critical: (_die, text) => `<b>${text}</b>`,
}); // '4d6[3, <b>6</b>, <s>2</s>, 5] = 14'
Rebuilds a roll's breakdown from
RollResult.parts, applyingmarksto every die.With no
marksthe output is byte-identical toRollResult.rendered— a property test pins that over generated notation. Pass any object to take over: omitted slots render plain, so{}strips markup entirely and{ ...MARKDOWN_MARKS, critical: … }keeps the rest of the markdown.The trailing
= <total>is included, and becomes the degree label for avsroll, exactly asrendereddoes.