From 6790f9d90e5629fdbfa555de7cc59ffea4070bd3 Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Fri, 15 Jul 2016 02:43:44 +0530 Subject: [PATCH] eslint fixes. --- .eslintrc.json | 25 +++++++++++----- src/deferred.js | 20 +++++++------ src/loader.js | 77 +++---------------------------------------------- src/script.js | 17 +++++++---- 4 files changed, 44 insertions(+), 95 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 6ee0f4c..ff58ea3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -99,7 +99,7 @@ "no-implicit-coercion": "error", "no-implicit-globals": "off", "no-implied-eval": "error", - "no-inline-comments": "error", + "no-inline-comments": "off", "no-inner-declarations": [ "error", "functions" @@ -118,7 +118,7 @@ "no-multiple-empty-lines": "error", "no-native-reassign": "error", "no-negated-condition": "off", - "no-nested-ternary": "error", + "no-nested-ternary": "off", "no-new": "error", "no-new-func": "error", "no-new-object": "error", @@ -178,9 +178,9 @@ "no-with": "error", "object-curly-spacing": [ "error", - "never" + "always" ], - "object-property-newline": "error", + "object-property-newline": "off", "object-shorthand": "off", "one-var": "off", "one-var-declaration-per-line": "error", @@ -195,7 +195,7 @@ "padded-blocks": "off", "prefer-arrow-callback": "off", "prefer-const": "error", - "prefer-reflect": "error", + "prefer-reflect": "off", "prefer-rest-params": "off", "prefer-spread": "error", "prefer-template": "off", @@ -235,7 +235,7 @@ "error", "never" ], - "valid-jsdoc": "error", + "valid-jsdoc": "off", "vars-on-top": "off", "wrap-regex": "error", "yield-star-spacing": "error", @@ -248,6 +248,17 @@ "chrome": true, "CodeMirror": true, "Split": true, - "emmetCodeMirror": true + "emmetCodeMirror": true, + "deferred": true, + "$": true, + "$all": true, + "CoffeeScript": true, + "Babel": true, + "Sass": true, + "less": true, + "marked": true, + "jade": true, + "loadJS": true, + "Promise": true } } \ No newline at end of file diff --git a/src/deferred.js b/src/deferred.js index ca39ced..c9325b1 100644 --- a/src/deferred.js +++ b/src/deferred.js @@ -1,10 +1,12 @@ -function deferred() { - var d = {}; - var promise = new Promise(function (resolve, reject) { - d.resolve = resolve; - d.reject = reject; - }); +(function() { + window.deferred = function () { + var d = {}; + var promise = new Promise(function (resolve, reject) { + d.resolve = resolve; + d.reject = reject; + }); - d.promise = promise; - return Object.assign(d, promise); -} \ No newline at end of file + d.promise = promise; + return Object.assign(d, promise); + }; +})(); \ No newline at end of file diff --git a/src/loader.js b/src/loader.js index c113ac7..1bacb38 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1,81 +1,12 @@ (function(w) { - // https://github.com/filamentgroup/loadCSS/blob/master/src/loadCSS.js - window.loadCSS = function( href, before, media ){ - // Arguments explained: - // `href` [REQUIRED] is the URL for your CSS file. - // `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet before - // By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document. - // `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all' - var doc = w.document; - var ss = doc.createElement( "link" ); - var ref; - if( before ){ - ref = before; - } - else { - var refs = ( doc.body || doc.getElementsByTagName( "head" )[ 0 ] ).childNodes; - ref = refs[ refs.length - 1]; - } - - var sheets = doc.styleSheets; - ss.rel = "stylesheet"; - ss.href = href; - // temporarily set media to something inapplicable to ensure it'll fetch without blocking render - ss.media = "only x"; - - // wait until body is defined before injecting link. This ensures a non-blocking load in IE11. - function ready( cb ){ - if( doc.body ){ - return cb(); - } - setTimeout(function(){ - ready( cb ); - }); - } - // Inject link - // Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the argument to "after" in a later release and standardize on ref.nextSibling for all refs - // Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/ - ready( function(){ - ref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) ); - }); - // A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet. - var onloadcssdefined = function( cb ){ - var resolvedHref = ss.href; - var i = sheets.length; - while( i-- ){ - if( sheets[ i ].href === resolvedHref ){ - return cb(); - } - } - setTimeout(function() { - onloadcssdefined( cb ); - }); - }; - - function loadCB(){ - if( ss.addEventListener ){ - ss.removeEventListener( "load", loadCB ); - } - ss.media = media || "all"; - } - - // once loaded, set link's media back to `all` so that the stylesheet applies once it loads - if( ss.addEventListener ){ - ss.addEventListener( "load", loadCB); - } - ss.onloadcssdefined = onloadcssdefined; - onloadcssdefined( loadCB ); - return true; - }; - - window.loadJS = function( src, cb ) { + window.loadJS = function(src) { var d = deferred(); - var ref = w.document.getElementsByTagName( "script" )[ 0 ]; - var script = w.document.createElement( "script" ); + var ref = w.document.getElementsByTagName("script")[0]; + var script = w.document.createElement("script"); script.src = src; script.async = true; - ref.parentNode.insertBefore( script, ref ); + ref.parentNode.insertBefore(script, ref); script.onload = function () { d.resolve(); }; diff --git a/src/script.js b/src/script.js index 28d5ce4..5d6314c 100644 --- a/src/script.js +++ b/src/script.js @@ -41,6 +41,7 @@ , htmlMode = HtmlModes.HTML , jsMode = JsModes.JS , cssMode = CssModes.CSS + , sass , frame = $('#demo-frame') , htmlCode = $('#js-html-code') @@ -151,7 +152,7 @@ loadJS('lib/less.min.js').then(setLoadedFlag); } else if (mode === CssModes.SCSS) { loadJS('lib/sass.js').then(function () { - window.sass = new Sass('lib/sass.worker.js'); + sass = new Sass('lib/sass.worker.js'); setLoadedFlag(); }); } else if (mode === JsModes.COFFEESCRIPT) { @@ -227,7 +228,7 @@ if (jsMode === JsModes.JS) { d.resolve(code); } else if (jsMode === JsModes.COFFEESCRIPT) { - d.resolve(CoffeeScript.compile(code, {bare: true})); + d.resolve(CoffeeScript.compile(code, { bare: true })); } else if (jsMode === JsModes.ES6) { d.resolve(Babel.transform(editur.cm.js.getValue(), { presets: ['es2015'] }).code); } @@ -240,16 +241,16 @@ }; function createPreviewFile(html, css, js) { - html = '\n\n\n\n\n' + html + '\n\n'; + var contents = '\n\n\n\n\n' + html + '\n\n'; var fileWritten = false; - var blob = new Blob([ html ], {type: "text/plain;charset=UTF-8"}); + var blob = new Blob([ contents ], { type: "text/plain;charset=UTF-8" }); function errorHandler() { console.log(arguments); } window.webkitRequestFileSystem(window.TEMPORARY, 1024 * 1024 * 5, function(fs){ - fs.root.getFile('preview.html', {create: true}, function(fileEntry) { + fs.root.getFile('preview.html', { create: true }, function(fileEntry) { fileEntry.createWriter(function(fileWriter) { function onWriteComplete() { if (fileWritten) { @@ -295,7 +296,7 @@ fileName += '.html'; var a = document.createElement('a'); - var blob = new Blob([ fileContent ], {type: "text/html;charset=UTF-8"}); + var blob = new Blob([ fileContent ], { type: "text/html;charset=UTF-8" }); a.href = window.URL.createObjectURL(blob); a.download = fileName; a.style.display = 'none'; @@ -372,9 +373,13 @@ html: editur.cm.html.getValue(), css: editur.cm.css.getValue(), js: editur.cm.js.getValue(), + + /* eslint-disable camelcase */ html_pre_processor: modes[htmlMode].codepenVal, css_pre_processor: modes[cssMode].codepenVal, js_pre_processor: modes[jsMode].codepenVal + + /* eslint-enable camelcase */ }; json = JSON.stringify(json) .replace(/"/g, "&​quot;")