diff --git a/packages/game-bridge/.eslintrc.cjs b/packages/game-bridge/.eslintrc.cjs index 8b8a821f7e..72bea9abde 100644 --- a/packages/game-bridge/.eslintrc.cjs +++ b/packages/game-bridge/.eslintrc.cjs @@ -4,5 +4,6 @@ module.exports = { "parserOptions": { "project": "./tsconfig.json", "tsconfigRootDir": __dirname - } + }, + "ignorePatterns": ["scripts/**"] } diff --git a/packages/game-bridge/.parcelrc b/packages/game-bridge/.parcelrc new file mode 100644 index 0000000000..b2f87351d6 --- /dev/null +++ b/packages/game-bridge/.parcelrc @@ -0,0 +1,4 @@ +{ + "extends": "@parcel/config-default", + "bundler": "@parcel/bundler-default" +} diff --git a/packages/game-bridge/package.json b/packages/game-bridge/package.json index 1f42651bd0..6ca0945683 100644 --- a/packages/game-bridge/package.json +++ b/packages/game-bridge/package.json @@ -10,12 +10,14 @@ "ethers": "^6.13.4" }, "devDependencies": { + "@parcel/bundler-default": "^2.16.3", + "@parcel/config-default": "^2.16.3", "eslint": "^8.40.0", "parcel": "^2.13.3" }, "scripts": { - "build": "parcel build --no-cache --no-scope-hoist", - "build:local": "parcel build --no-cache --no-scope-hoist && pnpm updateSdkVersion", + "build": "parcel build --no-cache --no-scope-hoist && node scripts/fixUnityBuild.js", + "build:local": "parcel build --no-cache --no-scope-hoist && node scripts/fixUnityBuild.js && pnpm updateSdkVersion", "lint": "eslint ./src --ext .ts,.jsx,.tsx --max-warnings=0", "start": "parcel", "updateSdkVersion": "./scripts/updateSdkVersion.sh" @@ -25,6 +27,9 @@ "unity": { "context": "browser", "source": "src/index.html", + "outputFormat": "global", + "scopeHoist": false, + "isLibrary": false, "engines": { "browsers": "Chrome 90" } @@ -33,6 +38,8 @@ "outputFormat": "global", "context": "browser", "source": "src/index.ts", + "scopeHoist": false, + "isLibrary": false, "engines": { "browsers": "Chrome 90" } diff --git a/packages/game-bridge/scripts/fixUnityBuild.js b/packages/game-bridge/scripts/fixUnityBuild.js new file mode 100644 index 0000000000..85225924d6 --- /dev/null +++ b/packages/game-bridge/scripts/fixUnityBuild.js @@ -0,0 +1,84 @@ +#!/usr/bin/env node +/* eslint-disable */ +/** + * Post-build script to fix the Unity HTML bundle. + * + * ROOT CAUSE: + * viem uses dynamic import() for lazy-loading CCIP (Cross-Chain Interoperability Protocol) code: + * const { offchainLookup } = await import('../../utils/ccip.js'); + * (see: viem/_esm/actions/public/call.js line 126) + * + * When Parcel builds the HTML target with + + + +`; + +// Write the fixed HTML +fs.writeFileSync(HTML_FILE, html, 'utf8'); + +console.log('Unity build fixed successfully!'); +console.log(`Output: ${HTML_FILE} (${html.length} bytes)`); + +// Clean up JS files (now inlined) +for (const jsFile of jsFiles) { + const jsPath = path.join(UNITY_DIST_DIR, jsFile); + fs.unlinkSync(jsPath); + console.log(`Removed ${jsFile}`); + + // Also remove the map file if it exists + const mapPath = jsPath + '.map'; + if (fs.existsSync(mapPath)) { + fs.unlinkSync(mapPath); + console.log(`Removed ${jsFile}.map`); + } +} + +console.log('Done!'); diff --git a/packages/game-bridge/src/index.html b/packages/game-bridge/src/index.html index 1104ae175e..6df5930d4d 100644 --- a/packages/game-bridge/src/index.html +++ b/packages/game-bridge/src/index.html @@ -4,13 +4,10 @@ GameSDK Bridge - + -

Bridge Running

\ No newline at end of file