Skip to content

Commit

Permalink
chore: refactor based on review
Browse files Browse the repository at this point in the history
  • Loading branch information
belgattitude committed Jan 30, 2025
1 parent 4cd0c7b commit edac1a8
Showing 1 changed file with 20 additions and 22 deletions.
42 changes: 20 additions & 22 deletions bindings/pkgs/@duckdb/node-bindings/duckdb.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
const getRuntimePlatformArch = () => `${process.platform}-${process.arch}`;

let native;

switch(getRuntimePlatformArch()) {
case 'linux-x64':
native = require('@duckdb/node-bindings-linux-x64/duckdb.node');
break;
case 'linux-arm64':
native = require('@duckdb/node-bindings-linux-arm64/duckdb.node');
break;
case 'darwin-arm64':
native = require('@duckdb/node-bindings-darwin-arm64/duckdb.node');
break;
case 'darwin-x64':
native = require('@duckdb/node-bindings-darwin-x64/duckdb.node');
break;
case 'win32-x64':
native = require('@duckdb/node-bindings-win32-x64/duckdb.node');
break;
default:
throw new Error(`Unsupported platform: ${getRuntimePlatformArch()}`);
/**
* @throw Error if there isn't any available native binding for the current platform/arch.
*/
const getNativeNodeBinding = (runtimePlatformArch) => {
switch(runtimePlatformArch) {
case `linux-x64`:
return require('@duckdb/node-bindings-linux-x64/duckdb.node');
case 'linux-arm64':
return require('@duckdb/node-bindings-linux-arm64/duckdb.node');
case 'darwin-arm64':
return require('@duckdb/node-bindings-darwin-arm64/duckdb.node');
case 'darwin-x64':
return require('@duckdb/node-bindings-darwin-x64/duckdb.node');
case 'win32-x64':
return require('@duckdb/node-bindings-win32-x64/duckdb.node');
default:
const [platform, arch] = runtimePlatformArch.split('-')
throw new Error(`Error loading duckdb native binding: unsupported arch '${arch}' for platform '${platform}'`);
}
}

module.exports = native;

module.exports = getNativeNodeBinding(getRuntimePlatformArch());

0 comments on commit edac1a8

Please sign in to comment.