postman-cli
Version: 
Official Postman CLI - Command-line companion for API development, testing, and automation
38 lines (31 loc) • 1.05 kB
JavaScript
const { execFileSync } = require('child_process'),
    PLATFORM_PACKAGES = {
        'darwin-arm64': 'pm-bin-macos-arm64',
        'darwin-x64': 'pm-bin-macos-x64',
        'win32-x64': 'pm-bin-windows-x64',
        'linux-x64': 'pm-bin-linux-x64'
    };
function locateBinary () {
    const platformKey = `${process.platform}-${process.arch}`,
        packageName = PLATFORM_PACKAGES[platformKey];
    if (!packageName) {
        throw new Error(`Unsupported platform: ${platformKey}`);
    }
    // eslint-disable-next-line one-var
    const binaryName = process.platform === 'win32' ? 'postman.exe' : 'postman';
    try {
        return require.resolve(`@postman/${packageName}/bin/${binaryName}`);
    }
    catch (error) {
        throw new Error(
            `Binary not found for ${platformKey}. ` +
            `Make sure @postman/${packageName} is installed. `
        );
    }
}
module.exports = function run (...args) {
    return execFileSync(locateBinary(), args, {
        stdio: 'inherit',
        encoding: 'utf8'
    });
};