forked from w3c/respec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrespec-worker.js
33 lines (32 loc) · 1019 Bytes
/
respec-worker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// ReSpec Worker v1.0.0
"use strict";
try {
importScripts("https://www.w3.org/Tools/respec/respec-highlight");
} catch (err) {
console.error("Network error loading highlighter", err);
}
self.addEventListener("message", ({ data: originalData }) => {
const data = Object.assign({}, originalData);
switch (data.action) {
case "highlight-load-lang": {
const { langURL, propName, lang } = data;
importScripts(langURL);
self.hljs.registerLanguage(lang, self[propName]);
break;
}
case "highlight": {
const { code } = data;
const langs = data.languages.length ? data.languages : undefined;
try {
const { value, language } = self.hljs.highlightAuto(code, langs);
Object.assign(data, { value, language });
} catch (err) {
console.error("Could not transform some code?", err);
// Post back the original code
Object.assign(data, { value: code, language: "" });
}
break;
}
}
self.postMessage(data);
});