ziti-sdk-c-nodejs
Version:
Node.js wrapper for OpenZiti C SDK
52 lines (42 loc) ⢠1.62 kB
JavaScript
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
console.log('šØ Building Ziti SDK C Node.js wrapper...\n');
// Check if ziti-sdk directory exists
const zitiSdkPath = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Windows-AMD64');
if (!fs.existsSync(zitiSdkPath)) {
console.error('ā ziti-sdk-1.7.8-Windows-AMD64 directory not found!');
console.error('Please make sure you have the compiled ziti-sdk-c in the correct location.');
process.exit(1);
}
// Check for required files
const requiredFiles = [
'include/ziti/ziti.h',
'include/ziti/zitilib.h',
'lib/ziti.lib',
'lib/ziti.dll'
];
for (const file of requiredFiles) {
const filePath = path.join(zitiSdkPath, file);
if (!fs.existsSync(filePath)) {
console.error(`ā Required file not found: ${file}`);
process.exit(1);
}
}
console.log('ā
Ziti SDK files found');
try {
// Install dependencies
console.log('\nš¦ Installing dependencies...');
execSync('npm install', { stdio: 'inherit' });
// Build the native addon
console.log('\nšØ Building native addon...');
execSync('npm run build', { stdio: 'inherit' });
console.log('\nā
Build completed successfully!');
console.log('\nYou can now use the package in your Node.js applications.');
console.log('\nExample:');
console.log('const { ZitiClient } = require("./index");');
} catch (error) {
console.error('\nā Build failed:', error.message);
process.exit(1);
}