[generated] sandpack files from: codesandbox-client
This commit is contained in:
96
sandpack-generated/static/js/prettier/worker.js
Normal file
96
sandpack-generated/static/js/prettier/worker.js
Normal file
@@ -0,0 +1,96 @@
|
||||
/* eslint-env worker */
|
||||
/* eslint no-var: off, strict: off */
|
||||
|
||||
const parsersLoaded = {};
|
||||
|
||||
const loadParser = parser => {
|
||||
if (!parsersLoaded[parser]) {
|
||||
if (parser === "vue") {
|
||||
loadParser("typescript");
|
||||
loadParser("babylon");
|
||||
loadParser("postcss");
|
||||
}
|
||||
|
||||
importScripts("/static/js/prettier/1.13.0/parser-" + parser + ".js");
|
||||
parsersLoaded[parser] = true;
|
||||
}
|
||||
};
|
||||
|
||||
importScripts("/static/js/prettier/1.13.0/standalone.js");
|
||||
if (typeof prettier === "undefined") {
|
||||
prettier = module.exports; // eslint-disable-line
|
||||
}
|
||||
if (typeof prettier === "undefined") {
|
||||
prettier = index; // eslint-disable-line
|
||||
}
|
||||
|
||||
function formatCode(text, options) {
|
||||
try {
|
||||
const useCursorOffset = options.cursorOffset !== undefined;
|
||||
|
||||
if (useCursorOffset) {
|
||||
return self.prettier.formatWithCursor(text, options);
|
||||
}
|
||||
|
||||
const formatted = self.prettier.format(text, options);
|
||||
return { formatted };
|
||||
} catch (e) {
|
||||
if (e.constructor && e.constructor.name === "SyntaxError") {
|
||||
// Likely something wrong with the user's code
|
||||
throw e;
|
||||
}
|
||||
// Likely a bug in Prettier
|
||||
// Provide the whole stack for debugging
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
self.onmessage = message => {
|
||||
var options = message.data.options || {};
|
||||
options.parser = options.parser || "babylon";
|
||||
|
||||
loadParser(options.parser);
|
||||
|
||||
let result;
|
||||
options.plugins = self.prettierPlugins;
|
||||
try {
|
||||
result = formatCode(message.data.text, options);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
self.postMessage({ error: e.message, text: message.data.text });
|
||||
return;
|
||||
}
|
||||
var doc;
|
||||
var ast;
|
||||
|
||||
if (message.data.ast) {
|
||||
try {
|
||||
ast = JSON.stringify(
|
||||
prettier.__debug.parse(message.data.text, options),
|
||||
null,
|
||||
2
|
||||
);
|
||||
} catch (e) {
|
||||
ast = e.toString();
|
||||
}
|
||||
}
|
||||
|
||||
if (message.data.doc) {
|
||||
lazyLoadParser("babylon");
|
||||
try {
|
||||
doc = prettier.__debug.formatDoc(
|
||||
prettier.__debug.printToDoc(message.data.text, options),
|
||||
{ parser: "babylon" }
|
||||
);
|
||||
} catch (e) {
|
||||
doc = e.toString();
|
||||
}
|
||||
}
|
||||
|
||||
self.postMessage({
|
||||
result,
|
||||
text: message.data.text,
|
||||
doc: doc,
|
||||
ast: ast
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user