mirror of https://github.com/sveltejs/svelte
parent
e03ba9051c
commit
3fd1e3c75c
@ -0,0 +1,45 @@
|
||||
{
|
||||
"root": true,
|
||||
"rules": {
|
||||
"indent": [2, "tab", { "SwitchCase": 1 }],
|
||||
"semi": [2, "always"],
|
||||
"keyword-spacing": [2, { "before": true, "after": true }],
|
||||
"space-before-blocks": [2, "always"],
|
||||
"no-mixed-spaces-and-tabs": [2, "smart-tabs"],
|
||||
"no-cond-assign": 0,
|
||||
"no-unused-vars": 2,
|
||||
"object-shorthand": [2, "always"],
|
||||
"no-const-assign": 2,
|
||||
"no-class-assign": 2,
|
||||
"no-this-before-super": 2,
|
||||
"no-var": 2,
|
||||
"no-unreachable": 2,
|
||||
"valid-typeof": 2,
|
||||
"quote-props": [2, "as-needed"],
|
||||
"one-var": [2, "never"],
|
||||
"prefer-arrow-callback": 2,
|
||||
"prefer-const": [2, { "destructuring": "all" }],
|
||||
"arrow-spacing": 2,
|
||||
"no-inner-declarations": 0
|
||||
},
|
||||
"env": {
|
||||
"es6": true,
|
||||
"browser": true,
|
||||
"node": true,
|
||||
"mocha": true
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:import/errors",
|
||||
"plugin:import/warnings"
|
||||
],
|
||||
"plugins": ["svelte3"],
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6,
|
||||
"sourceType": "module"
|
||||
},
|
||||
"settings": {
|
||||
"import/core-modules": ["svelte"],
|
||||
"svelte3/extensions": [".html"]
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
self.window = self; // egregious hack to get magic-string to work in a worker
|
||||
|
||||
let fulfil_ready;
|
||||
const ready = new Promise(f => {
|
||||
fulfil_ready = f;
|
||||
});
|
||||
|
||||
self.addEventListener('message', async event => {
|
||||
switch (event.data.type) {
|
||||
case 'init':
|
||||
importScripts(`https://unpkg.com/svelte@${event.data.version}/compiler.js`);
|
||||
fulfil_ready();
|
||||
break;
|
||||
|
||||
case 'compile':
|
||||
await ready;
|
||||
postMessage(compile(event.data));
|
||||
break;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
const commonCompilerOptions = {
|
||||
dev: false
|
||||
};
|
||||
|
||||
function compile({ source, options, entry }) {
|
||||
try {
|
||||
const { js, stats } = svelte.compile(
|
||||
source,
|
||||
Object.assign({}, commonCompilerOptions, options)
|
||||
);
|
||||
|
||||
return { code: js.code, props: entry ? stats.props : null };
|
||||
} catch (err) {
|
||||
let result = `/* Error compiling component\n\n${err.message}`;
|
||||
if (err.frame) result += `\n${err.frame}`;
|
||||
result += `\n\n*/`;
|
||||
return { code: result, props: null };
|
||||
}
|
||||
}
|
Loading…
Reference in new issue