Skip to content

Commit bd88856

Browse files
committed
fix(build): read socketbin spec from actual package.json
Changed to read name and version from the actual @socketbin/cli-{platform}-{arch}/package.json instead of constructing it, ensuring the spec matches the published package. **Changes:** - Read socketbin package.json dynamically based on platform/arch - Use actual package name and version for spec string - Gracefully handle missing package.json with fallback behavior **Example:** - Reads: packages/socketbin-cli-darwin-arm64/package.json - Uses: @socketbin/cli-darwin-arm64@1.2.0
1 parent 7a3ba3d commit bd88856

File tree

1 file changed

+26
-16
lines changed

1 file changed

+26
-16
lines changed

packages/node-smol-builder/scripts/build.mjs

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1345,15 +1345,26 @@ async function main() {
13451345
// Windows: LZMS (best for PE).
13461346
const compressionQuality = IS_MACOS ? 'lzfse' : 'lzma'
13471347

1348-
// Construct socketbin package spec for socket-lib cache key generation.
1349-
// Format: @socketbin/node-smol-builder-{platform}-{arch}@0.0.0-{nodeVersion}
1350-
// This enables deterministic cache keys across builds of the same Node.js version.
1351-
const socketbinSpec = `@socketbin/node-smol-builder-${TARGET_PLATFORM}-${ARCH}@0.0.0-${NODE_VERSION}`
1348+
// Read socketbin package spec from actual package.json for socket-lib cache key generation.
1349+
// Format: @socketbin/cli-{platform}-{arch}@{version}
1350+
// This enables deterministic cache keys based on the published package.
1351+
const socketbinPkgPath = join(dirname(ROOT_DIR), `socketbin-cli-${TARGET_PLATFORM}-${ARCH}`, 'package.json')
1352+
let socketbinSpec = null
1353+
try {
1354+
const socketbinPkg = JSON.parse(await readFile(socketbinPkgPath, 'utf-8'))
1355+
socketbinSpec = `${socketbinPkg.name}@${socketbinPkg.version}`
1356+
logger.substep(`Found socketbin package: ${socketbinSpec}`)
1357+
} catch (e) {
1358+
logger.warn(`Could not read socketbin package.json at ${socketbinPkgPath}`)
1359+
logger.warn('Compression will use fallback cache key generation')
1360+
}
13521361

13531362
logger.substep(`Input: ${outputStrippedBinary}`)
13541363
logger.substep(`Output: ${compressedBinary}`)
13551364
logger.substep(`Algorithm: ${compressionQuality.toUpperCase()}`)
1356-
logger.substep(`Spec: ${socketbinSpec}`)
1365+
if (socketbinSpec) {
1366+
logger.substep(`Spec: ${socketbinSpec}`)
1367+
}
13571368
logger.logNewline()
13581369

13591370
const sizeBeforeCompress = await getFileSize(outputStrippedBinary)
@@ -1362,17 +1373,16 @@ async function main() {
13621373
logger.logNewline()
13631374

13641375
// Run platform-specific compression.
1365-
await exec(
1366-
process.execPath,
1367-
[
1368-
join(ROOT_DIR, 'scripts', 'compress-binary.mjs'),
1369-
outputStrippedBinary,
1370-
compressedBinary,
1371-
`--quality=${compressionQuality}`,
1372-
`--spec=${socketbinSpec}`,
1373-
],
1374-
{ cwd: ROOT_DIR },
1375-
)
1376+
const compressArgs = [
1377+
join(ROOT_DIR, 'scripts', 'compress-binary.mjs'),
1378+
outputStrippedBinary,
1379+
compressedBinary,
1380+
`--quality=${compressionQuality}`,
1381+
]
1382+
if (socketbinSpec) {
1383+
compressArgs.push(`--spec=${socketbinSpec}`)
1384+
}
1385+
await exec(process.execPath, compressArgs, { cwd: ROOT_DIR })
13761386

13771387
const sizeAfterCompress = await getFileSize(compressedBinary)
13781388
logger.log(`Size after compression: ${sizeAfterCompress}`)

0 commit comments

Comments
 (0)