UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

38 lines (35 loc) • 1.04 kB
import { createWorkletRuntime, runOnRuntimeAsync } from "react-native-worklets"; var runtime = null; var queue = Promise.resolve(); function createWorkletExecutor(calculate) { var disposed = false; return { execute(request, isCurrent) { var job = queue.then(async function() { if (disposed || !isCurrent(request.revision)) return null; runtime !== null && runtime !== void 0 ? runtime : runtime = createWorkletRuntime({ name: "one-background" }); var value = await runOnRuntimeAsync(runtime, function(input) { "worklet"; var result = calculate(input); if (result instanceof Promise) throw new TypeError("background computations must be synchronous"); return result; }, request.input); return { revision: request.revision, value }; }); queue = job.then(function() { return void 0; }, function() { return void 0; }); return job; }, dispose() { disposed = true; } }; } export { createWorkletExecutor }; //# sourceMappingURL=executor.native.js.map