add typeCreatedEventHandler

This commit is contained in:
Yousef El-Dardiry 2021-05-05 11:41:27 +02:00
parent 3188b53351
commit 8706bbb044
2 changed files with 20 additions and 4 deletions

View File

@ -1,7 +1,7 @@
export {
Doc,
Transaction,
observeTypeCreated,
YArray as Array,
YMap as Map,
YText as Text,
@ -25,7 +25,6 @@ export {
ContentAny,
ContentString,
ContentType,
typeRefs,
AbstractType,
RelativePosition,
getTypeChildren,
@ -82,5 +81,5 @@ export {
encodeRelativePosition,
decodeRelativePosition,
diffUpdate,
diffUpdateV2
} from './internals.js'
diffUpdateV2,
} from "./internals.js";

View File

@ -248,6 +248,21 @@ export const callTypeObservers = (type, transaction, event) => {
callEventHandlerListeners(changedType._eH, event, transaction)
}
/**
* Event handlers
* @type {EventHandler<AbstractType<any>, undefined>}
*/
const typeCreatedEventHandler = createEventHandler();
/**
* Observe all events that are created on this type.
*
* @param {function(AbstractType<any>, undefined):void} f Observer function
*/
export function observeTypeCreated (f) {
addEventHandlerListener(typeCreatedEventHandler, f)
}
/**
* @template EventType
* Abstract Yjs Type class
@ -285,6 +300,8 @@ export class AbstractType {
* @type {null | Array<ArraySearchMarker>}
*/
this._searchMarker = null
callEventHandlerListeners(typeCreatedEventHandler, this, undefined);
}
/**