Skip to content

Commit fe38a7d

Browse files
fix: rewrite version sync script using node for cross-platform JSON editing
1 parent c2e59bf commit fe38a7d

4 files changed

Lines changed: 40 additions & 12 deletions

File tree

packages/codec/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@srcmap/codec",
3-
"version": "0.1.1",
3+
"version": "0.1.2",
44
"description": "High-performance VLQ source map codec powered by Rust",
55
"main": "index.js",
66
"types": "index.d.ts",

packages/sourcemap-wasm/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@srcmap/sourcemap-wasm",
3-
"version": "0.1.0",
3+
"version": "0.1.2",
44
"description": "High-performance source map parser and consumer powered by Rust (WebAssembly)",
55
"type": "module",
66
"main": "pkg/srcmap_sourcemap_wasm.js",

packages/sourcemap/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@srcmap/sourcemap",
3-
"version": "0.1.1",
3+
"version": "0.1.2",
44
"description": "High-performance source map parser and consumer powered by Rust",
55
"main": "index.js",
66
"types": "index.d.ts",

scripts/sync-npm-versions.sh

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,50 @@ set -euo pipefail
77
VERSION="${2:-$1}"
88
ROOT="$(git rev-parse --show-toplevel)"
99

10-
# Update main package.json files (top-level version only)
11-
for pkg in "$ROOT"/packages/*/package.json; do
12-
sed -i '' '0,/"version": "[^"]*"/{s/"version": "[^"]*"/"version": "'"$VERSION"'"/;}' "$pkg"
10+
# Use node to safely update version fields in package.json files
11+
update_version() {
12+
node -e "
13+
const fs = require('fs');
14+
const pkg = JSON.parse(fs.readFileSync('$1', 'utf8'));
15+
pkg.version = '$VERSION';
16+
fs.writeFileSync('$1', JSON.stringify(pkg, null, 2) + '\n');
17+
"
18+
}
19+
20+
update_optional_deps() {
21+
node -e "
22+
const fs = require('fs');
23+
const pkg = JSON.parse(fs.readFileSync('$1', 'utf8'));
24+
pkg.version = '$VERSION';
25+
if (pkg.optionalDependencies) {
26+
for (const key of Object.keys(pkg.optionalDependencies)) {
27+
if (key.startsWith('@srcmap/')) {
28+
pkg.optionalDependencies[key] = '$VERSION';
29+
}
30+
}
31+
}
32+
fs.writeFileSync('$1', JSON.stringify(pkg, null, 2) + '\n');
33+
"
34+
}
35+
36+
# Update main package.json files (version + optionalDependencies)
37+
for pkg in "$ROOT"/packages/codec/package.json "$ROOT"/packages/sourcemap/package.json; do
38+
[ -f "$pkg" ] || continue
39+
update_optional_deps "$pkg"
1340
echo " Updated $(basename "$(dirname "$pkg")")/package.json → $VERSION"
1441
done
1542

16-
# Update platform-specific npm package.json files
17-
for pkg in "$ROOT"/packages/*/npm/*/package.json; do
43+
# Update sourcemap-wasm package.json (version only)
44+
for pkg in "$ROOT"/packages/sourcemap-wasm/package.json; do
1845
[ -f "$pkg" ] || continue
19-
sed -i '' 's/"version": "[^"]*"/"version": "'"$VERSION"'"/' "$pkg"
46+
update_version "$pkg"
47+
echo " Updated $(basename "$(dirname "$pkg")")/package.json → $VERSION"
2048
done
2149

22-
# Update optionalDependencies versions in main package.json files
23-
for pkg in "$ROOT"/packages/codec/package.json "$ROOT"/packages/sourcemap/package.json; do
50+
# Update platform-specific npm package.json files
51+
for pkg in "$ROOT"/packages/*/npm/*/package.json; do
2452
[ -f "$pkg" ] || continue
25-
sed -i '' 's/\("@srcmap\/[^"]*": "\)[^"]*"/\1'"$VERSION"'"/' "$pkg"
53+
update_version "$pkg"
2654
done
2755

2856
echo " Updated all platform package versions → $VERSION"

0 commit comments

Comments
 (0)