diff --git a/.jscsrc b/.jscsrc new file mode 100644 index 00000000..3b48a913 --- /dev/null +++ b/.jscsrc @@ -0,0 +1,285 @@ +{ + "disallowAnonymousFunctions": false, + "disallowShorthandArrowFunctions": true, + "disallowCapitalizedComments": false, + "disallowCommaBeforeLineBreak": false, + "disallowCurlyBraces": false, + "disallowDanglingUnderscores": false, + "disallowEmptyBlocks": true, + "disallowFunctionDeclarations": true, + "disallowIdenticalDestructuringNames": true, + "disallowImplicitTypeConversion": [ + "numeric", + "boolean", + "binary", + "string" + ], + "disallowKeywordsOnNewLine": [ + "else", + "else if" + ], + "disallowKeywords": [ + "with", + "for" + ], + "disallowMixedSpacesAndTabs": true, + "disallowMultiLineTernary": true, + "disallowMultipleLineBreaks": true, + "disallowMultipleLineStrings": true, + "disallowMultipleSpaces": true, + "disallowMultipleVarDecl": true, + "disallowNamedUnassignedFunctions": true, + "disallowNestedTernaries": false, + "disallowNewlineBeforeBlockStatements": true, + "disallowNodeTypes": [ + "LabeledStatement" + ], + "disallowNotOperatorsInConditionals": false, + "disallowObjectKeysOnNewLine": false, + "disallowOperatorBeforeLineBreak": [ + "+", + "." + ], + "disallowPaddingNewLinesAfterBlocks": false, + "disallowPaddingNewLinesAfterUseStrict": false, + "disallowPaddingNewLinesBeforeExport": false, + "disallowPaddingNewlinesBeforeKeywords": false, + "disallowPaddingNewLinesBeforeLineComments": false, + "disallowPaddingNewlinesInBlocks": false, + "disallowPaddingNewLinesInObjects": false, + "disallowParenthesesAroundArrowParam": false, + "disallowQuotedKeysInObjects": { + "allExcept": [ + "reserved" + ] + }, + "disallowSemicolons": false, + "disallowShorthandArrowFunctions": true, + "disallowSpaceAfterBinaryOperators": false, + "disallowSpaceAfterComma": false, + "disallowSpaceAfterKeywords": false, + "disallowSpaceAfterLineComment": false, + "disallowSpaceAfterObjectKeys": true, + "disallowSpaceAfterPrefixUnaryOperators": true, + "disallowSpaceBeforeBinaryOperators": false, + "disallowSpaceBeforeBlockStatements": false, + "disallowSpaceBeforeComma": true, + "disallowSpaceBeforeKeywords": false, + "disallowSpaceBeforeObjectValues": false, + "disallowSpaceBeforePostfixUnaryOperators": [ + "++", + "--" + ], + "disallowSpaceBeforeSemicolon": true, + "disallowSpaceBetweenArguments": false, + "disallowSpacesInAnonymousFunctionExpression": { + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInCallExpression": true, + "disallowSpacesInConditionalExpression": false, + "disallowSpacesInForStatement": false, + "disallowSpacesInFunctionDeclaration": { + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInFunctionExpression": { + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInFunction": { + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInGenerator": { + "beforeStar": true + }, + "disallowSpacesInNamedFunctionExpression": { + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInsideArrayBrackets": false, + "disallowSpacesInsideBrackets": false, + "disallowSpacesInsideObjectBrackets": false, + "disallowSpacesInsideParentheses": true, + "disallowSpacesInsideParenthesizedExpression": true, + "disallowTabs": true, + "disallowTrailingComma": true, + "disallowTrailingWhitespace": true, + "disallowUnusedParams": true, + "disallowVar": false, + "disallowYodaConditions": [ + "==", + "===", + "!=", + "!==" + ], + "maximumLineLength": 130, + "maximumNumberOfLines": 500, + "requireAlignedMultilineParams": true, + "requireAlignedObjectValues": false, + "requireAnonymousFunctions": true, + "requireArrayDestructuring": false, + "requireArrowFunctions": false, + "requireBlocksOnNewline": { + "includeComments": true + }, + "requireCamelCaseOrUpperCaseIdentifiers": true, + "requireCapitalizedComments": true, + "requireCapitalizedConstructors": true, + "requireCommaBeforeLineBreak": true, + "requireCurlyBraces": [ + "if", + "else", + "for", + "while", + "do", + "try", + "catch", + "case", + "default" + ], + "requireDollarBeforejQueryAssignment": true, + "requireDotNotation": true, + "requireEarlyReturn": true, + "requireEnhancedObjectLiterals": false, + "requireFunctionDeclarations": false, + "requireLineBreakAfterVariableAssignment": true, + "requireLineFeedAtFileEnd": true, + "requireMatchingFunctionName": true, + "requireMultiLineTernary": false, + "requireMultipleVarDecl": false, + "requireNewlineBeforeBlockStatements": false, + "requireNumericLiterals": true, + "requireObjectDestructuring": false, + "requireObjectKeysOnNewLine": true, + "requireOperatorBeforeLineBreak": [ + "?", + "=", + "+", + "-", + "/", + "*", + "==", + "===", + "!=", + "!==", + ">", + ">=", + "<", + "<=" + ], + "requirePaddingNewLineAfterVariableDeclaration": false, + "requirePaddingNewLinesAfterBlocks": true, + "requirePaddingNewLinesAfterUseStrict": true, + "requirePaddingNewLinesBeforeExport": true, + "requirePaddingNewlinesBeforeKeywords": [ + "do", + "for", + "if", + "while" + ], + "requirePaddingNewLinesBeforeLineComments": true, + "requirePaddingNewlinesInBlocks": false, + "requirePaddingNewLinesInObjects": true, + "requireParenthesesAroundArrowParam": true, + "requireParenthesesAroundIIFE": true, + "requireQuotedKeysInObjects": false, + "requireSemicolons": true, + "requireShorthandArrowFunctions": false, + "requireSpaceAfterBinaryOperators": [ + "=", + ",", + "+", + "-", + "/", + "*", + "==", + "===", + "!=", + "!==" + ], + "requireSpaceBeforeBinaryOperators": [ + "=", + "+", + "-", + "/", + "*", + "==", + "===", + "!=", + "!==" + ], + "requireSpaceAfterComma": true, + "requireSpaceAfterKeywords": [ + "do", + "for", + "if", + "else", + "switch", + "case", + "try", + "catch", + "void", + "while", + "with", + "return", + "typeof" + ], + "requireSpaceAfterLineComment": false, + "requireSpaceAfterObjectKeys": false, + "requireSpaceAfterPrefixUnaryOperators": false, + "requireSpaceBeforeBlockStatements": 1, + "requireSpaceBeforeComma": false, + "requireSpaceBeforeKeywords": [ + "else", + "while", + "catch" + ], + "requireSpaceBeforeObjectValues": true, + "requireSpaceBeforePostfixUnaryOperators": false, + "requireSpaceBetweenArguments": true, + "requireSpacesInAnonymousFunctionExpression": { + "beforeOpeningCurlyBrace": true + }, + "requireSpacesInCallExpression": false, + "requireSpacesInConditionalExpression": { + "afterTest": true, + "beforeConsequent": true, + "afterConsequent": true, + "beforeAlternate": true + }, + "requireSpacesInForStatement": true, + "requireSpacesInFunctionDeclaration": { + "beforeOpeningCurlyBrace": true + }, + "requireSpacesInFunctionExpression": { + "beforeOpeningCurlyBrace": true + }, + "requireSpacesInFunction": { + "beforeOpeningCurlyBrace": true + }, + "requireSpacesInGenerator": { + "afterStar": true + }, + "requireSpacesInNamedFunctionExpression": { + "beforeOpeningCurlyBrace": true + }, + "requireSpacesInsideArrayBrackets": "all", + "requireSpacesInsideObjectBrackets": "all", + "requireSpacesInsideParentheses": false, + "requireSpacesInsideParenthesizedExpression": false, + "requireSpread": false, + "requireTemplateStrings": false, + "requireTrailingComma": false, + "requireVarDeclFirst": false, + "requireYodaConditions": false, + "safeContextKeyword": [ + "self" + ], + "validateAlignedFunctionParameters": false, + "validateCommentPosition": { + "position": "above" + }, + "validateIndentation": 2, + "validateLineBreaks": "LF", + "validateNewlineAfterArrayElements": true, + "validateOrderInObjectKeys": false, + "validateParameterSeparator": ", ", + "validateQuoteMarks": "'" +} diff --git a/gulpfile.js b/gulpfile.js index d2300116..9ed51bbd 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -15,6 +15,7 @@ */ var gulp = require('gulp'); +var jscs = require('gulp-jscs'); var jshint = require('gulp-jshint'); var jshintStylish = require('jshint-stylish'); var sass = require('gulp-sass'); @@ -43,7 +44,9 @@ gulp.task('lint', function() { return gulp.src(paths.scripts) .pipe(jshint()) - .pipe(jshint.reporter(jshintStylish)); + .pipe(jshint.reporter(jshintStylish)) + .pipe(jscs()) + .pipe(jscs.reporter()); }); gulp.task('watch', [ 'lint', 'sass' ], function() { diff --git a/lib/browser/modules/image-writer.js b/lib/browser/modules/image-writer.js index 6a93216d..5a6c7197 100644 --- a/lib/browser/modules/image-writer.js +++ b/lib/browser/modules/image-writer.js @@ -127,7 +127,7 @@ imageWriter.service('ImageWriterService', function($q, $timeout, $log) { * ImageWriterService.setBurning(true); */ this.setBurning = function(status) { - burning = !!status; + burning = Boolean(status); }; /** diff --git a/lib/browser/modules/selection-state.js b/lib/browser/modules/selection-state.js index a3e625bf..9f287500 100644 --- a/lib/browser/modules/selection-state.js +++ b/lib/browser/modules/selection-state.js @@ -105,7 +105,7 @@ selectionState.service('SelectionStateService', function() { * } */ this.hasDrive = function() { - return !!self.getDrive(); + return Boolean(self.getDrive()); }; /** @@ -121,7 +121,7 @@ selectionState.service('SelectionStateService', function() { * } */ this.hasImage = function() { - return !!self.getImage(); + return Boolean(self.getImage()); }; /** diff --git a/lib/elevate.js b/lib/elevate.js index 2dc9380c..250fd423 100644 --- a/lib/elevate.js +++ b/lib/elevate.js @@ -51,8 +51,7 @@ exports.require = function(app, callback) { // Don't keep the original parent process alive process.exit(0); }); - } - else if (platform === 'win32') { + } else if (platform === 'win32') { var elevator = require('elevator'); elevator.execute(process.argv, {}, function(error) { @@ -64,8 +63,7 @@ exports.require = function(app, callback) { // Don't keep the original parent process alive process.exit(0); }); - } - else { + } else { electron.dialog.showErrorBox( 'You don\'t have enough permissions', 'Please run this application as root or administrator' diff --git a/lib/src/dialog.js b/lib/src/dialog.js index 83914d3d..9ec73290 100644 --- a/lib/src/dialog.js +++ b/lib/src/dialog.js @@ -37,11 +37,17 @@ var _ = require('lodash'); exports.selectImage = function() { 'use strict'; - return new Promise(function(resolve, reject) { + return new Promise(function(resolve) { electron.dialog.showOpenDialog({ properties: [ 'openFile' ], filters: [ - { name: 'IMG/ISO', extensions: [ 'img', 'iso' ] } + { + name: 'IMG/ISO', + extensions: [ + 'img', + 'iso' + ] + } ] }, function(file) { return resolve(_.first(file)); diff --git a/lib/src/writer.js b/lib/src/writer.js index 132dd432..eef12289 100644 --- a/lib/src/writer.js +++ b/lib/src/writer.js @@ -87,8 +87,8 @@ exports.writeImage = function(image, drive, onProgress) { }).then(function() { if (isWindows && drive.mountpoint) { return removedrive.ejectAsync(drive.mountpoint); - } else { - return umount.umountAsync(drive.device); } + + return umount.umountAsync(drive.device); }); }; diff --git a/package.json b/package.json index 5f0f65cc..cf6e8f25 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "electron-packager": "^5.1.1", "electron-prebuilt": "^0.36.4", "gulp": "^3.9.0", + "gulp-jscs": "^3.0.2", "gulp-jshint": "^1.11.2", "gulp-sass": "^2.0.4", "jshint-stylish": "^2.0.1", diff --git a/tests/browser/modules/selection-state.spec.js b/tests/browser/modules/selection-state.spec.js index 09240b96..85a293c4 100644 --- a/tests/browser/modules/selection-state.spec.js +++ b/tests/browser/modules/selection-state.spec.js @@ -88,7 +88,6 @@ describe('Browser: SelectionState', function() { }); - }); describe('given no drive', function() { @@ -189,7 +188,9 @@ describe('Browser: SelectionState', function() { describe('given the preserveImage option', function() { beforeEach(function() { - SelectionStateService.clear({ preserveImage: true }); + SelectionStateService.clear({ + preserveImage: true + }); }); it('getDrive() should return undefined', function() {