@cuba-platform/front-generator
Version:
CUBA Platform front-end clients generator
28 lines (25 loc) • 912 B
JavaScript
/** @module env/util */
;
const GroupedQueue = require('grouped-queue');
/**
* Create a "sloppy" copy of an initial Environment object. The focus of this method is on
* performance rather than correctly deep copying every property or recreating a correct
* instance. Use carefully and don't rely on `hasOwnProperty` of the copied environment.
*
* Every property are shared except the runLoop which is regenerated.
*
* @param {Environment} initialEnv - an Environment instance
* @return {Environment} sloppy copy of the initial Environment
*/
exports.duplicateEnv = initialEnv => {
const queues = require('../environment').queues;
// Hack: Create a clone of the environment with a new instance of `runLoop`
const env = Object.create(initialEnv);
env.runLoop = new GroupedQueue(queues);
return env;
};
/**
* Log utility
* @see {@link env/log}
*/
exports.log = require('./log');