UNPKG

@aurahelper/languages

Version:

Language Libraries to work with XML, Aura, Apex... files. tokenizers, parsers, system classes and much more

172 lines 7.78 kB
"use strict"; 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