Get nodejs test bundling working

This commit is contained in:
Caelan
2024-10-03 14:00:14 -06:00
parent 0b2605d08e
commit abb1457b48
4 changed files with 23 additions and 16 deletions

View File

@@ -11218,7 +11218,7 @@
"node_modules/velopack": {
"version": "0.0.0",
"resolved": "file:../../src/lib-nodejs/velopack-0.0.0.tgz",
"integrity": "sha512-zzbA7HSPgp43qRVSpiODF/KxLN5MvUi4dq3iPykv10m0LCA96EVWuMFODD0ahzhxpylSFLLMGI18k3f88B8bsQ==",
"integrity": "sha512-KVS2ralmScgT0iB+f5OsaMHiGSGi9Mv1Xyyf2x5k/zSPNqZ4M1UtMFMaHzPqmK3LrV3Lwmkuf9T7C5LEUsS08w==",
"license": "MIT",
"dependencies": {
"@neon-rs/load": "^0.1.73"

View File

@@ -4,12 +4,25 @@ const path = require("node:path");
const platform = os.platform();
function makeCopies(input) {
// this is obviously not correct for a "production" bundle, but it is used for testing
// creating a "node" module at all of the expected production locations allows us to test
// webpack require resolution and native module bundling etc.
fs.mkdirSync("./lib/native");
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_win_x86_msvc.node");
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_win_x64_msvc.node");
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_win_arm64_msvc.node");
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_osx.node");
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_linux_x64_gnu.node");
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_linux_arm64_gnu.node");
}
if (platform == "win32") {
fs.copyFileSync("../../target/debug/velopack_nodeffi.dll", "lib/debug.node");
makeCopies("../../target/debug/velopack_nodeffi.dll");
} else if (platform == "darwin") {
fs.copyFileSync("../../target/debug/libvelopack_nodeffi.dylib", "lib/debug.node");
makeCopies("../../target/debug/libvelopack_nodeffi.dylib");
} else if (platform == "linux") {
fs.copyFileSync("../../target/debug/libvelopack_nodeffi.so", "lib/debug.node");
makeCopies("../../target/debug/libvelopack_nodeffi.so");
} else {
throw new Error("Unsupported platform: " + platform);
}

View File

@@ -8,7 +8,7 @@
"test": "npm run dev && cross-env VELOPACK_RESTART=true VELOPACK_DEBUG=true jest",
"dev": "cargo build -p velopack_nodeffi && tsc -p tsconfig.build.json && node copy-lib.js",
"build": "tsc -p tsconfig.build.json",
"clean": "del-cli **/*.node lib",
"clean": "del-cli **/*.node lib velopack-*.tgz",
"lint": "prettier . --write"
},
"author": "Velopack Ltd, Caelan Sayler",

View File

@@ -2,18 +2,12 @@ import { proxy } from "@neon-rs/load";
module.exports = proxy({
platforms: {
"win32-x86-msvc": () =>
require("./native/velopack_nodeffi_win_x86_msvc.node"),
"win32-x64-msvc": () =>
require("./native/velopack_nodeffi_win_x64_msvc.node"),
"win32-arm64-msvc": () =>
require("./native/velopack_nodeffi_win_arm64_msvc.node"),
"win32-x86-msvc": () => require("./native/velopack_nodeffi_win_x86_msvc.node"),
"win32-x64-msvc": () => require("./native/velopack_nodeffi_win_x64_msvc.node"),
"win32-arm64-msvc": () => require("./native/velopack_nodeffi_win_arm64_msvc.node"),
"darwin-x64": () => require("./native/velopack_nodeffi_osx.node"),
"darwin-arm64": () => require("./native/velopack_nodeffi_osx.node"),
"linux-x64-gnu": () =>
require("./native/velopack_nodeffi_linux_x64_gnu.node"),
"linux-arm64-gnu": () =>
require("./native/velopack_nodeffi_linux_arm64_gnu.node"),
"linux-x64-gnu": () => require("./native/velopack_nodeffi_linux_x64_gnu.node"),
"linux-arm64-gnu": () => require("./native/velopack_nodeffi_linux_arm64_gnu.node"),
},
debug: () => require("./debug.node"),
});