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

View File

@ -248,6 +248,21 @@ export const callTypeObservers = (type, transaction, event) => {
callEventHandlerListeners(changedType._eH, event, transaction) 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 * @template EventType
* Abstract Yjs Type class * Abstract Yjs Type class
@ -285,6 +300,8 @@ export class AbstractType {
* @type {null | Array<ArraySearchMarker>} * @type {null | Array<ArraySearchMarker>}
*/ */
this._searchMarker = null this._searchMarker = null
callEventHandlerListeners(typeCreatedEventHandler, this, undefined);
} }
/** /**