ui5plugin-parser
Version:
129 lines (128 loc) • 5.48 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.URLBuilder = void 0;
const ParserPool_1 = require("../../parser/pool/ParserPool");
const SAPNode_1 = require("../librarydata/SAPNode");
const AbstractBaseClass_1 = require("../parsing/ui5class/AbstractBaseClass");
class URLBuilder {
constructor(configHandler) {
this._URLHost = configHandler.getDataSource();
this._UI5Version = configHandler.getUI5Version();
}
getMarkupUrlForClassApi(SAPClass) {
const className = SAPClass instanceof SAPNode_1.SAPNode
? SAPClass.getName()
: SAPClass instanceof AbstractBaseClass_1.AbstractBaseClass
? SAPClass.className
: "";
if (ParserPool_1.default.getManifestForClass(className) || this._isNativeClass(className)) {
return "";
}
return this._wrapInMarkup(this.getUrlForClassApi(SAPClass));
}
getMarkupUrlForPropertiesApi(SAPClass) {
if (ParserPool_1.default.getManifestForClass(SAPClass.className) || this._isNativeClass(SAPClass.className)) {
return "";
}
return this._wrapInMarkup(this._getUrlForPropertiesApi(SAPClass));
}
getMarkupUrlForAggregationApi(SAPClass) {
if (ParserPool_1.default.getManifestForClass(SAPClass.className) || this._isNativeClass(SAPClass.className)) {
return "";
}
return this._wrapInMarkup(this._geUrlForAggregationApi(SAPClass));
}
getMarkupUrlForAssociationApi(SAPClass) {
if (ParserPool_1.default.getManifestForClass(SAPClass.className) || this._isNativeClass(SAPClass.className)) {
return "";
}
return this._wrapInMarkup(this._geUrlForAssociationApi(SAPClass));
}
getMarkupUrlForEventsApi(SAPClass, eventName = "Events") {
if (ParserPool_1.default.getManifestForClass(SAPClass.className) || this._isNativeClass(SAPClass.className)) {
return "";
}
return this._wrapInMarkup(this._geUrlForEventsApi(SAPClass, eventName));
}
getMarkupUrlForMethodApi(SAPClass, methodName) {
const className = SAPClass instanceof SAPNode_1.SAPNode
? SAPClass.getName()
: SAPClass instanceof AbstractBaseClass_1.AbstractBaseClass
? SAPClass.className
: "";
if (ParserPool_1.default.getManifestForClass(className) || this._isNativeClass(className)) {
return "";
}
return this._wrapInMarkup(this.getUrlForMethodApi(SAPClass, methodName));
}
getUrlForClassApi(SAPClass) {
const className = SAPClass instanceof SAPNode_1.SAPNode
? SAPClass.getName()
: SAPClass instanceof AbstractBaseClass_1.AbstractBaseClass
? SAPClass.className
: "";
if (ParserPool_1.default.getManifestForClass(className) || this._isNativeClass(className)) {
return "";
}
return this._getUrlClassApiBase(className);
}
_getUrlForPropertiesApi(SAPClass) {
const urlBase = this._getUrlClassApiBase(SAPClass.className);
return `${urlBase}/controlProperties`;
}
_geUrlForEventsApi(SAPClass, eventName) {
const urlBase = this._getUrlClassApiBase(SAPClass.className);
return `${urlBase}/events/${eventName}`;
}
_geUrlForAggregationApi(SAPClass) {
const urlBase = this._getUrlClassApiBase(SAPClass.className);
return `${urlBase}/aggregations`;
}
_geUrlForAssociationApi(SAPClass) {
const urlBase = this._getUrlClassApiBase(SAPClass.className);
return `${urlBase}/associations`;
}
getUrlForMethodApi(SAPClass, methodName) {
const className = SAPClass instanceof SAPNode_1.SAPNode
? SAPClass.getName()
: SAPClass instanceof AbstractBaseClass_1.AbstractBaseClass
? SAPClass.className
: "";
if (ParserPool_1.default.getManifestForClass(className) || this._isNativeClass(className)) {
return "";
}
const urlBase = this._getUrlClassApiBase(className);
return `${urlBase}/methods/${methodName}`;
}
_isNativeClass(className) {
const standardClasses = ["array", "object", "promise", "function", "boolean", "void", "map"];
return standardClasses.includes(className.toLowerCase());
}
getAPIIndexUrl() {
return `${this._getUrlBase()}/docs/api/api-index.json`;
}
getDesignTimeUrlForLib(libDotNotation) {
const libPath = libDotNotation.replace(/\./g, "/");
return `${this._getUrlBase()}/test-resources/${libPath}/designtime/apiref/api.json`;
}
getIconURIs() {
return [
`${this._getUrlBase()}/test-resources/sap/m/demokit/iconExplorer/webapp/model/SAP-icons/groups.json`,
`${this._getUrlBase()}/test-resources/sap/m/demokit/iconExplorer/webapp/model/SAP-icons-TNT/groups.json`,
`${this._getUrlBase()}/test-resources/sap/m/demokit/iconExplorer/webapp/model/BusinessSuiteInAppSymbols/groups.json`
];
}
_wrapInMarkup(url) {
return `[UI5 API](${url})\n`;
}
_getUrlClassApiBase(className) {
return `${this._getUrlBase()}#/api/${className}`;
}
_getUrlBase() {
return `${this._URLHost}${this._UI5Version}`;
}
getUrlBase() {
return this._getUrlBase();
}
}
exports.URLBuilder = URLBuilder;