@aurahelper/languages
Version:
Language Libraries to work with XML, Aura, Apex... files. tokenizers, parsers, system classes and much more
172 lines • 7.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.System = void 0;
var core_1 = require("@aurahelper/core");
var StrUtils = core_1.CoreUtils.StrUtils;
var systemClassPath = __dirname + '/classes';
var auraDataPath = __dirname + '/aura';
var System = /** @class */ (function () {
function System() {
}
/**
* Method to get all namespaces data
* @returns {{ [key: string]: { [key: string]: ApexClass | ApexInterface | ApexEnum } }} Return a Map with NS name as key and Map as value with class, enum or interface name as key and Apex node data as value
*/
System.getAllNamespacesData = function () {
var allNsData = {};
var nsFiles = core_1.FileReader.readDirSync(core_1.PathUtils.getAbsolutePath(systemClassPath));
for (var _i = 0, nsFiles_1 = nsFiles; _i < nsFiles_1.length; _i++) {
var nsFile = nsFiles_1[_i];
var nsName = StrUtils.replace(nsFile, '.json', '');
var nsData = System.getNamespaceData(nsName);
if (nsData) {
allNsData[nsName] = nsData;
}
}
return allNsData;
};
/**
* Method to get data from specified namespace
* @param {string} nsName Namespace name to get all data
* @returns {{ [key: string]: ApexClass | ApexInterface | ApexEnum } | undefined } Return a Map with class, enum or interface name as key and Apex node data as value
*/
System.getNamespaceData = function (nsName) {
var nsFolder = core_1.PathUtils.getAbsolutePath(systemClassPath) + '/' + nsName.toLowerCase();
if (core_1.FileChecker.isExists(nsFolder)) {
var nsData = {};
var nsFiles = core_1.FileReader.readDirSync(nsFolder);
for (var _i = 0, nsFiles_2 = nsFiles; _i < nsFiles_2.length; _i++) {
var classFile = nsFiles_2[_i];
var className = StrUtils.replace(classFile, '.json', '');
var obj = JSON.parse(core_1.FileReader.readFileSync(nsFolder + '/' + classFile));
if (obj.nodeType === core_1.ApexNodeTypes.CLASS) {
nsData[className] = new core_1.ApexClass(obj);
}
else if (obj.nodeType === core_1.ApexNodeTypes.INTERFACE) {
nsData[className] = new core_1.ApexInterface(obj);
}
else {
nsData[className] = new core_1.ApexEnum(obj);
}
}
return nsData;
}
else {
return undefined;
}
};
/**
* Method to get All Namespaces summary
* @returns { [key: string]: { [key: string]: ClassSummary } } Return a Map with NS name as key and Map value with class name as key and Class summary as value
*/
System.getAllNamespacesSummary = function () {
var allNsDataSummary = {};
var nsFiles = core_1.FileReader.readDirSync(core_1.PathUtils.getAbsolutePath(systemClassPath));
for (var _i = 0, nsFiles_3 = nsFiles; _i < nsFiles_3.length; _i++) {
var nsFile = nsFiles_3[_i];
var nsName = StrUtils.replace(nsFile, '.json', '');
var nsSummary = System.getNamespaceSummary(nsName);
if (nsSummary) {
allNsDataSummary[nsName] = nsSummary;
}
}
return allNsDataSummary;
};
/**
* Method to get namespace classes summary
* @param {string} nsName Namespace name to get summary
* @returns {{ [key: string]: ClassSummary } | undefined} Return a Map with class, inerface or enum as key and ClassSummary object as data
*/
System.getNamespaceSummary = function (nsName) {
var nsFolder = core_1.PathUtils.getAbsolutePath(systemClassPath) + '/' + nsName.toLowerCase();
if (core_1.FileChecker.isExists(nsFolder)) {
var nsData = {};
var nsFiles = core_1.FileReader.readDirSync(nsFolder);
for (var _i = 0, nsFiles_4 = nsFiles; _i < nsFiles_4.length; _i++) {
var classFile = nsFiles_4[_i];
var className = StrUtils.replace(classFile, '.json', '');
var data = JSON.parse(core_1.FileReader.readFileSync(nsFolder + '/' + classFile));
nsData[className] = {
name: data['name'],
namespace: data["namespace"],
description: data["description"],
documentation: data["documentation"],
};
}
return nsData;
}
else {
return undefined;
}
};
/**
* Method to get all namespace names
* @returns {string[]} Return a list with all namespace names
*/
System.getAllNamespaces = function () {
var nsNames = [];
var nsFiles = core_1.FileReader.readDirSync(core_1.PathUtils.getAbsolutePath(systemClassPath));
for (var _i = 0, nsFiles_5 = nsFiles; _i < nsFiles_5.length; _i++) {
var nsFile = nsFiles_5[_i];
var nsData = StrUtils.replace(nsFile, '.json', '');
var nsName = getNamespaceName(nsData);
if (nsName) {
nsNames.push(nsName);
}
}
return nsNames;
};
/**
* Method to get class data from specified namespace
* @param {string} nsName Namespace name to get class
* @param {string} className Class name to get data
* @returns {ApexInterface | ApexClass | ApexEnum | undefined} Return the selected Apex Node or undefined if namespace or class not exists (or Aura Helper has no data)
*/
System.getClass = function (nsName, className) {
var nsFolder = core_1.PathUtils.getAbsolutePath(systemClassPath) + '/' + nsName.toLowerCase();
if (core_1.FileChecker.isExists(nsFolder)) {
var classFile = nsFolder + '/' + className.toLowerCase() + '.json';
if (core_1.FileChecker.isExists(classFile)) {
var obj = JSON.parse(core_1.FileReader.readFileSync(classFile));
if (obj.nodeType === core_1.ApexNodeTypes.CLASS) {
obj = new core_1.ApexClass(obj);
}
else if (obj.nodeType === core_1.ApexNodeTypes.INTERFACE) {
obj = new core_1.ApexInterface(obj);
}
else {
obj = new core_1.ApexEnum(obj);
}
return obj;
}
else {
return undefined;
}
}
else {
return undefined;
}
};
/**
* Method to get the Aura Base Components Details
* @returns {any} Return a JSON with Aura Components system data
*/
System.getAuraComponentDetails = function () {
return JSON.parse(core_1.FileReader.readFileSync(core_1.PathUtils.getAbsolutePath(auraDataPath) + '/baseComponentsDetail.json'));
};
return System;
}());
exports.System = System;
function getNamespaceName(nsName) {
var nsFolder = core_1.PathUtils.getAbsolutePath(systemClassPath) + '/' + nsName.toLowerCase();
if (core_1.FileChecker.isExists(nsFolder)) {
var nsFiles = core_1.FileReader.readDirSync(nsFolder);
for (var _i = 0, nsFiles_6 = nsFiles; _i < nsFiles_6.length; _i++) {
var classFile = nsFiles_6[_i];
var data = JSON.parse(core_1.FileReader.readFileSync(nsFolder + '/' + classFile));
return data["namespace"];
}
}
return undefined;
}
//# sourceMappingURL=system.js.map