@ui5/task-adaptation
Version:
Custom task for ui5-builder which allows building UI5 Flexibility Adaptation Projects for SAP BTP, Cloud Foundry environment
48 lines • 1.6 kB
JavaScript
import MetadataJsonUtil from "./metadataJsonUtil.js";
export default class MetadataJsonReferenceUtil {
json;
aliases = null;
namespaces = null;
constructor(json) {
this.json = json;
}
aliasToNamespace(target) {
return this.convertReference(this.getAliases(), target);
}
namespaceToAlias(target) {
return this.convertReference(this.getNamespaces(), target);
}
convertReference(references, target) {
for (const alias of references.keys()) {
target = target.replaceAll(alias + ".", references.get(alias) + ".");
}
return target;
}
getAliases() {
this.initReferences();
return this.aliases;
}
getNamespaces() {
this.initReferences();
return this.namespaces;
}
initReferences() {
if (!this.aliases || !this.namespaces) {
const references = new Array();
for (const ref of MetadataJsonUtil.getReferences(this.json)) {
references.push(...ref.includes);
}
references.push(MetadataJsonUtil.getSchemaReference(this.json));
this.aliases = new Map();
this.namespaces = new Map();
for (const mapping of references) {
if (mapping.alias && mapping.namespace) {
const { alias, namespace } = mapping;
this.aliases.set(alias, namespace);
this.namespaces.set(namespace, alias);
}
}
}
}
}
//# sourceMappingURL=metadataJsonReferenceUtil.js.map