k6-node
Version:
CLI tool that enables k6 installation via npm packages
35 lines (34 loc) • 1.63 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.installBinary = void 0;
const node_os_1 = __importDefault(require("node:os"));
const node_path_1 = __importDefault(require("node:path"));
const extract_file_1 = require("./extract-file");
const download_file_1 = require("./download-file");
const k6path_1 = require("../k6path");
/**
*
*/
const installBinary = async () => {
const platform = (0, k6path_1.detectPlatform)();
const version = '1.4.0';
if (!platform)
throw new Error(`The current system "${node_os_1.default.platform()}" is not supported`);
const binaries = {
windows: `windows-amd64.zip`,
macos: `darwin-amd64.zip`,
linux: `linux-amd64.tar.gz`,
};
const extractDir = node_path_1.default.join(__dirname, '../k6', `k6-${platform}-extract`);
// here download from github
console.log(`Downloading k6 v${version} for ${platform}...`);
const downloadedPath = await (0, download_file_1.downloadFile)(`https://github.com/grafana/k6/releases/download/v${version}/k6-v${version}-${binaries[platform]}`, node_path_1.default.join(__dirname, '../k6', `k6.${platform === 'windows' || platform === 'macos' ? 'zip' : 'tar.gz'}`));
//here extract the binary
const binaryPath = await (0, extract_file_1.extractFile)(downloadedPath, extractDir, platform);
console.log(`k6 successfully installed at: ${binaryPath}`);
return binaryPath;
};
exports.installBinary = installBinary;