Skip to content

Commit 18a507c

Browse files
committed
fix Callbacks.get() type resolution when referencing from different @colyseus/schema versions
1 parent da227cf commit 18a507c

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@colyseus/schema",
3-
"version": "4.0.9",
3+
"version": "4.0.10",
44
"description": "Binary state serializer with delta encoding for games",
55
"type": "module",
66
"bin": {

src/decoder/strategy/Callbacks.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -485,11 +485,13 @@ export const Callbacks = {
485485
* @param roomOrDecoder - Room or Decoder instance to get the callbacks for.
486486
* @returns the new callbacks standard API.
487487
*/
488-
get<T extends IRef>(roomOrDecoder: Decoder<T> | { serializer: { decoder: Decoder<T> } }): StateCallbackStrategy<T> {
488+
get<T extends IRef>(
489+
roomOrDecoder: Decoder<T> | { serializer: { decoder: Decoder<T> } } | { state: T; serializer: object }
490+
): StateCallbackStrategy<T> {
489491
if (roomOrDecoder instanceof Decoder) {
490492
return new StateCallbackStrategy<T>(roomOrDecoder);
491493

492-
} else if (roomOrDecoder.serializer.decoder) {
494+
} else if ('decoder' in roomOrDecoder.serializer) {
493495
return new StateCallbackStrategy<T>(roomOrDecoder.serializer.decoder);
494496

495497
} else {
@@ -505,11 +507,13 @@ export const Callbacks = {
505507
* @param roomOrDecoder - Room or Decoder instance to get the legacy callbacks for.
506508
* @returns the legacy callbacks API.
507509
*/
508-
getLegacy<T extends Schema>(roomOrDecoder: Decoder<T> | { serializer: { decoder: Decoder<T> } }): SchemaCallbackProxy<T> {
510+
getLegacy<T extends Schema>(
511+
roomOrDecoder: Decoder<T> | { serializer: { decoder: Decoder<T> } } | { state: T; serializer: object }
512+
): SchemaCallbackProxy<T> {
509513
if (roomOrDecoder instanceof Decoder) {
510514
return getDecoderStateCallbacks(roomOrDecoder);
511515

512-
} else if (roomOrDecoder.serializer.decoder) {
516+
} else if ('decoder' in roomOrDecoder.serializer) {
513517
return getDecoderStateCallbacks(roomOrDecoder.serializer.decoder);
514518
}
515519
},

0 commit comments

Comments
 (0)