UNPKG

webgme-engine

Version:

WebGME server and Client API without a GUI

254 lines (214 loc) 10.3 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: plugin/PluginResult.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: plugin/PluginResult.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>/*globals define*/ /*eslint-env node, browser*/ /** * A module representing a PluginResult. * * @author lattmann / https://github.com/lattmann */ (function (factory) { if (typeof define === 'function' &amp;&amp; define.amd) { define(['plugin/PluginMessage', 'plugin/PluginResultBase'], factory); } else if (typeof module === 'object' &amp;&amp; module.exports) { module.exports = factory(require('./PluginMessage'), require('./PluginResultBase')); } }(function (PluginMessage, PluginResultBase) { 'use strict'; /** * Initializes a new instance of a plugin result object. * * Note: this object is JSON serializable see serialize method. * * @param config - deserializes an existing configuration to this object. * @constructor * @augments PluginResultBase * @alias PluginResult */ var PluginResult = function (config) { var pluginMessage, i; if (config) { this.success = config.success; this.pluginName = config.pluginName; this.pluginId = config.pluginId; this.startTime = config.startTime; this.finishTime = config.finishTime; this.messages = []; this.artifacts = config.artifacts; this.error = config.error; this.commits = config.commits; this.projectId = config.projectId; for (i = 0; i &lt; config.messages.length; i += 1) { if (config.messages[i] instanceof PluginMessage) { pluginMessage = config.messages[i]; } else { pluginMessage = new PluginMessage(config.messages[i]); } this.messages.push(pluginMessage); } } else { this.success = false; this.messages = []; // array of PluginMessages this.artifacts = []; // array of hashes this.pluginName = 'PluginName N/A'; this.startTime = null; this.finishTime = null; this.error = null; this.projectId = null; this.pluginId = null; this.commits = []; } }; // Prototypical inheritance from PluginResultBase. PluginResult.prototype = Object.create(PluginResultBase.prototype); PluginResult.prototype.constructor = PluginResult; /** * * @param {object} commitData * @param {string} commitData.commitHash - hash of the commit. * @param {string} commitData.status - storage.constants./SYNCED/FORKED/MERGED * @param {string} commitData.branchName - name of branch that got updated with the commitHash. */ PluginResult.prototype.addCommit = function (commitData) { this.commits.push(commitData); }; //------------------------------------------------------------------------------------------------------------------ //--------------- Methods used by the plugin manager /** * Sets the name of the plugin to which the result object belongs to. * * @param {string} pluginName - name of the plugin */ PluginResult.prototype.setPluginName = function (pluginName) { this.pluginName = pluginName; }; /** * Sets the name of the plugin to which the result object belongs to. * * @param {string} pluginName - name of the plugin */ PluginResult.prototype.setPluginId = function (pluginId) { this.pluginId = pluginId; }; /** * Sets the name of the projectId the result was generated from. * * @param {string} projectId - id of the project */ PluginResult.prototype.setProjectId = function (projectId) { this.projectId = projectId; }; /** * Gets the ISO 8601 representation of the time when the plugin started its execution. * * @returns {string} */ PluginResult.prototype.getStartTime = function () { return this.startTime; }; /** * Sets the ISO 8601 representation of the time when the plugin started its execution. * * @param {string} time */ PluginResult.prototype.setStartTime = function (time) { this.startTime = time; }; /** * Gets the ISO 8601 representation of the time when the plugin finished its execution. * * @returns {string} */ PluginResult.prototype.getFinishTime = function () { return this.finishTime; }; /** * Sets the ISO 8601 representation of the time when the plugin finished its execution. * * @param {string} time */ PluginResult.prototype.setFinishTime = function (time) { this.finishTime = time; }; /** * Gets error if any error occured during execution. * FIXME: should this be an Error object? * @returns {string} */ PluginResult.prototype.getError = function () { return this.error; }; /** * Sets the error string if any error occured during execution. * FIXME: should this be an Error object? * @param {string} time */ PluginResult.prototype.setError = function (error) { if (this.error) { // Do not overwrite user defined error. return; } if (error instanceof Error) { this.error = error.message; } else { this.error = error; } }; /** * Serializes this object to a JSON representation. * * @returns {{success: boolean, messages: plugin.PluginMessage[], pluginName: string, finishTime: stirng}} */ PluginResult.prototype.serialize = function () { var result = { success: this.success, projectId: this.projectId, messages: [], commits: this.commits, artifacts: this.artifacts, pluginName: this.pluginName, pluginId: this.pluginId, startTime: this.startTime, finishTime: this.finishTime, error: this.error }, i; for (i = 0; i &lt; this.messages.length; i += 1) { result.messages.push(this.messages[i].serialize()); } return result; }; return PluginResult; })); </code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="Server_GMEAuth.html">Server:GMEAuth</a></li><li><a href="Server_SafeStorage.html">Server:SafeStorage</a></li><li><a href="Server_UserProject.html">Server:UserProject</a></li><li><a href="module-Core.html">Core</a></li><li><a href="module-Storage.html">Storage</a></li><li><a href="module-crosscuts.html">crosscuts</a></li><li><a href="module-serialization.html">serialization</a></li></ul><h3>Externals</h3><ul><li><a href="external-Promise.html">Promise</a></li></ul><h3>Classes</h3><ul><li><a href="AddOnBase.html">AddOnBase</a></li><li><a href="AddOnUpdateResult.html">AddOnUpdateResult</a></li><li><a href="Artifact.html">Artifact</a></li><li><a href="BlobClient.html">BlobClient</a></li><li><a href="BlobMetadata.html">BlobMetadata</a></li><li><a href="BlobRunPluginClient.html">BlobRunPluginClient</a></li><li><a href="Client.html">Client</a></li><li><a href="Core.html">Core</a></li><li><a href="ExecutorClient.html">ExecutorClient</a></li><li><a href="GMENode.html">GMENode</a></li><li><a href="GmeLogger.html">GmeLogger</a></li><li><a href="InterPluginResult.html">InterPluginResult</a></li><li><a href="JobInfo.html">JobInfo</a></li><li><a href="OutputInfo.html">OutputInfo</a></li><li><a href="PluginBase.html">PluginBase</a></li><li><a href="PluginConfig.html">PluginConfig</a></li><li><a href="PluginMessage.html">PluginMessage</a></li><li><a href="PluginNodeDescription.html">PluginNodeDescription</a></li><li><a href="PluginResult.html">PluginResult</a></li><li><a href="Project.html">Project</a></li><li><a href="ProjectInterface.html">ProjectInterface</a></li><li><a href="Server_GMEAuth-GMEAuth.html">GMEAuth</a></li><li><a href="Server_SafeStorage-SafeStorage.html">SafeStorage</a></li><li><a href="Server_UserProject-UserProject.html">UserProject</a></li><li><a href="WebsocketRouter.html">WebsocketRouter</a></li><li><a href="WebsocketRouterUser.html">WebsocketRouterUser</a></li></ul><h3>Events</h3><ul><li><a href="Client.html#event:BRANCH_CHANGED">BRANCH_CHANGED</a></li><li><a href="Client.html#event:BRANCH_CLOSED">BRANCH_CLOSED</a></li><li><a href="Client.html#event:BRANCH_OPENED">BRANCH_OPENED</a></li><li><a href="Client.html#event:BRANCH_STATUS_CHANGED">BRANCH_STATUS_CHANGED</a></li><li><a href="Client.html#event:CONNECTED_USERS_CHANGED">CONNECTED_USERS_CHANGED</a></li><li><a href="Client.html#event:NETWORK_STATUS_CHANGED">NETWORK_STATUS_CHANGED</a></li><li><a href="Client.html#event:NOTIFICATION">NOTIFICATION</a></li><li><a href="Client.html#event:PLUGIN_FINISHED">PLUGIN_FINISHED</a></li><li><a href="Client.html#event:PLUGIN_INITIATED">PLUGIN_INITIATED</a></li><li><a href="Client.html#event:PLUGIN_NOTIFICATION">PLUGIN_NOTIFICATION</a></li><li><a href="Client.html#event:PROJECT_CLOSED">PROJECT_CLOSED</a></li><li><a href="Client.html#event:PROJECT_OPENED">PROJECT_OPENED</a></li></ul><h3><a href="global.html">Global</a></h3> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Fri Jun 21 2024 09:43:40 GMT-0400 (Eastern Daylight Time) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>