diff --git a/.changeset/rude-doors-beg.md b/.changeset/rude-doors-beg.md new file mode 100644 index 00000000..045bceba --- /dev/null +++ b/.changeset/rude-doors-beg.md @@ -0,0 +1,16 @@ +--- +"@dojoengine/state": patch +"template-vite-ts": patch +"@dojoengine/core": patch +"@dojoengine/create-burner": patch +"@dojoengine/create-dojo": patch +"@dojoengine/predeployed-connector": patch +"@dojoengine/react": patch +"@dojoengine/sdk": patch +"@dojoengine/torii-client": patch +"@dojoengine/torii-wasm": patch +"@dojoengine/utils": patch +"@dojoengine/utils-wasm": patch +--- + +fix: recs convertValues do not set to null diff --git a/examples/example-vite-react-phaser-recs/src/dojo/generated/contractComponents.ts b/examples/example-vite-react-phaser-recs/src/dojo/generated/contractComponents.ts index 73c3d1a4..24396f7e 100644 --- a/examples/example-vite-react-phaser-recs/src/dojo/generated/contractComponents.ts +++ b/examples/example-vite-react-phaser-recs/src/dojo/generated/contractComponents.ts @@ -54,7 +54,8 @@ export function defineContractComponents(world: World) { }, { metadata: { - name: "dojo_starter-Position", + namespace: "dojo_starter", + name: "Position", types: ["contractaddress", "u32", "u32"], customTypes: ["Vec2"], }, diff --git a/packages/state/src/__tests__/utils.test.ts b/packages/state/src/__tests__/utils.test.ts index e4eef5e5..9767f7f2 100644 --- a/packages/state/src/__tests__/utils.test.ts +++ b/packages/state/src/__tests__/utils.test.ts @@ -348,4 +348,17 @@ describe("convertValues", () => { const expected = {}; expect(convertValues(schema, values)).toEqual(expected); }); + it("should not set value to undefined", () => { + const schema: Schema = { + name: RecsType.String, + age: RecsType.Number, + }; + const values = { + name: { value: "Alice", type: "string" }, + }; + const expected = { + name: "Alice", + }; + expect(convertValues(schema, values)).toStrictEqual(expected); + }); }); diff --git a/packages/state/src/utils/index.ts b/packages/state/src/utils/index.ts index e4e2fcb6..878a0630 100644 --- a/packages/state/src/utils/index.ts +++ b/packages/state/src/utils/index.ts @@ -5,6 +5,12 @@ export function convertValues(schema: Schema, values: any) { let schemaType = schema[key]; let value = values[key]; + // If key in values is not present, no need to set it to null + // so we return the accumulator as is + if (undefined === value) { + return acc; + } + if (value == null) { acc[key] = value; return acc;