{"version":3,"file":"Serializer.mjs","sources":["../../../src/serializer/Serializer.ts"],"sourcesContent":["import type { Iterator } from \"@colyseus/schema\";\n\nexport type BufferLike = number[] | Uint8Array | Buffer;\n\nexport interface Serializer<State> {\n    setState(data: BufferLike, it?: Iterator): void;\n    getState(): State;\n\n    patch(data: BufferLike, it?: Iterator): void;\n    teardown(): void;\n\n    handshake?(bytes: BufferLike, it?: any): void;\n}\n\nconst serializers: { [id: string]: any } = {};\n\nexport function registerSerializer (id: string, serializer: any) {\n    serializers[id] = serializer;\n}\n\nexport function getSerializer (id: string) {\n    const serializer = serializers[id];\n    if (!serializer) { throw new Error(\"missing serializer: \" + id); }\n    return serializer;\n}"],"names":[],"mappings":";AAcA,MAAM,WAAW,GAA0B,EAAE;AAE7B,SAAA,kBAAkB,CAAE,EAAU,EAAE,UAAe,EAAA;AAC3D,IAAA,WAAW,CAAC,EAAE,CAAC,GAAG,UAAU;AAChC;AAEM,SAAU,aAAa,CAAE,EAAU,EAAA;AACrC,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC,UAAU,EAAE;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC;;AAC/D,IAAA,OAAO,UAAU;AACrB;;;;"}