Try it
No server round trip: promo/vendor/polytypo.browser.js is
src/index.ts bundled against the same locale data the npm package will ship with
once it is published. Each locale starts with its own default example; edit it, or switch
languages to see how the same idea is punctuated differently everywhere.
The call the form above is making, right now
Every field's own comment carries its type, default and allowed values.
None of them fall back to a default when the value is wrong or missing — each
throws its own error, with a machine-readable code, rather than guessing what you
meant. Full option and error-code reference — Docs.
Idempotency is a headline claim, not just a property test: paste the output back into the input and nothing should change.
No hard size limit on transform() — ordinary prose runs at roughly 250K characters
per second, so even a full novel pasted in typesets in a couple of seconds. Pathological input
(long runs of alternating quote or dash characters with no real content between them) is
measurably slower, since a couple of rules re-check their own output to guarantee idempotency —
real text never has that shape, so this only matters if you're piping in machine-generated or
adversarial input.