UNPKG

coz-engine

Version:
32 lines (25 loc) 3.04 kB
/** * Define a engine constructor. * @memberof module:coz-engine/lib * @function define * @param {object} properties - Properties for constructor. * @returns {function} - Constructor function. */ 'use strict'; 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==