You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs/api.md documents props as PropTypes, and several entries are wrong #419
docs/api.md types every prop as PropTypes.string, PropTypes.bool, and so on — 16 rows
across four tables. There is no prop-types dependency in the repo. The props are
TypeScript, so the notation describes runtime validation that does not happen.
The file is already inconsistent with itself: the withLive() table types element as React.Element, which is not a real type either (React.ReactElement).
Auditing the tables to convert them turned up three entries that are wrong on the facts, not
just the notation.
language default is documented as jsx
| language | `PropTypes.string` | ... (Default: `jsx`) |
LiveProvider defaults it to tsx:
language="tsx",
LivePreview's Component is not a node
Documented as PropTypes.node. It is React.ElementType — a tag name or component, not
rendered output. node would be the wrong choice even in PropTypes terms (elementType).
transformCode's declared type contradicts its own call site
The docs say "accepts and returns the code to be transpiled", which matches what LiveProvider actually does:
consttransformResult=transformCode ? transformCode(newCode) : newCode;consttransformedCode=awaitPromise.resolve(transformResult);if(typeoftransformedCode!=="string"){thrownewError("Code failed to transform");}
The type says the return value is discarded:
transformCode?(code: string): void;
Here the docs are right and the source is wrong. TypeScript permits returning a value where void is expected, so callers are not broken — but anyone reading the declarations sees a
mutator. Should be string | Promise<string>.
Order
Fix transformCode's return type. Separate from the docs work: it ships in the published
declarations and needs a changeset.
Convert the four tables to TypeScript types, correcting language, Component, and element along the way.
While in there, LiveEditor takes Partial<EditorProps>, so the three documented props
are not its whole surface.
Activity
khaledOghli commentedon Sep 16, 2026
check this one : https://www.npmjs.com/package/next-live
ryan-roemer commentedon Sep 16, 2026
@khaledOghli How would that project help retrofitting the documented types in Markdown?