diff --git a/src/index.js b/src/index.js index 0898922f..a0a2b19f 100644 --- a/src/index.js +++ b/src/index.js @@ -67,5 +67,6 @@ export { equalSnapshots, PermanentUserData, // @TODO experimental tryGc, - transact + transact, + AbstractConnector } from './internals.js' diff --git a/src/internals.js b/src/internals.js index 9b1b22b8..d9ee9035 100644 --- a/src/internals.js +++ b/src/internals.js @@ -1,4 +1,5 @@ +export * from './utils/AbstractConnector.js' export * from './utils/DeleteSet.js' export * from './utils/Doc.js' export * from './utils/UpdateDecoder.js' diff --git a/src/utils/AbstractConnector.js b/src/utils/AbstractConnector.js new file mode 100644 index 00000000..aa81508d --- /dev/null +++ b/src/utils/AbstractConnector.js @@ -0,0 +1,26 @@ + +import { Observable } from 'lib0/observable.js' + +import { + Doc // eslint-disable-line +} from '../internals.js' + +/** + * This is an abstract interface that all Connectors should implement to keep them interchangeable. + * + * @note This interface is experimental and it is not advised to actually inherit this class. + * It just serves as typing information. + * + * @extends {Observable} + */ +export class AbstractConnector extends Observable { + /** + * @param {Doc} ydoc + * @param {any} awareness + */ + constructor (ydoc, awareness) { + super() + this.doc = ydoc + this.awareness = awareness + } +}