From 9a44a03183551d3a06b4a328eb2d18e76fa4b1bf Mon Sep 17 00:00:00 2001 From: Daniil Dotsev Date: Wed, 9 Jan 2019 11:34:42 +0200 Subject: [PATCH] Update @guardian/prosemirror-invisibles typings --- .../guardian__prosemirror-invisibles-tests.ts | 9 +++++++-- .../index.d.ts | 18 +++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/types/guardian__prosemirror-invisibles/guardian__prosemirror-invisibles-tests.ts b/types/guardian__prosemirror-invisibles/guardian__prosemirror-invisibles-tests.ts index 6a31efb820..38398d9830 100644 --- a/types/guardian__prosemirror-invisibles/guardian__prosemirror-invisibles-tests.ts +++ b/types/guardian__prosemirror-invisibles/guardian__prosemirror-invisibles-tests.ts @@ -1,3 +1,8 @@ -import invisibles, { hardBreak, paragraph, space } from 'guardian__prosemirror-invisibles'; +import { Node } from 'prosemirror-model'; +import { Plugin } from 'prosemirror-state'; -const plugin = invisibles([hardBreak, paragraph, space]); +import invisibles, { hardBreak, paragraph, space, Builder } from 'guardian__prosemirror-invisibles'; + +const plugin1: Plugin = invisibles([hardBreak((node: Node) => true), paragraph(), space((char: string) => false)]); + +const plugin2: Plugin = invisibles([hardBreak(), paragraph((node: Node) => false), space()]); diff --git a/types/guardian__prosemirror-invisibles/index.d.ts b/types/guardian__prosemirror-invisibles/index.d.ts index b2e2434662..f3453cd6ec 100644 --- a/types/guardian__prosemirror-invisibles/index.d.ts +++ b/types/guardian__prosemirror-invisibles/index.d.ts @@ -1,17 +1,25 @@ -// Type definitions for @guardian/prosemirror-invisibles 0.1 +// Type definitions for @guardian/prosemirror-invisibles 1.0 // Project: https://github.com/guardian/prosemirror-invisibles // Definitions by: Daniil Dotsev // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 import { Node } from 'prosemirror-model'; -import { DecorationSet } from "prosemirror-view"; +import { Decoration, DecorationSet } from "prosemirror-view"; import { Plugin } from 'prosemirror-state'; export type Builder = (from: number, to: number, doc: Node, decos: DecorationSet) => DecorationSet; +export interface TextBetweenPosition { + pos: number; + text: string; +} + export default function(builders: Builder[]): Plugin; -export const hardBreak: Builder; -export const paragraph: Builder; -export const space: Builder; +export function hardBreak(predicate?: (node: Node) => boolean): Builder; +export function paragraph(predicate?: (node: Node) => boolean): Builder; +export function space(predicate?: (char: string) => boolean): Builder; + +export function createDeco(pos: number, type: string): Decoration; +export function textBetween(from: number, to: number, doc: Node): TextBetweenPosition[];