UNPKG

balena-cli

Version:

The official balena Command Line Interface

42 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.trackPromise = void 0; const errors_1 = require("../errors"); const patterns_1 = require("../utils/patterns"); let trackResolve; exports.trackPromise = new Promise((resolve) => { trackResolve = resolve; }); const checkElevatedPrivileges = async () => { const isElevated = await (await Promise.resolve().then(() => require('is-elevated')))(); if (!isElevated) { throw new errors_1.InsufficientPrivilegesError('You need root/admin privileges to run this command'); } }; const DEFAULT_ROOT = false; const DEFAULT_AUTHENTICATED = false; const DEFAULT_OFFLINE_COMPATIBLE = false; const hook = async function (options) { var _a, _b, _c; try { if ((_a = options.Command.root) !== null && _a !== void 0 ? _a : DEFAULT_ROOT) { await checkElevatedPrivileges(); } if ((_b = options.Command .authenticated) !== null && _b !== void 0 ? _b : DEFAULT_AUTHENTICATED) { await (0, patterns_1.checkLoggedIn)(); } if (!((_c = options.Command .offlineCompatible) !== null && _c !== void 0 ? _c : DEFAULT_OFFLINE_COMPATIBLE)) { await (0, patterns_1.checkNotUsingOfflineMode)(); } } catch (error) { this.error(error); } const events = await Promise.resolve().then(() => require('../events')); const cmd = options.Command.id; trackResolve(events.trackCommand(cmd)); }; exports.default = hook; //# sourceMappingURL=prerun.js.map