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
TypeScript
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>;