coz-engine
Version:
Abstract engine for coz
32 lines (25 loc) • 3.04 kB
JavaScript
/**
* Define a engine constructor.
* @memberof module:coz-engine/lib
* @function define
* @param {object} properties - Properties for constructor.
* @returns {function} - Constructor function.
*/
;
var Engine = require('./engine');
var assert = require('assert');
/** @lends define */
function define(properties) {
assert(properties, 'Properties is required.');
var DefinedEngine = function DefinedEngine() {
var s = this;
s.init.apply(s, arguments);
};
DefinedEngine.$isEngine = true;
DefinedEngine.prototype = new Engine().set(properties);
DefinedEngine.prototype._constructor = DefinedEngine;
assert(properties.compile, 'properties.compile is is required.');
return DefinedEngine;
}
module.exports = define;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRlZmluZS5qcyJdLCJuYW1lcyI6WyJFbmdpbmUiLCJyZXF1aXJlIiwiYXNzZXJ0IiwiZGVmaW5lIiwicHJvcGVydGllcyIsIkRlZmluZWRFbmdpbmUiLCJzIiwiaW5pdCIsImFwcGx5IiwiYXJndW1lbnRzIiwiJGlzRW5naW5lIiwicHJvdG90eXBlIiwic2V0IiwiX2NvbnN0cnVjdG9yIiwiY29tcGlsZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0FBT0E7O0FBRUEsSUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCO0FBRUE7OztBQUNBLFNBQVNFLE1BQVQsQ0FBaUJDLFVBQWpCLEVBQTZCO0FBQzNCRixFQUFBQSxNQUFNLENBQUNFLFVBQUQsRUFBYSx5QkFBYixDQUFOOztBQUVBLE1BQUlDLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsR0FBWTtBQUM5QixRQUFJQyxDQUFDLEdBQUcsSUFBUjtBQUNBQSxJQUFBQSxDQUFDLENBQUNDLElBQUYsQ0FBT0MsS0FBUCxDQUFhRixDQUFiLEVBQWdCRyxTQUFoQjtBQUNELEdBSEQ7O0FBSUFKLEVBQUFBLGFBQWEsQ0FBQ0ssU0FBZCxHQUEwQixJQUExQjtBQUVBTCxFQUFBQSxhQUFhLENBQUNNLFNBQWQsR0FBMEIsSUFBSVgsTUFBSixHQUFhWSxHQUFiLENBQWlCUixVQUFqQixDQUExQjtBQUNBQyxFQUFBQSxhQUFhLENBQUNNLFNBQWQsQ0FBd0JFLFlBQXhCLEdBQXVDUixhQUF2QztBQUVBSCxFQUFBQSxNQUFNLENBQUNFLFVBQVUsQ0FBQ1UsT0FBWixFQUFxQixvQ0FBckIsQ0FBTjtBQUVBLFNBQU9ULGFBQVA7QUFDRDs7QUFFRFUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCYixNQUFqQiIsInNvdXJjZVJvb3QiOiIuLi8uLi9saWIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmluZSBhIGVuZ2luZSBjb25zdHJ1Y3Rvci5cbiAqIEBtZW1iZXJvZiBtb2R1bGU6Y296LWVuZ2luZS9saWJcbiAqIEBmdW5jdGlvbiBkZWZpbmVcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wZXJ0aWVzIC0gUHJvcGVydGllcyBmb3IgY29uc3RydWN0b3IuXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259IC0gQ29uc3RydWN0b3IgZnVuY3Rpb24uXG4gKi9cbid1c2Ugc3RyaWN0J1xuXG5jb25zdCBFbmdpbmUgPSByZXF1aXJlKCcuL2VuZ2luZScpXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKVxuXG4vKiogQGxlbmRzIGRlZmluZSAqL1xuZnVuY3Rpb24gZGVmaW5lIChwcm9wZXJ0aWVzKSB7XG4gIGFzc2VydChwcm9wZXJ0aWVzLCAnUHJvcGVydGllcyBpcyByZXF1aXJlZC4nKVxuXG4gIGxldCBEZWZpbmVkRW5naW5lID0gZnVuY3Rpb24gKCkge1xuICAgIGxldCBzID0gdGhpc1xuICAgIHMuaW5pdC5hcHBseShzLCBhcmd1bWVudHMpXG4gIH1cbiAgRGVmaW5lZEVuZ2luZS4kaXNFbmdpbmUgPSB0cnVlXG5cbiAgRGVmaW5lZEVuZ2luZS5wcm90b3R5cGUgPSBuZXcgRW5naW5lKCkuc2V0KHByb3BlcnRpZXMpXG4gIERlZmluZWRFbmdpbmUucHJvdG90eXBlLl9jb25zdHJ1Y3RvciA9IERlZmluZWRFbmdpbmVcblxuICBhc3NlcnQocHJvcGVydGllcy5jb21waWxlLCAncHJvcGVydGllcy5jb21waWxlIGlzIGlzIHJlcXVpcmVkLicpXG5cbiAgcmV0dXJuIERlZmluZWRFbmdpbmVcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkZWZpbmVcbiJdfQ==