Skip to content

Commit 0d01806

Browse files
committed
Callbacks: trigger onAdd if .previousValue !== .value #197
1 parent 3d11fa6 commit 0d01806

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
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": "3.0.33",
3+
"version": "3.0.34",
44
"description": "Binary state serializer with delta encoding for games",
55
"bin": {
66
"schema-codegen": "bin/schema-codegen",

src/decoder/strategy/StateCallbacks.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,10 @@ export function getDecoderStateCallbacks<T extends Schema>(decoder: Decoder<T>):
185185
}
186186
}
187187

188-
} else if ((change.op & OPERATION.ADD) === OPERATION.ADD && change.previousValue === undefined) {
188+
} else if (
189+
(change.op & OPERATION.ADD) === OPERATION.ADD &&
190+
change.previousValue !== change.value
191+
) {
189192
// triger onAdd
190193
const addCallbacks = $callbacks[OPERATION.ADD];
191194
for (let i = addCallbacks?.length - 1; i >= 0; i--) {

test/ArraySchema.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as assert from "assert";
22

33
import { State, Player, getCallbacks, getEncoder, createInstanceFromReflection, getDecoder, assertDeepStrictEqualEncodeAll, assertRefIdCounts } from "./Schema";
4-
import { ArraySchema, Schema, type, Reflection, $changes, MapSchema, ChangeTree } from "../src";
4+
import { ArraySchema, Schema, type, Reflection, $changes, MapSchema, ChangeTree, schema } from "../src";
55

66
describe("ArraySchema Tests", () => {
77

test/callbacks/StateCallbacks.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ describe("StateCallbacks", () => {
256256
});
257257

258258
describe("ArraySchema", () => {
259-
xit("consecutive shift + unshift should trigger onAdd at 0 index", () => {
259+
it("consecutive shift + unshift should trigger onAdd at 0 index", () => {
260260
class Card extends Schema {
261261
@type("string") suit: string;
262262
@type("number") num: number;

0 commit comments

Comments
 (0)