@ui5/task-adaptation
Version:
Custom task for ui5-builder which allows building UI5 Flexibility Adaptation Projects for SAP BTP, Cloud Foundry environment
98 lines • 3.33 kB
JavaScript
import * as Log from "@ui5/logger";
import * as fs from "fs";
import { fileURLToPath } from "url";
import { posix as path } from "path";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const log = Log.getLogger("rollup-plugin-ui5-resolve-task-adaptation");
const CHANGES_EXT = ".change";
const MANIFEST_CHANGE = "appdescr_";
export function dotToUnderscore(value) {
return value.replace(/\./g, "_");
}
export function validateObject(options, properties, message) {
for (const property of properties) {
if (!options[property]) {
throw new Error(`'${String(property)}' ${message}`);
}
}
}
export function escapeRegex(update) {
return update.replaceAll(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
export function insertInArray(array, index, insert) {
array.splice(index, 0, insert);
}
export function writeTempAnnotations({ writeTempFiles }, name, language, content) {
const TEMP_DIST_FOLDER = path.join(process.cwd(), "dist-debug", name);
if (writeTempFiles) {
if (!fs.existsSync(TEMP_DIST_FOLDER)) {
fs.mkdirSync(TEMP_DIST_FOLDER, { recursive: true });
}
if (language) {
name += "-" + language.i18n;
}
fs.writeFileSync(path.join(TEMP_DIST_FOLDER, name + ".xml"), content);
}
}
export function trimExtension(filePath) {
return filePath.replace(/\.[^/.]+$/, "");
}
export function traverse(json, paths, callback) {
if (!json) {
return;
}
for (const key of Object.keys(json)) {
const internPaths = [...paths];
internPaths.push(key);
if (typeof json[key] === "object") {
if (Array.isArray(json[key])) {
const array = json[key];
for (let i = 0; i < array.length; i++) {
if (typeof array[i] === "object") {
traverse(array[i], internPaths, callback);
}
else {
callback(array, i, internPaths);
}
}
}
else {
traverse(json[key], internPaths, callback);
}
}
else {
callback(json, key, internPaths);
}
}
}
export function logBuilderVersion() {
try {
const packageJson = fs.readFileSync(path.join(__dirname, "../../package.json"), { encoding: "utf-8" });
const packageJsonVersion = JSON.parse(packageJson).version;
log.info(`Running app-variant-bundler-build with version ${packageJsonVersion}`);
// eslint-disable-next-line @typescript-eslint/no-unused-vars
}
catch (e) {
// do nothing
}
}
export function logBetaUsage() {
log.info("Beta features enabled");
}
export function getUniqueName(existingNames, template) {
let suffix = -1;
let suffixString;
do {
suffixString = suffix === -1 ? "" : suffix;
suffix++;
} while (existingNames.includes(template + suffixString));
return template + suffixString;
}
export function isManifestChange(filename, content) {
if (filename.endsWith(CHANGES_EXT)) {
const change = JSON.parse(content);
return change.changeType?.startsWith(MANIFEST_CHANGE);
}
return false;
}
//# sourceMappingURL=commonUtil.js.map