website/_webpack/tryFlowWorker.js (64 lines of code) (raw):

/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import {load} from './js/flow-loader'; var versionCache = {}; this.onmessage = function(e) { var data = e.data; switch (data.type) { // preload flow. optional, but makes sure flow is ready case "init": getFlow(data.version).then(function() { postMessage({id: data.id, type: "init", result: true}); })["catch"](function (e) { postMessage({id: data.id, type: "init", err: e}); }); return; case "checkContent": getFlow(data.version).then(function(flow) { var result = flow.checkContent(data.filename, data.body); postMessage({id: data.id, type: "checkContent", result: result }); })["catch"](function (e) { postMessage({id: data.id, type: "checkContent", err: e}); }); return; case "typeAtPos": getFlow(data.version).then(function(flow) { var result = flow.typeAtPos( data.filename, data.body, data.line, data.col ); postMessage({id: data.id, type: "typeAtPos", result: result}); })["catch"](function (e) { postMessage({id: data.id, type: "typeAtPos", err: e}); }); return; case "supportsParse": getFlow(data.version).then(function(flow) { var result = flow.parse != null; postMessage({id: data.id, type: "supportsParse", result: result}); })["catch"](function (e) { postMessage({id: data.id, type: "supportsParse", err: e}); }); return; case "parse": getFlow(data.version).then(function(flow) { var result = flow.parse( data.body, data.options ); postMessage({id: data.id, type: "parse", result: result}); })["catch"](function (e) { postMessage({id: data.id, type: "parse", err: e}); }); return; default: throw new Error("Unknown message type: " + data.type); } }; function getFlow(version) { if (!(version in versionCache)) { versionCache[version] = new Promise(function(resolve) { resolve(load(version)); }); } return versionCache[version]; } // // this.console = { // log: function(v) { postMessage({type: "debug", message: v}); } // };