prosemirror-test-builder
Version:
Helpers for programatically building ProseMirror test documents
53 lines (49 loc) • 1.89 kB
TypeScript
import * as orderedmap from 'orderedmap';
import * as prosemirror_model from 'prosemirror-model';
import { Attrs, Node, Schema } from 'prosemirror-model';
declare type Tags = {
[tag: string]: number;
};
declare type ChildSpec = string | Node | {
flat: readonly Node[];
tag: Tags;
};
declare type NodeBuilder = (attrsOrFirstChild?: Attrs | ChildSpec, ...children: ChildSpec[]) => Node & {
tag: Tags;
};
declare type MarkBuilder = (attrsOrFirstChild?: Attrs | ChildSpec, ...children: ChildSpec[]) => ChildSpec;
declare type Builders<S extends Schema> = {
schema: S;
} & {
[key in keyof S['nodes']]: NodeBuilder;
} & {
[key in keyof S['marks']]: MarkBuilder;
} & {
[name: string]: NodeBuilder | MarkBuilder;
};
declare function builders<Nodes extends string = any, Marks extends string = any>(schema: Schema<Nodes, Marks>, names?: {
[name: string]: Attrs;
}): Builders<Schema<Nodes, Marks>>;
declare const schema: Schema<keyof orderedmap.default<prosemirror_model.NodeSpec>, keyof orderedmap.default<prosemirror_model.MarkSpec>>;
declare function eq<T extends {
eq(other: T): boolean;
}>(a: T, b: T): boolean;
declare const doc: NodeBuilder;
declare const p: NodeBuilder;
declare const code_block: NodeBuilder;
declare const pre: NodeBuilder;
declare const h1: NodeBuilder;
declare const h2: NodeBuilder;
declare const h3: NodeBuilder;
declare const li: NodeBuilder;
declare const ul: NodeBuilder;
declare const ol: NodeBuilder;
declare const img: NodeBuilder;
declare const hr: NodeBuilder;
declare const br: NodeBuilder;
declare const blockquote: NodeBuilder;
declare const a: MarkBuilder;
declare const em: MarkBuilder;
declare const strong: MarkBuilder;
declare const code: MarkBuilder;
export { MarkBuilder, NodeBuilder, a, blockquote, br, builders, code, code_block, doc, em, eq, h1, h2, h3, hr, img, li, ol, p, pre, schema, strong, ul };