From 27527c5960bfba03ccb9f4711e20172a13244a89 Mon Sep 17 00:00:00 2001 From: weiping-awx Date: Wed, 13 May 2026 13:41:52 +0800 Subject: [PATCH] fix: resolve wrong package.json import path in built output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #43. `import { version } from '../package.json'` resolved correctly from `src/` but became a broken path in the compiled `lib/module/` and `lib/commonjs/` output. Introduces `scripts/generate-version.js` which derives `src/version.ts` from `package.json` at build time. `src/functions.ts` now imports from `./version`, a path that is stable in both source and built output. `package.json` remains the single source of truth — `update-versions.sh` regenerates `src/version.ts` whenever the version is bumped in CI. Co-Authored-By: Claude Sonnet 4.6 --- .github/scripts/update-versions.sh | 5 +++++ package.json | 2 +- scripts/generate-version.js | 7 +++++++ src/functions.ts | 2 +- src/version.ts | 2 ++ 5 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 scripts/generate-version.js create mode 100644 src/version.ts diff --git a/.github/scripts/update-versions.sh b/.github/scripts/update-versions.sh index e62d1f9..6359245 100755 --- a/.github/scripts/update-versions.sh +++ b/.github/scripts/update-versions.sh @@ -15,4 +15,9 @@ if [ -f package.json ]; then jq --arg v "$VERSION" '.version = $v' package.json > package.json.tmp && mv package.json.tmp package.json fi +# Regenerate src/version.ts from the updated package.json +if [ -f scripts/generate-version.js ]; then + node scripts/generate-version.js +fi + echo "React Native package version update complete." \ No newline at end of file diff --git a/package.json b/package.json index f5b6d16..753f18f 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "typecheck": "tsc", "lint": "eslint \"**/*.{js,ts,tsx}\"", "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib", - "prepare": "bob build", + "prepare": "node scripts/generate-version.js && bob build", "release": "release-it" }, "keywords": [ diff --git a/scripts/generate-version.js b/scripts/generate-version.js new file mode 100644 index 0000000..f51ef33 --- /dev/null +++ b/scripts/generate-version.js @@ -0,0 +1,7 @@ +const fs = require('fs'); +const { version } = require('../package.json'); + +fs.writeFileSync( + `${__dirname}/../src/version.ts`, + `// Generated by scripts/generate-version.js — do not edit manually.\nexport const version = '${version}';\n` +); diff --git a/src/functions.ts b/src/functions.ts index 22a5a28..91c8cd8 100644 --- a/src/functions.ts +++ b/src/functions.ts @@ -1,4 +1,4 @@ -import { version } from '../package.json'; +import { version } from './version'; import { transformKeysToSnakeCase } from './helpers'; import NativeAirwallexSdk from './NativeAirwallexSdk'; import type { PaymentConsent, PaymentSession } from './types'; diff --git a/src/version.ts b/src/version.ts new file mode 100644 index 0000000..301755c --- /dev/null +++ b/src/version.ts @@ -0,0 +1,2 @@ +// Generated by scripts/generate-version.js — do not edit manually. +export const version = '0.1.10';