Skip to content

Commit

Permalink
force getStateCallbacks() to return SchemaCallback<T>
Browse files Browse the repository at this point in the history
  • Loading branch information
endel committed Feb 28, 2025
1 parent 836b319 commit 98bf68c
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 22 deletions.
36 changes: 18 additions & 18 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "colyseus.js",
"version": "0.16.5",
"version": "0.16.6",
"description": "Colyseus Multiplayer SDK for JavaScript/TypeScript",
"author": "Endel Dreyer",
"license": "MIT",
Expand Down Expand Up @@ -59,7 +59,7 @@
},
"dependencies": {
"@colyseus/msgpackr": "^1.10.5",
"@colyseus/schema": "^3.0.0",
"@colyseus/schema": "^3.0.14",
"httpie": "^2.0.0-next.13",
"tslib": "^2.1.0",
"ws": "^8.13.0"
Expand Down
2 changes: 2 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import { SchemaSerializer, getStateCallbacks } from "./serializer/SchemaSerializ
import { NoneSerializer } from "./serializer/NoneSerializer";
import { registerSerializer } from './serializer/Serializer';

export type { SchemaCallback } from '@colyseus/schema';

export { registerSerializer, SchemaSerializer, getStateCallbacks };
registerSerializer('schema', SchemaSerializer);
registerSerializer('none', NoneSerializer);
4 changes: 2 additions & 2 deletions src/serializer/SchemaSerializer.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Serializer } from "./Serializer";
import { Schema, Decoder, Reflection, Iterator, getDecoderStateCallbacks } from "@colyseus/schema";
import { Schema, Decoder, Reflection, Iterator, getDecoderStateCallbacks, type SchemaCallback } from "@colyseus/schema";
import type { Room } from "../Room";

export type SchemaConstructor<T = Schema> = new (...args: any[]) => T;

export function getStateCallbacks<T extends Schema>(room: Room<T>) {
return getDecoderStateCallbacks((room['serializer'] as unknown as SchemaSerializer<T>).decoder);
return getDecoderStateCallbacks((room['serializer'] as unknown as SchemaSerializer<T>).decoder) as unknown as SchemaCallback<T>;
}

export class SchemaSerializer<T extends Schema = any> implements Serializer<T> {
Expand Down

0 comments on commit 98bf68c

Please sign in to comment.