MCPcopy Create free account
hub / github.com/editablejs/editable / createProviderProtocol

Function createProviderProtocol

packages/protocols/src/provider.ts:28–53  ·  view source on GitHub ↗
(editor: Editor)

Source from the content-addressed store, hash-verified

26}
27
28export const createProviderProtocol = (editor: Editor): ProviderProtocol => {
29 const observable = new Observable<'connected' | 'disconnected'>()
30 const providerProtocol = {
31 connect: () => {
32 if (providerProtocol.connected()) {
33 throw new Error('already connected')
34 }
35 CONNECTED.add(editor)
36 observable.emit('connected', [editor])
37 },
38 disconnect: () => {
39 CONNECTED.delete(editor)
40 observable.emit('disconnected', [editor])
41 },
42 connected: () => {
43 return CONNECTED.has(editor)
44 },
45 on: (event: 'connected' | 'disconnected', handler: (editor: Editor) => void) => {
46 observable.on(event, handler)
47 },
48 off: (event: 'connected' | 'disconnected', handler: (editor: Editor) => void) => {
49 observable.off(event, handler)
50 },
51 }
52 return providerProtocol
53}
54
55export const withProviderProtocol = (editor: Editor) => {
56 let providerProtocol = PROVIDERS.get(editor)

Callers 1

withProviderProtocolFunction · 0.85

Calls 3

emitMethod · 0.80
onMethod · 0.80
offMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…