UNPKG

comrak

Version:

Comrak is an efficient, extensible, and highly configurable Markdown parser and renderer, written in Rust and compiled to WebAssembly. Portable and agnostic, it works seamlessly in any WebAssembly-friendly JS runtime.

36 lines (35 loc) 1.63 kB
import { HeadingAdapter, SyntaxHighlighterAdapter } from "./_wasm.js"; import { type BrokenLinkCallbackFunction, Options, type URLRewriterFunction } from "./options.js"; export type OpenTagFunction = (attrs: Record<string, string>) => string; export declare function collectOptions(options?: Options): [ options: Omit<Options, "plugins">, syntaxAdapter: SyntaxHighlighterAdapter | null, headingAdapter: HeadingAdapter | null, brokenLinkCallback: BrokenLinkCallbackFunction | null, imageURLRewriter: URLRewriterFunction | null, linkURLRewriter: URLRewriterFunction | null ]; /** * Makes all properties in an object required, recursively. * * @template T - The object type to make required. * @internal */ export type RequiredDeep<T, E = never> = T extends E ? T : T extends Function ? T : T extends readonly [] | readonly [unknown, ...unknown[]] ? { [K in keyof T]-?: K extends `${number}` ? RequiredDeep<T[K], E> : T[K]; } : T extends readonly (infer U)[] ? RequiredDeep<U, E>[] : T extends object ? { [K in keyof T]-?: RequiredDeep<T[K], E>; } : T; /** * Creates a deep clone of an object's type, collapsing any nested objects and * intersections into new literal object types. */ export type CloneDeep<T> = T extends Function ? T : T extends readonly [] | readonly [unknown, ...unknown[]] ? { [K in keyof T]: K extends `${number}` ? CloneDeep<T[K]> : T[K]; } : T extends readonly (infer U)[] ? CloneDeep<U>[] : T extends object ? { [K in keyof T]: CloneDeep<T[K]>; } : T; /** * Creates a deep clone of an object. */ export declare function cloneDeep<T>(obj: T): CloneDeep<T>;