UNPKG

wonder.js

Version:
88 lines (76 loc) 4.1 kB
'use strict'; var Most = require("most"); var StateDataMain$Wonderjs = require("../data/StateDataMain.js"); var WonderMostAnimationFrame = require("wonder-most-animation-frame"); var StateDataMainService$Wonderjs = require("../state/StateDataMainService.js"); var WorkerJobMainService$Wonderjs = require("../job/worker/WorkerJobMainService.js"); var TimeControllerService$Wonderjs = require("../../../record/main/timeController/TimeControllerService.js"); var WorkerJobHandleSystem$Wonderjs = require("../../../../job/worker/WorkerJobHandleSystem.js"); var NoWorkerJobMainService$Wonderjs = require("../job/no_worker/NoWorkerJobMainService.js"); var NoWorkerJobHandleSystem$Wonderjs = require("../../../../job/no_worker/NoWorkerJobHandleSystem.js"); var WorkerDetectMainService$Wonderjs = require("../workerDetect/WorkerDetectMainService.js"); function _workerInit(stateData, state) { return WorkerJobMainService$Wonderjs.getMainInitJobStream(stateData, /* tuple */[ WorkerJobHandleSystem$Wonderjs.createMainInitJobHandleMap, WorkerJobHandleSystem$Wonderjs.getMainInitJobHandle ], state); } function _noWorkerInit(state) { return NoWorkerJobMainService$Wonderjs.execNoWorkerInitJobs(NoWorkerJobMainService$Wonderjs.init(/* tuple */[ NoWorkerJobHandleSystem$Wonderjs.createInitJobHandleMap, NoWorkerJobHandleSystem$Wonderjs.createLoopJobHandleMap ], state)); } function _computeElapseTime(time, state) { state[/* timeControllerRecord */35] = TimeControllerService$Wonderjs.computeElapseTime(time, state[/* timeControllerRecord */35]); return state; } function _createWorkerLoopStream(param) { return Most.continueWith((function (param) { return _createWorkerLoopStream(/* () */0); }), Most.flatMap((function (time) { var state = _computeElapseTime(time, StateDataMainService$Wonderjs.unsafeGetState(StateDataMain$Wonderjs.stateData)); return Most.map((function (e) { return /* () */0; }), WorkerJobMainService$Wonderjs.getMainLoopJobStream(StateDataMain$Wonderjs.stateData, /* tuple */[ WorkerJobHandleSystem$Wonderjs.createMainLoopJobHandleMap, WorkerJobHandleSystem$Wonderjs.getMainLoopJobHandle ], state)); }), WonderMostAnimationFrame.nextAnimationFrame())); } function _run(time, state) { return NoWorkerJobMainService$Wonderjs.execNoWorkerLoopJobs(_computeElapseTime(time, state)); } function loopBody(time, state) { return NoWorkerJobMainService$Wonderjs.execNoWorkerLoopJobs(_computeElapseTime(time, state)); } function _noWorkerLoop(time) { return requestAnimationFrame((function (time) { var state = StateDataMainService$Wonderjs.unsafeGetState(StateDataMain$Wonderjs.stateData); StateDataMainService$Wonderjs.setState(StateDataMain$Wonderjs.stateData, NoWorkerJobMainService$Wonderjs.execNoWorkerLoopJobs(_computeElapseTime(time, state))); _noWorkerLoop(time); return /* () */0; })); } function start(state) { var match = WorkerDetectMainService$Wonderjs.isUseWorker(state); if (match) { Most.drain(_workerInit(StateDataMain$Wonderjs.stateData, StateDataMainService$Wonderjs.setState(StateDataMain$Wonderjs.stateData, state)).concat(_createWorkerLoopStream(/* () */0))); return /* () */0; } else { StateDataMainService$Wonderjs.setState(StateDataMain$Wonderjs.stateData, _noWorkerInit(state)); _noWorkerLoop(0); return /* () */0; } } var init = _noWorkerInit; exports._workerInit = _workerInit; exports._noWorkerInit = _noWorkerInit; exports._computeElapseTime = _computeElapseTime; exports._createWorkerLoopStream = _createWorkerLoopStream; exports._run = _run; exports.init = init; exports.loopBody = loopBody; exports._noWorkerLoop = _noWorkerLoop; exports.start = start; /* most Not a pure module */