UNPKG

balena-cli

Version:

The official balena Command Line Interface

47 lines 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.disambiguateReleaseParam = disambiguateReleaseParam; exports.lowercaseIfSlug = lowercaseIfSlug; exports.normalizeOsVersion = normalizeOsVersion; const errors_1 = require("../errors"); async function disambiguateReleaseParam(balena, release) { const mixedCaseHex = /^[a-fA-F0-9]+$/; if (!release || !mixedCaseHex.test(release)) { throw new errors_1.ExpectedError('Invalid release parameter'); } const possibleUuidHashLength = [7, 8, 9, 32, 40, 62].includes(release.length); const hasLeadingZero = release[0] === '0'; const isOnlyNumerical = /^[0-9]+$/.test(release); if (!isOnlyNumerical && !possibleUuidHashLength) { throw new errors_1.ExpectedError('Invalid release parameter'); } if (hasLeadingZero && !possibleUuidHashLength) { throw new errors_1.ExpectedError('Invalid release parameter'); } if (!isOnlyNumerical || hasLeadingZero) { return release; } try { return (await balena.models.release.get(parseInt(release, 10), { $select: 'id', })).id; } catch (e) { if (e.name !== 'BalenaReleaseNotFound') { throw e; } } return (await balena.models.release.get(release, { $select: 'id' })).id; } async function lowercaseIfSlug(s) { return s.includes('/') ? s.toLowerCase() : s; } function normalizeOsVersion(version) { if (/^v?\d+\.\d+\.\d+/.test(version)) { if (version[0] === 'v') { version = version.slice(1); } } return version; } //# sourceMappingURL=normalization.js.map