From 0eec8bec915f8a5e127cb2bdac051516b7e3b099 Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Fri, 22 Jun 2018 20:19:19 +0530 Subject: [PATCH] eslint fixes --- .eslintrc.json | 6 +- package.json | 7 +- src/analytics.js | 8 +- src/components/ContentWrap.jsx | 6 +- src/components/Modals.js | 7 -- src/components/Notifications.jsx | 28 ++++- src/components/SplitPane.jsx | 6 ++ src/components/common.jsx | 3 + src/computes.js | 179 ++++++++++++++++++------------- src/utils.js | 3 + 10 files changed, 156 insertions(+), 97 deletions(-) delete mode 100644 src/components/Modals.js diff --git a/.eslintrc.json b/.eslintrc.json index 14ca4c8..4f4452d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -77,7 +77,7 @@ "no-implied-eval": "error", "no-inline-comments": "off", "no-inner-declarations": ["error", "functions"], - "no-invalid-this": "error", + "no-invalid-this": "off", "no-iterator": "error", "no-label-var": "error", "no-labels": "error", @@ -186,7 +186,9 @@ "arrow-body-style": "off", "indent": "off", "react/sort-comp": "off", - "react/jsx-no-bind": "off" + "react/jsx-no-bind": "off", + "no-extra-semi": "off", + "compat/compat": "off" }, "globals": { "ArrayBuffer": true, diff --git a/package.json b/package.json index 8e0e4d0..75936f5 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "build": "preact build --template src/index.html --no-prerender", "serve": "preact build && preact serve", "dev": "preact watch --template src/index.html --https --no-prerender", - "lint": "eslint src/*.js src/components/*.jsx", + "lint": "eslint src", "test": "jest ./tests", "precommit": "lint-staged" }, @@ -15,7 +15,10 @@ "extends": "eslint-config-synacor" }, "eslintIgnore": [ - "build/*" + "build/*", + "src/lib/", + "src/tests/", + "src/CodeMirror.js" ], "lint-staged": { "*.{js,jsx,json,css,md}": [ diff --git a/src/analytics.js b/src/analytics.js index 889eb76..3f6d656 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -1,6 +1,4 @@ -import { - log -} from "./utils"; +import { log } from './utils'; /* global ga */ @@ -13,10 +11,10 @@ export function trackEvent(category, action, label, value) { if (window.ga) { ga('send', 'event', category, action, label, value); } -}; +} // if online, load after sometime -if (false && navigator.onLine && !window.DEBUG) { +if (navigator.onLine && !window.DEBUG) { /* eslint-disable */ // prettier-ignore diff --git a/src/components/ContentWrap.jsx b/src/components/ContentWrap.jsx index cccc986..d14f8b1 100644 --- a/src/components/ContentWrap.jsx +++ b/src/components/ContentWrap.jsx @@ -559,7 +559,8 @@ export default class ContentWrap extends Component { setTimeout(() => { this.setPreviewContent(true); }, 1500); - function checkWindow() { + + var intervalID = window.setInterval(checkWindow => { if (this.detachedWindow && this.detachedWindow.closed) { clearInterval(intervalID); document.body.classList.remove('is-detached-mode'); @@ -569,8 +570,7 @@ export default class ContentWrap extends Component { // getting reflected while detached window was open) this.setPreviewContent(true); } - } - var intervalID = window.setInterval(checkWindow.bind(this), 500); + }, 500); } onMessageFromConsole() { diff --git a/src/components/Modals.js b/src/components/Modals.js deleted file mode 100644 index 776e902..0000000 --- a/src/components/Modals.js +++ /dev/null @@ -1,7 +0,0 @@ -import { h, Component } from 'preact'; - -export default class Header extends Component { - render() { - return
; - } -} diff --git a/src/components/Notifications.jsx b/src/components/Notifications.jsx index f17e0af..ef00cb0 100644 --- a/src/components/Notifications.jsx +++ b/src/components/Notifications.jsx @@ -23,11 +23,19 @@ export function Notifications(props) {
  • 🚀 Popular libraries list updated. Thanks - + @diomed {' '} &{' '} - + @leninalbertolp
  • @@ -40,10 +48,18 @@ export function Notifications(props) {
  • 🚀 Announcement: Hi! I am Kushagra Gour (creator of Web Maker) and I have launched a - + Patreon campaign . If you love Web Maker, consider pledging to - + support me {' '} :) @@ -52,6 +68,7 @@ export function Notifications(props) { Suggest features or report bugs. @@ -63,6 +80,7 @@ export function Notifications(props) { Please rate Web Maker @@ -70,7 +88,7 @@ export function Notifications(props) { Share it diff --git a/src/components/SplitPane.jsx b/src/components/SplitPane.jsx index c9e6942..cbd5cb0 100644 --- a/src/components/SplitPane.jsx +++ b/src/components/SplitPane.jsx @@ -33,16 +33,22 @@ export class SplitPane extends Component { options.onDragStart = this.props.onDragStart; } + /* eslint-disable new-cap */ this.splitInstance = Split( this.props.children.map(node => '#' + node.attributes.id), options ); + /* eslint-enable new-cap */ + if (this.props.onSplit) { this.props.onSplit(this.splitInstance); } } render() { + /* eslint-disable no-unused-vars */ const { children, ...props } = this.props; + /* eslint-enable no-unused-vars */ + return
    {this.props.children}
    ; } } diff --git a/src/components/common.jsx b/src/components/common.jsx index f3f840f..5cbb6ba 100644 --- a/src/components/common.jsx +++ b/src/components/common.jsx @@ -11,7 +11,10 @@ class Clickable extends Component { this.props.onClick(e); } render() { + /* eslint-disable no-unused-vars */ const { onClick, Tag, ...props } = this.props; + /* eslint-enable no-unused-vars */ + return ; } } diff --git a/src/computes.js b/src/computes.js index 826d2e6..40ee889 100644 --- a/src/computes.js +++ b/src/computes.js @@ -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 */ diff --git a/src/utils.js b/src/utils.js index 057d576..ebde9b3 100644 --- a/src/utils.js +++ b/src/utils.js @@ -300,7 +300,10 @@ export function loadJS(src) { return d.promise; } +/* eslint-disable max-params */ export function getCompleteHtml(html, css, js, item, isForExport) { + /* eslint-enable max-params */ + if (!item) { return ''; }