yjs/utils/structReferences.mjs
2018-11-25 22:39:50 +01:00

35 lines
654 B
JavaScript

/**
* @module utils
*/
const structs = new Map()
const references = new Map()
/**
* Register a new Yjs types. The same type must be defined with the same
* reference on all clients!
*
* @param {Number} reference
* @param {Function} structConstructor
*
* @public
*/
export const registerStruct = (reference, structConstructor) => {
structs.set(reference, structConstructor)
references.set(structConstructor, reference)
}
/**
* @private
*/
export const getStruct = (reference) => {
return structs.get(reference)
}
/**
* @private
*/
export const getStructReference = (typeConstructor) => {
return references.get(typeConstructor)
}