UNPKG

k6-node

Version:

CLI tool that enables k6 installation via npm packages

35 lines (34 loc) 1.63 kB
"use strict"; 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;