1
0
mirror of https://github.com/chinchang/web-maker.git synced 2025-07-20 13:31:12 +02:00

eslint fixes

This commit is contained in:
Kushagra Gour
2018-06-22 20:19:19 +05:30
parent 2b8e773e03
commit 0eec8bec91
10 changed files with 156 additions and 97 deletions

View File

@@ -1,42 +1,45 @@
import {
deferred
} from './deferred';
import {
addInfiniteLoopProtection
} from './utils';
import {
HtmlModes,
CssModes,
JsModes
} from './codeModes';
import { deferred } from './deferred';
import { addInfiniteLoopProtection } from './utils';
import { HtmlModes, CssModes, JsModes } from './codeModes';
const esprima = require('esprima');
// computeHtml, computeCss & computeJs evaluate the final code according
// to whatever mode is selected and resolve the returned promise with the code.
export function computeHtml(code, mode) {
export function computeHtml(userCode, mode) {
var code = userCode;
var d = deferred();
if (mode === HtmlModes.HTML) {
d.resolve({
code
});
} else if (mode === HtmlModes.MARKDOWN) {
d.resolve(window.marked ? {
code: marked(code)
} : {
code
});
d.resolve(
window.marked
? {
code: marked(code)
}
: {
code
}
);
} else if (mode === HtmlModes.JADE) {
d.resolve(window.jade ? {
code: jade.render(code)
} : {
code
});
d.resolve(
window.jade
? {
code: jade.render(code)
}
: {
code
}
);
}
return d.promise;
}
export function computeCss(code, mode, settings) {
export function computeCss(userCode, mode, settings) {
var code = userCode;
var d = deferred();
var errors;
@@ -47,18 +50,21 @@ export function computeCss(code, mode, settings) {
} else if (mode === CssModes.SCSS || mode === CssModes.SASS) {
if (window.sass && code) {
window.sass.compile(
code, {
code,
{
indentedSyntax: mode === CssModes.SASS
},
function (result) {
function(result) {
// Something was wrong
if (result.line && result.message) {
errors = {
lang: 'css',
data: [{
lineNumber: result.line - 1,
message: result.message
}]
data: [
{
lineNumber: result.line - 1,
message: result.message
}
]
};
}
d.resolve({
@@ -74,27 +80,29 @@ export function computeCss(code, mode, settings) {
}
} else if (mode === CssModes.LESS) {
less.render(code).then(
function (result) {
function(result) {
d.resolve({
code: result.css
});
},
function (error) {
function(error) {
errors = {
lang: 'css',
data: [{
lineNumber: error.line,
message: error.message
}]
data: [
{
lineNumber: error.line,
message: error.message
}
]
};
d.resolve({
code: '',
errors
})
});
}
);
} else if (mode === CssModes.STYLUS) {
stylus(code).render(function (error, result) {
stylus(code).render(function(error, result) {
if (error) {
window.err = error;
// Last line of message is the actual message
@@ -102,10 +110,12 @@ export function computeCss(code, mode, settings) {
tempArr.pop(); // This is empty string in the end
errors = {
lang: 'css',
data: [{
lineNumber: +error.message.match(/stylus:(\d+):/)[1] - 298,
message: tempArr.pop()
}]
data: [
{
lineNumber: +error.message.match(/stylus:(\d+):/)[1] - 298,
message: tempArr.pop()
}
]
};
}
d.resolve({
@@ -140,7 +150,15 @@ export function computeCss(code, mode, settings) {
return d.promise;
}
export function computeJs(code, mode, shouldPreventInfiniteLoops, infiniteLoopTimeout) {
/* eslint-disable max-params */
/* eslint-disable complexity */
export function computeJs(
userCode,
mode,
shouldPreventInfiniteLoops,
infiniteLoopTimeout
) {
var code = userCode;
var d = deferred();
var errors;
@@ -157,18 +175,22 @@ export function computeJs(code, mode, shouldPreventInfiniteLoops, infiniteLoopTi
} catch (e) {
errors = {
lang: 'js',
data: [{
lineNumber: e.lineNumber - 1,
message: e.description
}]
data: [
{
lineNumber: e.lineNumber - 1,
message: e.description
}
]
};
} finally {
if (shouldPreventInfiniteLoops !== false) {
// If errors are found in last parse, we don't run infinite loop
// protection otherwise it will again throw error.
code = errors ? code : addInfiniteLoopProtection(code, {
timeout: infiniteLoopTimeout
});
code = errors
? code
: addInfiniteLoopProtection(code, {
timeout: infiniteLoopTimeout
});
}
d.resolve({
@@ -188,16 +210,20 @@ export function computeJs(code, mode, shouldPreventInfiniteLoops, infiniteLoopTi
} catch (e) {
errors = {
lang: 'js',
data: [{
lineNumber: e.location.first_line,
message: e.message
}]
data: [
{
lineNumber: e.location.first_line,
message: e.message
}
]
};
} finally {
if (shouldPreventInfiniteLoops !== false) {
code = errors ? code : addInfiniteLoopProtection(code, {
timeout: infiniteLoopTimeout
});
code = errors
? code
: addInfiniteLoopProtection(code, {
timeout: infiniteLoopTimeout
});
}
d.resolve({
code,
@@ -217,19 +243,23 @@ export function computeJs(code, mode, shouldPreventInfiniteLoops, infiniteLoopTi
} catch (e) {
errors = {
lang: 'js',
data: [{
lineNumber: e.lineNumber - 1,
message: e.description
}]
data: [
{
lineNumber: e.lineNumber - 1,
message: e.description
}
]
};
} finally {
code = Babel.transform(code, {
presets: ['latest', 'stage-2', 'react']
}).code;
if (shouldPreventInfiniteLoops !== false) {
code = errors ? code : addInfiniteLoopProtection(code, {
timeout: infiniteLoopTimeout
});
code = errors
? code
: addInfiniteLoopProtection(code, {
timeout: infiniteLoopTimeout
});
}
d.resolve({
code,
@@ -256,13 +286,16 @@ export function computeJs(code, mode, shouldPreventInfiniteLoops, infiniteLoopTi
/* eslint-disable no-throw-literal */
errors = {
lang: 'js',
data: [{
message: code.diagnostics[0].messageText,
lineNumber: ts.getLineOfLocalPosition(
code.diagnostics[0].file,
code.diagnostics[0].start
) - 1
}]
data: [
{
message: code.diagnostics[0].messageText,
lineNumber:
ts.getLineOfLocalPosition(
code.diagnostics[0].file,
code.diagnostics[0].start
) - 1
}
]
};
}
code = code.outputText;
@@ -275,10 +308,10 @@ export function computeJs(code, mode, shouldPreventInfiniteLoops, infiniteLoopTi
code,
errors
});
} catch (e) {
}
} catch (e) {}
}
return d.promise;
}
/* eslint-enable max-params */
/* eslint-enable complexity */