Skip to content

Commit 3574ea2

Browse files
authored
feat: add re-export serializeForClipboard function from prosemirror-view (#107)
1 parent 7a08e9d commit 3574ea2

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

src/extensions/behavior/Clipboard/clipboard.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,13 @@ import type {EditorView} from 'prosemirror-view';
22
import {Fragment, Schema, Slice} from 'prosemirror-model';
33
import {EditorState, Selection, Plugin} from 'prosemirror-state';
44

5-
// @ts-expect-error internal types
6-
import {__serializeForClipboard} from 'prosemirror-view';
7-
if (!__serializeForClipboard)
8-
throw new Error('__serializeForClipboard not exported from prosemirror-view module.');
9-
10-
type SerializeForClipboard = (view: EditorView, slice: Slice) => {dom: HTMLElement; text: string};
11-
const serializeForClipboard: SerializeForClipboard = __serializeForClipboard;
12-
135
import '../../../types/spec';
146

157
import {logger} from '../../../logger';
168
import {tryCatch} from '../../../utils/helpers';
179
import {Parser, Serializer, trackTransactionMetrics} from '../../../core';
1810
import {isTextSelection, isNodeSelection, isWholeSelection} from '../../../utils/selection';
11+
import {serializeForClipboard} from '../../../utils/serialize-for-clipboard';
1912
import {BaseNode, pType} from '../../base/BaseSchema';
2013

2114
import {isInsideCode} from './code';

src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,6 @@ export * from './table-utils';
2828
export type {NodeChild} from './utils/nodes';
2929
export {getChildrenOfNode, getLastChildOfNode} from './utils/nodes';
3030

31+
export {serializeForClipboard} from './utils/serialize-for-clipboard';
32+
3133
export * from './utils/event-emitter';
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import type {Slice} from 'prosemirror-model';
2+
import type {EditorView} from 'prosemirror-view';
3+
4+
declare module 'prosemirror-view' {
5+
type SerializeForClipboard = (
6+
view: EditorView,
7+
slice: Slice,
8+
) => {dom: HTMLElement; text: string};
9+
10+
// internal export
11+
export const __serializeForClipboard: SerializeForClipboard;
12+
}
13+
14+
import {__serializeForClipboard} from 'prosemirror-view';
15+
16+
if (!__serializeForClipboard)
17+
throw new Error('__serializeForClipboard not exported from prosemirror-view module.');
18+
19+
export {__serializeForClipboard as serializeForClipboard};

0 commit comments

Comments
 (0)