From afbd87bde9c28515e2c555af03ef9cd0c41b8efa Mon Sep 17 00:00:00 2001 From: ponderingdemocritus Date: Fri, 1 Dec 2023 20:39:44 +0100 Subject: [PATCH 1/7] bump and update --- bun.lockb | Bin 433384 -> 437464 bytes packages/core/package.json | 2 +- packages/create-burner/package.json | 2 +- packages/create-dojo/bin/index.d.ts | 0 packages/create-dojo/bin/index.js | 140 +++++++++++++------------- packages/create-dojo/bin/index.js.map | 2 +- packages/create-dojo/package.json | 2 +- packages/react/package.json | 2 +- packages/torii-client/package.json | 2 +- packages/torii-wasm/package.json | 2 +- packages/utils/package.json | 2 +- 11 files changed, 76 insertions(+), 80 deletions(-) mode change 100644 => 100755 packages/create-dojo/bin/index.d.ts diff --git a/bun.lockb b/bun.lockb index 94ad39aa44851925543a86a9befd769d41e97949..6791168d6cd758022380b43775ca9c6473acfd6e 100755 GIT binary patch delta 14095 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 delta 11747 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 U@tw9iR-Iev(@=$d?X%`T0BpmJD*ylh diff --git a/packages/core/package.json b/packages/core/package.json index 47e45fcd92..0688329502 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@dojoengine/core", - "version": "0.1.55", + "version": "0.1.56", "description": "Dojo engine core providers and types", "type": "module", "scripts": { diff --git a/packages/create-burner/package.json b/packages/create-burner/package.json index 5ef378506f..085dab789d 100644 --- a/packages/create-burner/package.json +++ b/packages/create-burner/package.json @@ -1,6 +1,6 @@ { "name": "@dojoengine/create-burner", - "version": "0.1.55", + "version": "0.1.56", "description": "Useful hooks and functions to create a Starknet burner wallet", "source": "src/index.ts", "main": "dist/index.js", diff --git a/packages/create-dojo/bin/index.d.ts b/packages/create-dojo/bin/index.d.ts old mode 100644 new mode 100755 diff --git a/packages/create-dojo/bin/index.js b/packages/create-dojo/bin/index.js index faf946967b..65a91b4660 100755 --- a/packages/create-dojo/bin/index.js +++ b/packages/create-dojo/bin/index.js @@ -7,87 +7,83 @@ import path from "path"; import * as fs from "fs"; import { input, select } from "@inquirer/prompts"; var templates = [ - { - value: "react-app", - description: "React app using Dojo", - }, - { - value: "react-phaser-example", - description: "React/Phaser app using Dojo", - }, + { + value: "react-app", + description: "React app using Dojo" + }, + { + value: "react-phaser-example", + description: "React/Phaser app using Dojo" + } ]; run(); async function run() { - try { - const { template, projectName } = await prompt(); - console.log(`Downloading ${template}...`); - spawn.sync("npx", [ - "degit", - `dojoengine/dojo.js/examples/${template}`, - `${projectName}`, - ]); - await rewritePackageJson(projectName); - console.log(`Downloading dojo-starter...`); - spawn.sync("npx", ["degit", `dojoengine/dojo-starter`, `dojo-starter`]); - } catch (e) { - console.log(e); - } + try { + const { template, projectName } = await prompt(); + console.log(`Downloading ${template}...`); + spawn.sync("npx", [ + "degit", + `dojoengine/dojo.js/examples/${template}`, + `${projectName}` + ]); + await rewritePackageJson(projectName); + console.log(`Downloading dojo-starter...`); + spawn.sync("npx", ["degit", `dojoengine/dojo-starter`, `dojo-starter`]); + } catch (e) { + console.log(e); + } } async function rewritePackageJson(projectName) { - const packageJsonPath = path.join( - process.cwd(), - projectName, - "package.json" - ); - const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8")); - const latestVersion = await getLatestVersion(); - packageJson.name = projectName; - for (let dep of Object.keys(packageJson.dependencies)) { - if ( - dep.startsWith("@dojoengine") && - packageJson.dependencies[dep].startsWith("link:") - ) { - packageJson.dependencies[dep] = latestVersion; - } + const packageJsonPath = path.join( + process.cwd(), + projectName, + "package.json" + ); + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8")); + const latestVersion = await getLatestVersion(); + packageJson.name = projectName; + for (let dep of Object.keys(packageJson.dependencies)) { + if (dep.startsWith("@dojoengine") && packageJson.dependencies[dep].startsWith("link:")) { + packageJson.dependencies[dep] = latestVersion; } - fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); + } + fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); } async function prompt() { - const template = await select({ - message: "Select a template", - choices: templates, - }); - const projectName = await input({ - message: "Project name ", - validate: (input2) => { - if (/^([A-Za-z\-\_\d])+$/.test(input2)) return true; - else - return "Project name may only include letters, numbers, underscores and hashes."; - }, - default: template, - }); - return { template, projectName }; + const template = await select({ + message: "Select a template", + choices: templates + }); + const projectName = await input({ + message: "Project name ", + validate: (input2) => { + if (/^([A-Za-z\-\_\d])+$/.test(input2)) + return true; + else + return "Project name may only include letters, numbers, underscores and hashes."; + }, + default: template + }); + return { template, projectName }; } async function getLatestVersion() { - return new Promise((resolve, reject) => { - https - .get( - "https://registry.npmjs.org/-/package/@dojoengine/core/dist-tags", - (res) => { - if (res.statusCode === 200) { - let body = ""; - res.on("data", (data) => (body += data)); - res.on("end", () => { - resolve(JSON.parse(body).latest); - }); - } else { - reject(); - } - } - ) - .on("error", () => { - reject(); - }); + return new Promise((resolve, reject) => { + https.get( + "https://registry.npmjs.org/-/package/@dojoengine/core/dist-tags", + (res) => { + if (res.statusCode === 200) { + let body = ""; + res.on("data", (data) => body += data); + res.on("end", () => { + resolve(JSON.parse(body).latest); + }); + } else { + reject(); + } + } + ).on("error", () => { + reject(); }); + }); } -//# sourceMappingURL=index.js.map +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/create-dojo/bin/index.js.map b/packages/create-dojo/bin/index.js.map index e371ce8e82..4db620cf1f 100644 --- a/packages/create-dojo/bin/index.js.map +++ b/packages/create-dojo/bin/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport https from 'https';\nimport spawn from 'cross-spawn';\nimport path from \"path\";\nimport * as fs from \"fs\";\n\nimport { input, select } from '@inquirer/prompts';\n\nconst templates = [\n {\n value: 'react-app',\n description: 'React app using Dojo',\n },\n {\n value: 'react-phaser-example',\n description: 'React/Phaser app using Dojo',\n },\n]\n\nrun();\n\nasync function run() {\n\n try {\n const { template, projectName } = await prompt();\n\n // clone template using degit into projectName directory\n console.log(`Downloading ${template}...`)\n spawn.sync(\"npx\", [\"degit\", `dojoengine/dojo.js/examples/${template}`, `${projectName}`])\n\n // rewrite package.json\n await rewritePackageJson(projectName);\n\n // clone dojo-starter\n console.log(`Downloading dojo-starter...`)\n spawn.sync(\"npx\", [\"degit\", `dojoengine/dojo-starter`, `dojo-starter`])\n\n } catch (e: any) {\n console.log(e)\n }\n\n}\n\n\nasync function rewritePackageJson(projectName: string) {\n\n const packageJsonPath = path.join(process.cwd(), projectName, 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\"));\n const latestVersion = await getLatestVersion();\n\n // rename using projectName\n packageJson.name = projectName;\n\n // rewrite all link:dojo-packages/packages/... with latest version\n for (let dep of Object.keys(packageJson.dependencies)) {\n if (dep.startsWith(\"@dojoengine\") && packageJson.dependencies[dep].startsWith(\"link:\")) {\n packageJson.dependencies[dep] = latestVersion\n }\n }\n\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));\n\n}\n\nasync function prompt(): Promise<{ template: string, projectName: string }> {\n\n const template = await select({\n message: 'Select a template',\n choices: templates\n });\n\n const projectName = await input({\n message: \"Project name \", validate: (input: string) => {\n if (/^([A-Za-z\\-\\_\\d])+$/.test(input)) return true;\n else return 'Project name may only include letters, numbers, underscores and hashes.';\n },\n default: template\n })\n\n return { template, projectName }\n\n}\n\nasync function getLatestVersion(): Promise {\n return new Promise((resolve, reject) => {\n https\n .get(\n 'https://registry.npmjs.org/-/package/@dojoengine/core/dist-tags',\n res => {\n if (res.statusCode === 200) {\n let body = '';\n res.on('data', data => (body += data));\n res.on('end', () => {\n resolve(JSON.parse(body).latest);\n });\n } else {\n reject();\n }\n }\n )\n .on('error', () => {\n reject();\n });\n });\n}"],"mappings":";;;AAEA,OAAO,WAAW;AAClB,OAAO,WAAW;AAClB,OAAO,UAAU;AACjB,YAAY,QAAQ;AAEpB,SAAS,OAAO,cAAc;AAE9B,IAAM,YAAY;AAAA,EACd;AAAA,IACI,OAAO;AAAA,IACP,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,IACI,OAAO;AAAA,IACP,aAAa;AAAA,EACjB;AACJ;AAEA,IAAI;AAEJ,eAAe,MAAM;AAEjB,MAAI;AACA,UAAM,EAAE,UAAU,YAAY,IAAI,MAAM,OAAO;AAG/C,YAAQ,IAAI,eAAe,QAAQ,KAAK;AACxC,UAAM,KAAK,OAAO,CAAC,SAAS,+BAA+B,QAAQ,IAAI,GAAG,WAAW,EAAE,CAAC;AAGxF,UAAM,mBAAmB,WAAW;AAGpC,YAAQ,IAAI,6BAA6B;AACzC,UAAM,KAAK,OAAO,CAAC,SAAS,2BAA2B,cAAc,CAAC;AAAA,EAE1E,SAAS,GAAQ;AACb,YAAQ,IAAI,CAAC;AAAA,EACjB;AAEJ;AAGA,eAAe,mBAAmB,aAAqB;AAEnD,QAAM,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAG,aAAa,cAAc;AAC5E,QAAM,cAAc,KAAK,MAAS,gBAAa,iBAAiB,OAAO,CAAC;AACxE,QAAM,gBAAgB,MAAM,iBAAiB;AAG7C,cAAY,OAAO;AAGnB,WAAS,OAAO,OAAO,KAAK,YAAY,YAAY,GAAG;AACnD,QAAI,IAAI,WAAW,aAAa,KAAK,YAAY,aAAa,GAAG,EAAE,WAAW,OAAO,GAAG;AACpF,kBAAY,aAAa,GAAG,IAAI;AAAA,IACpC;AAAA,EACJ;AAEA,EAAG,iBAAc,iBAAiB,KAAK,UAAU,aAAa,MAAM,CAAC,CAAC;AAE1E;AAEA,eAAe,SAA6D;AAExE,QAAM,WAAW,MAAM,OAAO;AAAA,IAC1B,SAAS;AAAA,IACT,SAAS;AAAA,EACb,CAAC;AAED,QAAM,cAAc,MAAM,MAAM;AAAA,IAC5B,SAAS;AAAA,IAAiB,UAAU,CAACA,WAAkB;AACnD,UAAI,sBAAsB,KAAKA,MAAK;AAAG,eAAO;AAAA;AACzC,eAAO;AAAA,IAChB;AAAA,IACA,SAAS;AAAA,EACb,CAAC;AAED,SAAO,EAAE,UAAU,YAAY;AAEnC;AAEA,eAAe,mBAAoC;AAC/C,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,UACK;AAAA,MACG;AAAA,MACA,SAAO;AACH,YAAI,IAAI,eAAe,KAAK;AACxB,cAAI,OAAO;AACX,cAAI,GAAG,QAAQ,UAAS,QAAQ,IAAK;AACrC,cAAI,GAAG,OAAO,MAAM;AAChB,oBAAQ,KAAK,MAAM,IAAI,EAAE,MAAM;AAAA,UACnC,CAAC;AAAA,QACL,OAAO;AACH,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,EACC,GAAG,SAAS,MAAM;AACf,aAAO;AAAA,IACX,CAAC;AAAA,EACT,CAAC;AACL;","names":["input"]} \ No newline at end of file +{"version":3,"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport https from \"https\";\nimport spawn from \"cross-spawn\";\nimport path from \"path\";\nimport * as fs from \"fs\";\n\nimport { input, select } from \"@inquirer/prompts\";\n\nconst templates = [\n {\n value: \"react-app\",\n description: \"React app using Dojo\",\n },\n {\n value: \"react-phaser-example\",\n description: \"React/Phaser app using Dojo\",\n },\n];\n\nrun();\n\nasync function run() {\n try {\n const { template, projectName } = await prompt();\n\n // clone template using degit into projectName directory\n console.log(`Downloading ${template}...`);\n spawn.sync(\"npx\", [\n \"degit\",\n `dojoengine/dojo.js/examples/${template}`,\n `${projectName}`,\n ]);\n\n // rewrite package.json\n await rewritePackageJson(projectName);\n\n // clone dojo-starter\n console.log(`Downloading dojo-starter...`);\n spawn.sync(\"npx\", [\"degit\", `dojoengine/dojo-starter`, `dojo-starter`]);\n } catch (e: any) {\n console.log(e);\n }\n}\n\nasync function rewritePackageJson(projectName: string) {\n const packageJsonPath = path.join(\n process.cwd(),\n projectName,\n \"package.json\"\n );\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\"));\n const latestVersion = await getLatestVersion();\n\n // rename using projectName\n packageJson.name = projectName;\n\n // rewrite all link:dojo-packages/packages/... with latest version\n for (let dep of Object.keys(packageJson.dependencies)) {\n if (\n dep.startsWith(\"@dojoengine\") &&\n packageJson.dependencies[dep].startsWith(\"link:\")\n ) {\n packageJson.dependencies[dep] = latestVersion;\n }\n }\n\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));\n}\n\nasync function prompt(): Promise<{ template: string; projectName: string }> {\n const template = await select({\n message: \"Select a template\",\n choices: templates,\n });\n\n const projectName = await input({\n message: \"Project name \",\n validate: (input: string) => {\n if (/^([A-Za-z\\-\\_\\d])+$/.test(input)) return true;\n else\n return \"Project name may only include letters, numbers, underscores and hashes.\";\n },\n default: template,\n });\n\n return { template, projectName };\n}\n\nasync function getLatestVersion(): Promise {\n return new Promise((resolve, reject) => {\n https\n .get(\n \"https://registry.npmjs.org/-/package/@dojoengine/core/dist-tags\",\n (res) => {\n if (res.statusCode === 200) {\n let body = \"\";\n res.on(\"data\", (data) => (body += data));\n res.on(\"end\", () => {\n resolve(JSON.parse(body).latest);\n });\n } else {\n reject();\n }\n }\n )\n .on(\"error\", () => {\n reject();\n });\n });\n}\n"],"mappings":";;;AAEA,OAAO,WAAW;AAClB,OAAO,WAAW;AAClB,OAAO,UAAU;AACjB,YAAY,QAAQ;AAEpB,SAAS,OAAO,cAAc;AAE9B,IAAM,YAAY;AAAA,EACd;AAAA,IACI,OAAO;AAAA,IACP,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,IACI,OAAO;AAAA,IACP,aAAa;AAAA,EACjB;AACJ;AAEA,IAAI;AAEJ,eAAe,MAAM;AACjB,MAAI;AACA,UAAM,EAAE,UAAU,YAAY,IAAI,MAAM,OAAO;AAG/C,YAAQ,IAAI,eAAe,QAAQ,KAAK;AACxC,UAAM,KAAK,OAAO;AAAA,MACd;AAAA,MACA,+BAA+B,QAAQ;AAAA,MACvC,GAAG,WAAW;AAAA,IAClB,CAAC;AAGD,UAAM,mBAAmB,WAAW;AAGpC,YAAQ,IAAI,6BAA6B;AACzC,UAAM,KAAK,OAAO,CAAC,SAAS,2BAA2B,cAAc,CAAC;AAAA,EAC1E,SAAS,GAAQ;AACb,YAAQ,IAAI,CAAC;AAAA,EACjB;AACJ;AAEA,eAAe,mBAAmB,aAAqB;AACnD,QAAM,kBAAkB,KAAK;AAAA,IACzB,QAAQ,IAAI;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AACA,QAAM,cAAc,KAAK,MAAS,gBAAa,iBAAiB,OAAO,CAAC;AACxE,QAAM,gBAAgB,MAAM,iBAAiB;AAG7C,cAAY,OAAO;AAGnB,WAAS,OAAO,OAAO,KAAK,YAAY,YAAY,GAAG;AACnD,QACI,IAAI,WAAW,aAAa,KAC5B,YAAY,aAAa,GAAG,EAAE,WAAW,OAAO,GAClD;AACE,kBAAY,aAAa,GAAG,IAAI;AAAA,IACpC;AAAA,EACJ;AAEA,EAAG,iBAAc,iBAAiB,KAAK,UAAU,aAAa,MAAM,CAAC,CAAC;AAC1E;AAEA,eAAe,SAA6D;AACxE,QAAM,WAAW,MAAM,OAAO;AAAA,IAC1B,SAAS;AAAA,IACT,SAAS;AAAA,EACb,CAAC;AAED,QAAM,cAAc,MAAM,MAAM;AAAA,IAC5B,SAAS;AAAA,IACT,UAAU,CAACA,WAAkB;AACzB,UAAI,sBAAsB,KAAKA,MAAK;AAAG,eAAO;AAAA;AAE1C,eAAO;AAAA,IACf;AAAA,IACA,SAAS;AAAA,EACb,CAAC;AAED,SAAO,EAAE,UAAU,YAAY;AACnC;AAEA,eAAe,mBAAoC;AAC/C,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,UACK;AAAA,MACG;AAAA,MACA,CAAC,QAAQ;AACL,YAAI,IAAI,eAAe,KAAK;AACxB,cAAI,OAAO;AACX,cAAI,GAAG,QAAQ,CAAC,SAAU,QAAQ,IAAK;AACvC,cAAI,GAAG,OAAO,MAAM;AAChB,oBAAQ,KAAK,MAAM,IAAI,EAAE,MAAM;AAAA,UACnC,CAAC;AAAA,QACL,OAAO;AACH,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,EACC,GAAG,SAAS,MAAM;AACf,aAAO;AAAA,IACX,CAAC;AAAA,EACT,CAAC;AACL;","names":["input"]} \ No newline at end of file diff --git a/packages/create-dojo/package.json b/packages/create-dojo/package.json index ea12d000e6..be6c95993f 100644 --- a/packages/create-dojo/package.json +++ b/packages/create-dojo/package.json @@ -1,6 +1,6 @@ { "name": "@dojoengine/create-dojo", - "version": "0.1.55", + "version": "0.1.56", "description": "Scaffold Dojo project from examples", "module": "index.ts", "main": "./bin/index.js", diff --git a/packages/react/package.json b/packages/react/package.json index cc7a5084c7..01f6fb33e5 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@dojoengine/react", - "version": "0.1.55", + "version": "0.1.56", "description": "Useful React hooks for Starknet", "source": "src/index.ts", "main": "dist/index.js", diff --git a/packages/torii-client/package.json b/packages/torii-client/package.json index b620036235..8817478b50 100644 --- a/packages/torii-client/package.json +++ b/packages/torii-client/package.json @@ -1,6 +1,6 @@ { "name": "@dojoengine/torii-client", - "version": "0.1.55", + "version": "0.1.56", "description": "", "main": "dist/index.js", "type": "module", diff --git a/packages/torii-wasm/package.json b/packages/torii-wasm/package.json index 37bebc2542..4cacaa6cdb 100644 --- a/packages/torii-wasm/package.json +++ b/packages/torii-wasm/package.json @@ -1,6 +1,6 @@ { "name": "@dojoengine/torii-wasm", - "version": "0.1.55", + "version": "0.1.56", "description": "", "main": "./pkg/torii_client_wasm.js", "type": "module", diff --git a/packages/utils/package.json b/packages/utils/package.json index 6211d74548..517c977308 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@dojoengine/utils", - "version": "0.1.55", + "version": "0.1.56", "description": "Helpful Dojo Utils", "type": "module", "scripts": { From 5d8b0e581a65bddc0b1df1dd4780b1e284484265 Mon Sep 17 00:00:00 2001 From: ponderingdemocritus Date: Fri, 1 Dec 2023 21:41:53 +0100 Subject: [PATCH 2/7] 0.4.0 --- packages/utils/src/utils/index.ts | 38 +++++++++---------------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/packages/utils/src/utils/index.ts b/packages/utils/src/utils/index.ts index 78c533e298..e3c8611da8 100644 --- a/packages/utils/src/utils/index.ts +++ b/packages/utils/src/utils/index.ts @@ -2,7 +2,6 @@ import { Event } from "starknet"; import { Entity, setComponent, - Component, Components, ComponentValue, Type as RecsType, @@ -72,10 +71,12 @@ export function setComponentFromEvent( const values = eventData.slice(index, index + numberOfValues); // create component object from values with schema - const componentValues = decodeComponent(component, [ - ...string_keys, - ...values, - ]); + const valuesIndex = 0; + const componentValues = decodeComponent( + component.schema, + [...string_keys, ...values], + valuesIndex + ); // console.log(componentName, entityIndex, componentValues); @@ -111,39 +112,22 @@ export function parseComponentValue(value: string, type: RecsType) { * @returns {Object} The decoded component object. */ export function decodeComponent( - component: Component, + schema: any, values: string[], - indices?: any + valuesIndex: number ): any { - const schema: any = component.schema; - const types: string[] = (component.metadata?.types as string[]) ?? []; - if (indices === undefined) { - indices = { types: 0, values: 0 }; - } - // Iterate through the keys of the schema and reduce them to build the decoded component. return Object.keys(schema).reduce((acc: any, key) => { // If the current schema key points to an object and doesn't have a 'type' property, // it means it's a nested component. Therefore, we recursively decode it. if (typeof schema[key] === "object" && !schema[key].type) { - acc[key] = decodeComponent(schema[key], values, indices); + acc[key] = decodeComponent(schema[key], values, valuesIndex); } else { // If the schema key points directly to a type or is not an object, // we parse its value using the provided parseComponentValue function // and move to the next index in the values array. - acc[key] = parseComponentValue(values[indices.values], schema[key]); - indices.values++; - // the u256 type in cairo is actually { low: u128, high: u128 } - // we need to consume two u128 values, shifting the second to compose u256 - if (types[indices.types] == "u256") { - const value = parseComponentValue( - values[indices.values], - schema[key] - ) as bigint; - acc[key] |= value << 128n; - indices.values++; - } - indices.types++; + acc[key] = parseComponentValue(values[valuesIndex], schema[key]); + valuesIndex++; } return acc; }, {}); From ea84fed53b6f2374d51a845cb025cade38bea808 Mon Sep 17 00:00:00 2001 From: ponderingdemocritus Date: Fri, 1 Dec 2023 22:01:43 +0100 Subject: [PATCH 3/7] package --- bun.lockb | Bin 437464 -> 437648 bytes examples/dojo-starter | 2 +- .../react-app/src/dojo/createSystemCalls.ts | 1 - packages/torii-client/package.json | 2 +- 4 files changed, 2 insertions(+), 3 deletions(-) diff --git a/bun.lockb b/bun.lockb index 6791168d6cd758022380b43775ca9c6473acfd6e..b4178a9991d08b481f04b135c1eaccfe2e7c2482 100755 GIT binary patch delta 5846 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 II`8}c1+9O_X8-^I diff --git a/examples/dojo-starter b/examples/dojo-starter index 93978e0857..6b1bca5127 160000 --- a/examples/dojo-starter +++ b/examples/dojo-starter @@ -1 +1 @@ -Subproject commit 93978e08574d444cda5e3189ac2bf57220dbf76c +Subproject commit 6b1bca5127b62e58b80c9ecd4c00e45a9fb52dd5 diff --git a/examples/react-app/src/dojo/createSystemCalls.ts b/examples/react-app/src/dojo/createSystemCalls.ts index 429378ddaa..079e9797f6 100644 --- a/examples/react-app/src/dojo/createSystemCalls.ts +++ b/examples/react-app/src/dojo/createSystemCalls.ts @@ -67,7 +67,6 @@ export function createSystemCalls( player: BigInt(entityId), vec: updatePositionWithDirection( direction, - // currently recs does not support nested values so we use any here getComponentValue(Position, entityId) as any ).vec, }, diff --git a/packages/torii-client/package.json b/packages/torii-client/package.json index 8817478b50..5185feb161 100644 --- a/packages/torii-client/package.json +++ b/packages/torii-client/package.json @@ -17,7 +17,7 @@ "author": "", "license": "MIT", "dependencies": { - "@dojoengine/torii-wasm": "^0.1.42", + "@dojoengine/torii-wasm": "../torii-wasm", "starknet": "^5.19.5", "typescript": "^5.0.3" }, From 2759fad715e2f12bdf8495f029200515befaaa48 Mon Sep 17 00:00:00 2001 From: ponderingdemocritus Date: Sun, 3 Dec 2023 20:27:59 +0100 Subject: [PATCH 4/7] submodule --- examples/dojo-starter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dojo-starter b/examples/dojo-starter index 6b1bca5127..127220e3cd 160000 --- a/examples/dojo-starter +++ b/examples/dojo-starter @@ -1 +1 @@ -Subproject commit 6b1bca5127b62e58b80c9ecd4c00e45a9fb52dd5 +Subproject commit 127220e3cd5ee635491112c941c8a46ed088778f From b10ae69ceb31bacef240b73ccb3736fdaf871313 Mon Sep 17 00:00:00 2001 From: ponderingdemocritus Date: Sun, 3 Dec 2023 20:59:49 +0100 Subject: [PATCH 5/7] fix example --- examples/react-app/src/App.tsx | 7 +++---- packages/react/src/useSync.ts | 19 ++----------------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/examples/react-app/src/App.tsx b/examples/react-app/src/App.tsx index cc47b7acbc..94b8e2da26 100644 --- a/examples/react-app/src/App.tsx +++ b/examples/react-app/src/App.tsx @@ -62,7 +62,6 @@ function App() { }; useEffect(() => { - // Clear message after 3 seconds if (clipboardStatus.message) { const timer = setTimeout(() => { setClipboardStatus({ message: "", isError: false }); @@ -124,7 +123,7 @@ function App() {
-
+
-
+
-
+
diff --git a/packages/react/src/useSync.ts b/packages/react/src/useSync.ts index f836bb6b1f..33b9d07f7a 100644 --- a/packages/react/src/useSync.ts +++ b/packages/react/src/useSync.ts @@ -26,7 +26,7 @@ export function useSync( [component.metadata?.name] ); - const keys_to_strings = useMemo( + const keysToStrings = useMemo( () => keys.map((key) => key.toString()), [keys] ); @@ -44,7 +44,7 @@ export function useSync( component.schema, await client.getModelValue( componentName as string, - keys_to_strings + keysToStrings ) ) as ComponentValue ); @@ -60,19 +60,4 @@ export function useSync( isMounted = false; }; }, [client]); - - useEffect(() => { - const entity = { - model: componentName as string, - keys: keys_to_strings, - }; - - client.addEntitiesToSync([entity]); - - return () => { - client.removeEntitiesToSync([entity]).catch((error) => { - console.error("Failed to remove entities on cleanup", error); - }); - }; - }, [client]); } From 0138ef18fe892b0465a59bfdb08ceac2aff2457e Mon Sep 17 00:00:00 2001 From: ponderingdemocritus Date: Sun, 3 Dec 2023 21:01:31 +0100 Subject: [PATCH 6/7] prettier --- packages/create-dojo/bin/index.js | 140 +++++++++++++++--------------- 1 file changed, 72 insertions(+), 68 deletions(-) diff --git a/packages/create-dojo/bin/index.js b/packages/create-dojo/bin/index.js index 65a91b4660..faf946967b 100755 --- a/packages/create-dojo/bin/index.js +++ b/packages/create-dojo/bin/index.js @@ -7,83 +7,87 @@ import path from "path"; import * as fs from "fs"; import { input, select } from "@inquirer/prompts"; var templates = [ - { - value: "react-app", - description: "React app using Dojo" - }, - { - value: "react-phaser-example", - description: "React/Phaser app using Dojo" - } + { + value: "react-app", + description: "React app using Dojo", + }, + { + value: "react-phaser-example", + description: "React/Phaser app using Dojo", + }, ]; run(); async function run() { - try { - const { template, projectName } = await prompt(); - console.log(`Downloading ${template}...`); - spawn.sync("npx", [ - "degit", - `dojoengine/dojo.js/examples/${template}`, - `${projectName}` - ]); - await rewritePackageJson(projectName); - console.log(`Downloading dojo-starter...`); - spawn.sync("npx", ["degit", `dojoengine/dojo-starter`, `dojo-starter`]); - } catch (e) { - console.log(e); - } + try { + const { template, projectName } = await prompt(); + console.log(`Downloading ${template}...`); + spawn.sync("npx", [ + "degit", + `dojoengine/dojo.js/examples/${template}`, + `${projectName}`, + ]); + await rewritePackageJson(projectName); + console.log(`Downloading dojo-starter...`); + spawn.sync("npx", ["degit", `dojoengine/dojo-starter`, `dojo-starter`]); + } catch (e) { + console.log(e); + } } async function rewritePackageJson(projectName) { - const packageJsonPath = path.join( - process.cwd(), - projectName, - "package.json" - ); - const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8")); - const latestVersion = await getLatestVersion(); - packageJson.name = projectName; - for (let dep of Object.keys(packageJson.dependencies)) { - if (dep.startsWith("@dojoengine") && packageJson.dependencies[dep].startsWith("link:")) { - packageJson.dependencies[dep] = latestVersion; + const packageJsonPath = path.join( + process.cwd(), + projectName, + "package.json" + ); + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8")); + const latestVersion = await getLatestVersion(); + packageJson.name = projectName; + for (let dep of Object.keys(packageJson.dependencies)) { + if ( + dep.startsWith("@dojoengine") && + packageJson.dependencies[dep].startsWith("link:") + ) { + packageJson.dependencies[dep] = latestVersion; + } } - } - fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); + fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); } async function prompt() { - const template = await select({ - message: "Select a template", - choices: templates - }); - const projectName = await input({ - message: "Project name ", - validate: (input2) => { - if (/^([A-Za-z\-\_\d])+$/.test(input2)) - return true; - else - return "Project name may only include letters, numbers, underscores and hashes."; - }, - default: template - }); - return { template, projectName }; + const template = await select({ + message: "Select a template", + choices: templates, + }); + const projectName = await input({ + message: "Project name ", + validate: (input2) => { + if (/^([A-Za-z\-\_\d])+$/.test(input2)) return true; + else + return "Project name may only include letters, numbers, underscores and hashes."; + }, + default: template, + }); + return { template, projectName }; } async function getLatestVersion() { - return new Promise((resolve, reject) => { - https.get( - "https://registry.npmjs.org/-/package/@dojoengine/core/dist-tags", - (res) => { - if (res.statusCode === 200) { - let body = ""; - res.on("data", (data) => body += data); - res.on("end", () => { - resolve(JSON.parse(body).latest); - }); - } else { - reject(); - } - } - ).on("error", () => { - reject(); + return new Promise((resolve, reject) => { + https + .get( + "https://registry.npmjs.org/-/package/@dojoengine/core/dist-tags", + (res) => { + if (res.statusCode === 200) { + let body = ""; + res.on("data", (data) => (body += data)); + res.on("end", () => { + resolve(JSON.parse(body).latest); + }); + } else { + reject(); + } + } + ) + .on("error", () => { + reject(); + }); }); - }); } -//# sourceMappingURL=index.js.map \ No newline at end of file +//# sourceMappingURL=index.js.map From f0d2d09cd2ec9f368ef293d83f0a8464e5c0741f Mon Sep 17 00:00:00 2001 From: ponderingdemocritus Date: Sun, 3 Dec 2023 21:06:35 +0100 Subject: [PATCH 7/7] ci and bun update --- .github/workflows/ci.yaml | 2 ++ bun.lockb | Bin 437648 -> 437040 bytes 2 files changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 05fd3e9556..75263272f0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,6 +12,8 @@ jobs: steps: - uses: actions/checkout@v2 - uses: oven-sh/setup-bun@v1 + - name: Install dependencies + run: bun link - name: Install dependencies run: bun install - name: Run Prettier diff --git a/bun.lockb b/bun.lockb index b4178a9991d08b481f04b135c1eaccfe2e7c2482..ae458e1def7166d30695ca94e9f9802c6ca29279 100755 GIT binary patch delta 7756 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 GqyGR6jmjth delta 8112 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