UNPKG

ziti-sdk-c-nodejs

Version:

Node.js wrapper for OpenZiti C SDK

96 lines (84 loc) โ€ข 3.39 kB
#!/usr/bin/env node const { execSync } = require('child_process'); const fs = require('fs'); const path = require('path'); console.log('๐Ÿ”ง Testing Ziti SDK Node.js Wrapper - Cross Platform Support\n'); // Check current platform const platform = process.platform; console.log(`๐Ÿ“ Current platform: ${platform}`); // Test build on current platform console.log('\n๐Ÿ”จ Testing build...'); try { execSync('npm run build', { stdio: 'inherit' }); console.log('โœ… Build successful!'); } catch (error) { console.log('โŒ Build failed!'); process.exit(1); } // Test basic functionality console.log('\n๐Ÿงช Testing basic functionality...'); try { execSync('npm test', { stdio: 'inherit' }); console.log('โœ… Tests passed!'); } catch (error) { console.log('โŒ Tests failed!'); process.exit(1); } // Platform-specific checks console.log('\n๐Ÿ” Platform-specific checks...'); if (platform === 'win32') { console.log('Windows-specific checks:'); const zitiDll = path.join(__dirname, '..', 'ziti.dll'); if (fs.existsSync(zitiDll)) { console.log('โœ… ziti.dll found'); } else { console.log('โš ๏ธ ziti.dll not found in current directory'); } const zitiSdkDir = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Windows-AMD64'); if (fs.existsSync(zitiSdkDir)) { console.log('โœ… Windows SDK directory found'); } else { console.log('โš ๏ธ Windows SDK directory not found'); } } else if (platform === 'linux') { console.log('Linux-specific checks:'); const libZitiSo = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Linux-x86_64', 'lib', 'libziti.so'); if (fs.existsSync(libZitiSo)) { console.log('โœ… libziti.so found'); } else { console.log('โš ๏ธ libziti.so not found'); } const zitiSdkDir = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Linux-x86_64'); if (fs.existsSync(zitiSdkDir)) { console.log('โœ… Linux SDK directory found'); } else { console.log('โš ๏ธ Linux SDK directory not found'); } } else if (platform === 'darwin') { console.log('macOS-specific checks:'); const libZitiDylib = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Darwin-arm64', 'lib', 'libziti.dylib'); if (fs.existsSync(libZitiDylib)) { console.log('โœ… libziti.dylib found'); } else { console.log('โš ๏ธ libziti.dylib not found'); } const zitiSdkDir = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Darwin-arm64'); if (fs.existsSync(zitiSdkDir)) { console.log('โœ… macOS SDK directory found'); } else { console.log('โš ๏ธ macOS SDK directory not found'); } } // Check for .node file const nodeFile = path.join(__dirname, '..', 'build', 'Release', 'ziti_sdk_c.node'); if (fs.existsSync(nodeFile)) { console.log('โœ… Native addon (.node file) created successfully'); } else { console.log('โŒ Native addon (.node file) not found'); } console.log('\n๐ŸŽ‰ Cross-platform support check completed!'); console.log('\n๐Ÿ“ Notes:'); console.log('- Windows: Uses ziti.dll with dynamic loading'); console.log('- Linux: Would use libziti.so with dlopen()'); console.log('- macOS: Would use libziti.dylib with dlopen()'); console.log('- All platforms use the same JavaScript API');