@patternplate/client
Version:
Universal javascript client application for patternplate
45 lines (34 loc) • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _arson = _interopRequireDefault(require("arson"));
var _lodash = require("lodash");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = highlight;
exports.default = _default;
const startWorker = (0, _lodash.memoize)(url => {
const _global = global,
Worker = _global.Worker;
return new Worker(url);
});
function highlight(options) {
return new Promise((resolve, reject) => {
const worker = startWorker(options.worker);
const onWorkerMessage = e => {
const data = _arson.default.parse(e.data);
if (data.id !== options.id) {
return;
}
if (data.payload.type === "error") {
return reject(data.payload.error);
}
resolve(data);
worker.removeEventListener("message", onWorkerMessage);
};
worker.addEventListener("message", onWorkerMessage);
worker.postMessage(_arson.default.stringify(options));
});
}
//# sourceMappingURL=highlight.js.map