UNPKG

hayd-caf

Version:

Haystacks D-CAF: Distinguished Cloud Automation Framework is a web/cloud/SaaS/mobile GUI automation plugin that leverages a suite of business rules and a factory pattern to auto-generate functions and strings for logging that are used to execute test acti

182 lines (153 loc) 9.72 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: controllers/warden.js</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: controllers/warden.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>/** * @file warden.js * @module warden * @description Contains all the functions to manage the entire plugin at the highest level. * Also provides an interface to easily manage all the plugin features and various functionality from a single entry point. * @requires module:plugin.constants * @requires module:chiefCommander * @requires module:chiefConfiguration * @requires module:chiefData * @requires module:chiefRules * @requires module:chiefTheme * @requires module:chiefWorkflow * @requires module:loggers * @requires module:pluginData * @requires {@link https://www.npmjs.com/package/@haystacks/constants|@haystacks/constants} * @requires {@link https://www.npmjs.com/package/path|path} * @author Seth Hollingsead * @date 2023/04/04 * @copyright Copyright © 2023-… by Seth Hollingsead. All rights reserved */ // Internal imports import * as plg from '../constants/plugin.constants.js'; import chiefCommander from './chiefCommander.js'; import chiefConfiguration from './chiefConfiguration.js'; import chiefData from './chiefData.js'; import chiefRules from './chiefRules.js'; import chiefTheme from './chiefTheme.js'; import chiefWorkflow from './chiefWorkflow.js'; import loggers from '../executrix/loggers.js'; import D from '../structures/pluginData.js'; // External imports import hayConst from '@haystacks/constants'; import path from 'path'; const {bas, cfg, msg, wrd} = hayConst; const baseFileName = path.basename(import.meta.url, path.extname(import.meta.url)); // plugins.hayD-CAF.controllers.warden. const namespacePrefix = wrd.cplugins + bas.cDot + plg.cpluginName + bas.cDot + wrd.ccontrollers + bas.cDot + baseFileName + bas.cDot; /** * @function initPluginRules * @description This is a wrapper call for chiefRules.initBusinessRules. * @return {object} A JSON object that contains an array of function objects that map function name to function call for all the business rules. * @author Seth Hollingsead * @date 2023/04/04 */ async function initPluginRules() { // let functionName = initPluginRules.name; // await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function); let returnData = {}; returnData = await chiefRules.initBusinessRules(); // await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + JSON.stringify(returnData)); // await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function); return returnData; } /** * @function initPluginCommands * @description This is a wrapper call for chiefCommander.initCommands. * @return {object} A JSON object that contains an array of function objects that map function name to function call for all of the commands. * @author Seth Hollingsead * @date 2023/04/04 */ async function initPluginCommands() { // let functionName = initPluginCommands.name; // await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function); let returnData = {}; returnData = await chiefCommander.initCommands(); // await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + JSON.stringify(returnData)); // await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function); return returnData; } /** * @function initPluginSchema * @description Setup all of the plugin data and configuration settings. * @param {object} configData All of the configuration data and paths that should be parsed as part of the setup process. * @return {object} All of the plugin data that should be returned to the rest of the Haystacks platform. * @author Seth Hollingsead * @date 2023/04/04 */ async function initPluginSchema(configData) { // let functionName = initPluginSchema.name; // await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function); // configData is: // await loggers.consoleLog(namespacePrefix + functionName, msg.cconfigDataIs + JSON.stringify(configData)); await chiefData.initializeData(); D[wrd.cdata][cfg.cLogFilePathAndName] = configData[cfg.cLogFilePathAndName]; D[wrd.cdata] = configData; // Persist all of the plugin data we have so far. let pluginConfigPath = configData[cfg.cpluginConfigReferencePath]; let pluginCommandAliasesPath = configData[cfg.cpluginCommandAliasesPath]; let pluginWorkflowsPath = configData[cfg.cpluginWorkflowsPath]; let pluginThemesPath = configData[cfg.cpluginThemesPath]; // await loggers.consoleLog(namespacePrefix + functionName, msg.cpluginConfigPathIs + pluginConfigPath); // await loggers.consoleLog(namespacePrefix + functionName, msg.cpluginCommandAliasesPathIs + pluginCommandAliasesPath); // await loggers.consoleLog(namespacePrefix + functionName, msg.cpluginWorkflowsPathIs + pluginWorkflowsPath); // await loggers.consoleLog(namespacePrefix + functionName, msg.cpluginThemesPathIs + pluginThemesPath); // Load the configuration data for the plugin. let pluginConfigData = await chiefConfiguration.setupConfiguration(pluginConfigPath); // await loggers.consoleLog(namespacePrefix + functionName, msg.cpluginConfigDataIs + JSON.stringify(pluginConfigData)); D[wrd.cdata][wrd.cconfiguration] = {}; D[wrd.cdata][wrd.cconfiguration] = pluginConfigData; // Load the command aliases data for the plugin. let pluginCommandAliasesData = await chiefCommander.setupCommandAliases(pluginCommandAliasesPath); // await loggers.consoleLog(namespacePrefix + functionName, msg.cpluginCommandAliasesDataIs + JSON.stringify(pluginCommandAliasesData)); D[wrd.cdata][wrd.cCommands + wrd.cAliases] = {}; D[wrd.cdata][wrd.cCommands + wrd.cAliases] = pluginCommandAliasesData; // Load the workflows data for the plugin. let pluginWorkflowsData = await chiefWorkflow.setupWorkflows(pluginWorkflowsPath); // await loggers.consoleLog(namespacePrefix + functionName, msg.cpluginWorkflowsDataIs + JSON.stringify(pluginWorkflowsData)); D[wrd.cdata][wrd.cCommand + wrd.cWorkflows] = {}; D[wrd.cdata][wrd.cCommand + wrd.cWorkflows] = pluginWorkflowsData; // Load the themes data for the plugin. let pluginThemesData = await chiefTheme.setupThemes(pluginThemesPath); // await loggers.consoleLog(namespacePrefix + functionName, msg.cpluginThemesDataIs + JSON.stringify(pluginThemesData)); D[wrd.cdata][wrd.cThemes] = {}; D[wrd.cdata][wrd.cThemes] = pluginThemesData; // await loggers.consoleLog(namespacePrefix + functionName, msg.ccontentsOfDare + JSON.stringify(D)); // await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function); } export default { initPluginRules, initPluginCommands, initPluginSchema };</code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-allPluginConstantsValidationMetadata.html">allPluginConstantsValidationMetadata</a></li><li><a href="module-chiefCommander.html">chiefCommander</a></li><li><a href="module-chiefConfiguration.html">chiefConfiguration</a></li><li><a href="module-chiefData.html">chiefData</a></li><li><a href="module-chiefRules.html">chiefRules</a></li><li><a href="module-chiefTheme.html">chiefTheme</a></li><li><a href="module-chiefWorkflow.html">chiefWorkflow</a></li><li><a href="module-commandBroker.html">commandBroker</a></li><li><a href="module-commandsLibrary.html">commandsLibrary</a></li><li><a href="module-dCafCommands.html">dCafCommands</a></li><li><a href="module-dataBroker.html">dataBroker</a></li><li><a href="module-loggers.html">loggers</a></li><li><a href="module-main.html">main</a></li><li><a href="module-pluginData.html">pluginData</a></li><li><a href="module-ruleBroker.html">ruleBroker</a></li><li><a href="module-rulesLibrary.html">rulesLibrary</a></li><li><a href="module-selectorConstruction.html">selectorConstruction</a></li><li><a href="module-warden.html">warden</a></li><li><a href="plugin.business.constants.module_validation.html">plugin.business.constants.validation</a></li><li><a href="plugin.business.module_constants.html">plugin.business.constants</a></li><li><a href="plugin.command.constants.module_validation.html">plugin.command.constants.validation</a></li><li><a href="plugin.command.module_constants.html">plugin.command.constants</a></li><li><a href="plugin.constants.module_validation.html">plugin.constants.validation</a></li><li><a href="plugin.message.constants.module_validation.html">plugin.message.constants.validation</a></li><li><a href="plugin.message.module_constants.html">plugin.message.constants</a></li><li><a href="plugin.module_constants.html">plugin.constants</a></li><li><a href="plugin.system.constants.module_validation.html">plugin.system.constants.validation</a></li><li><a href="plugin.system.module_constants.html">plugin.system.constants</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Fri Apr 28 2023 18:01:37 GMT-0500 (Central Daylight Time) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>