58 lines
2.6 KiB
JavaScript
58 lines
2.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.getVersionFromPackageXml = exports.getNameFromPackageXml = exports.getPathFromPackageXml = exports.readPackageXml = exports.getAPILevelFromPackageXml = void 0;
|
|
const utils_fs_1 = require("@ionic/utils-fs");
|
|
const errors_1 = require("../../../errors");
|
|
function getAPILevelFromPackageXml(packageXml) {
|
|
var _a;
|
|
const apiLevel = packageXml.find('./localPackage/type-details/api-level');
|
|
return (_a = apiLevel === null || apiLevel === void 0 ? void 0 : apiLevel.text) === null || _a === void 0 ? void 0 : _a.toString();
|
|
}
|
|
exports.getAPILevelFromPackageXml = getAPILevelFromPackageXml;
|
|
async function readPackageXml(path) {
|
|
const et = await Promise.resolve().then(() => require('elementtree'));
|
|
const contents = await (0, utils_fs_1.readFile)(path, { encoding: 'utf8' });
|
|
const etree = et.parse(contents);
|
|
return etree;
|
|
}
|
|
exports.readPackageXml = readPackageXml;
|
|
function getPathFromPackageXml(packageXml) {
|
|
const localPackage = packageXml.find('./localPackage');
|
|
if (!localPackage) {
|
|
throw new errors_1.SDKException(`Invalid SDK package.`, errors_1.ERR_INVALID_SDK_PACKAGE);
|
|
}
|
|
const path = localPackage.get('path');
|
|
if (!path) {
|
|
throw new errors_1.SDKException(`Invalid SDK package path.`, errors_1.ERR_INVALID_SDK_PACKAGE);
|
|
}
|
|
return path.toString();
|
|
}
|
|
exports.getPathFromPackageXml = getPathFromPackageXml;
|
|
function getNameFromPackageXml(packageXml) {
|
|
const name = packageXml.find('./localPackage/display-name');
|
|
if (!(name === null || name === void 0 ? void 0 : name.text)) {
|
|
throw new errors_1.SDKException(`Invalid SDK package name.`, errors_1.ERR_INVALID_SDK_PACKAGE);
|
|
}
|
|
return name.text.toString();
|
|
}
|
|
exports.getNameFromPackageXml = getNameFromPackageXml;
|
|
function getVersionFromPackageXml(packageXml) {
|
|
const versionElements = [
|
|
packageXml.find('./localPackage/revision/major'),
|
|
packageXml.find('./localPackage/revision/minor'),
|
|
packageXml.find('./localPackage/revision/micro'),
|
|
];
|
|
const textFromElement = (e) => ((e === null || e === void 0 ? void 0 : e.text) ? e.text.toString() : '');
|
|
const versions = [];
|
|
for (const version of versionElements.map(textFromElement)) {
|
|
if (!version) {
|
|
break;
|
|
}
|
|
versions.push(version);
|
|
}
|
|
if (versions.length === 0) {
|
|
throw new errors_1.SDKException(`Invalid SDK package version.`, errors_1.ERR_INVALID_SDK_PACKAGE);
|
|
}
|
|
return versions.join('.');
|
|
}
|
|
exports.getVersionFromPackageXml = getVersionFromPackageXml;
|