rsnext/packages/next/compiled/jest-worker/index.js

1 line
24 KiB
JavaScript
Raw Normal View History

(()=>{"use strict";var e={281:(e,t,r)=>{const{PassThrough:s}=r(781);e.exports=function(){var e=[];var t=new s({objectMode:true});t.setMaxListeners(0);t.add=add;t.isEmpty=isEmpty;t.on("unpipe",remove);Array.prototype.slice.call(arguments).forEach(add);return t;function add(r){if(Array.isArray(r)){r.forEach(add);return this}e.push(r);r.once("end",remove.bind(null,r));r.once("error",t.emit.bind(t,"error"));r.pipe(t,{end:false});return this}function isEmpty(){return e.length==0}function remove(r){e=e.filter((function(e){return e!==r}));if(!e.length&&t.readable){t.end()}}}},662:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=_interopRequireDefault(r(30));var o=r(66);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}class Farm{constructor(e,t,r={}){var o,i;this._numOfWorkers=e;this._callback=t;_defineProperty(this,"_computeWorkerKey",void 0);_defineProperty(this,"_workerSchedulingPolicy",void 0);_defineProperty(this,"_cacheKeys",Object.create(null));_defineProperty(this,"_locks",[]);_defineProperty(this,"_offset",0);_defineProperty(this,"_taskQueue",void 0);this._computeWorkerKey=r.computeWorkerKey;this._workerSchedulingPolicy=(o=r.workerSchedulingPolicy)!==null&&o!==void 0?o:"round-robin";this._taskQueue=(i=r.taskQueue)!==null&&i!==void 0?i:new s.default}doWork(e,...t){const r=new Set;const addCustomMessageListener=e=>{r.add(e);return()=>{r.delete(e)}};const onCustomMessage=e=>{r.forEach((t=>t(e)))};const s=new Promise(((t,s,i)=>{const n=this._computeWorkerKey;const u=[o.CHILD_MESSAGE_CALL,false,e,t];let _=null;let l=null;if(n){l=n.call(this,e,...t);_=l==null?null:this._cacheKeys[l]}const onStart=e=>{if(l!=null){this._cacheKeys[l]=e}};const onEnd=(e,t)=>{r.clear();if(e){i(e)}else{s(t)}};const a={onCustomMessage:onCustomMessage,onEnd:onEnd,onStart:onStart,request:u};if(_){this._taskQueue.enqueue(a,_.getWorkerId());this._process(_.getWorkerId())}else{this._push(a)}}).bind(null,t));s.UNSTABLE_onCustomMessage=addCustomMessageListener;return s}_process(e){if(this._isLocked(e)){return this}const t=this._taskQueue.dequeue(e);if(!t){return this}if(t.request[1]){throw new Error("Queue implementation returned processed task")}const r=t.onEnd;const onEnd=(t,s)=>{r(t,s);this._unlock(e);this._process(e)};t.request[1]=true;this._lock(e);this._callback(e,t.request,t.onStart,onEnd,t.onCustomMessage);return this}_push(e){this._taskQueue.enqueue(e);const t=this._getNextWorkerOffset();for(let r=0;r<this._numOfWorkers;r++){this._process((t+r)%this._numOfWorkers);if(e.request[1]){break}}return this}_getNextWorkerOffset(){switch(this._workerSchedulingPolicy){case"in-order":return 0;case"round-robin":return this._offset++}}_lock(e){this._locks[e]=true}_unlock(e){this._locks[e]=false}_isLocked(e){return this._locks[e]}}t["default"]=Farm},30:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}class FifoQueue{constructor(){_defineProperty(this,"_workerQueues",[]);_defineProperty(this,"_sharedQueue",new InternalQueue)}enqueue(e,t){if(t==null){this._sharedQueue.enqueue(e);return}let r=this._workerQueues[t];if(r==null){r=this._workerQueues[t]=new InternalQueue}const s=this._sharedQueue.peekLast();const o={previousSharedTask:s,task:e};r.enqueue(o)}dequeue(e){var t,r,s;const o=(t=this._workerQueues[e])===null||t===void 0?void 0:t.peek();const i=(r=o===null||o===void 0?void 0:(s=o.previousSharedTask)===null||s===void 0?void 0:s.request[1])!==null&&r!==void 0?r:true;if(o!=null&&i){var n,u,_;return(n=(u=this._workerQueues[e])===null||u===void 0?void 0:(_=u.dequeue())===null||_===void 0?void 0:_.task)!==null&&n!==void 0?n:null}return this._sharedQueue.dequeue()}}t["default"]=FifoQueue;class InternalQueue{constructor(){_defineProperty(this,"_head",null);_defineProperty(this,"_last"