From befa15e1725a9cc0ecbeeecd969b8588e92b7c10 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Mon, 26 Oct 2015 19:01:24 +0000 Subject: [PATCH] Integrated Gulp --- .gitignore | 1 + .jscsrc | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++ gulpfile.js | 32 ++++++++++++ package.json | 6 +++ 4 files changed, 181 insertions(+) create mode 100644 .jscsrc create mode 100644 gulpfile.js diff --git a/.gitignore b/.gitignore index 8293a565..743f7205 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .DS_Store +.idea node_modules/ npm-debug.log coverage/ diff --git a/.jscsrc b/.jscsrc new file mode 100644 index 00000000..b65958ca --- /dev/null +++ b/.jscsrc @@ -0,0 +1,142 @@ +{ + "disallowDanglingUnderscores": true, + "disallowIdentifierNames": [], + "disallowImplicitTypeConversion": [], + "disallowKeywordsOnNewLine": [ + "catch", + "else" + ], + "disallowKeywords": [ + "void", + "with" + ], + "disallowMixedSpacesAndTabs": true, + "disallowMultipleLineBreaks": true, + "disallowMultipleLineStrings": true, + "disallowMultipleSpaces": true, + "disallowMultipleVarDecl": "exceptUndefined", + "disallowNewlineBeforeBlockStatements": true, + "disallowPaddingNewlinesBeforeKeywords": [ + "case", + "typeof" + ], + "disallowPaddingNewlinesInBlocks": true, + "disallowQuotedKeysInObjects": true, + "disallowSpaceAfterKeywords": [ + "catch", + "for", + "switch", + "while" + ], + "disallowSpaceAfterObjectKeys": true, + "disallowSpaceAfterPrefixUnaryOperators": true, + "disallowSpaceBeforePostfixUnaryOperators": true, + "disallowSpacesInCallExpression": true, + "disallowSpacesInsideParentheses": true, + "disallowTrailingComma": true, + "disallowTrailingWhitespace": true, + "disallowYodaConditions": true, + "maximumLineLength": 120, + "requireBlocksOnNewline": true, + "requireCamelCaseOrUpperCaseIdentifiers": true, + "requireCapitalizedComments": { + "allExcept": [ + "exported", + "global", + "jshint" + ] + }, + "requireCapitalizedConstructors": true, + "requireCommaBeforeLineBreak": true, + "requireCurlyBraces": [ + "catch", + "do", + "else", + "for", + "if", + "try", + "while" + ], + "requireDollarBeforejQueryAssignment": true, + "requireDotNotation": true, + "requireKeywordsOnNewLine": [ + "break", + "case", + "default" + ], + "requireLineBreakAfterVariableAssignment": true, + "requireOperatorBeforeLineBreak": true, + "requirePaddingNewLineAfterVariableDeclaration": true, + "requirePaddingNewLinesAfterBlocks": { + "allExcept": [ + "inArrayExpressions", + "inCallExpressions", + "inProperties" + ] + }, + "requirePaddingNewLinesAfterUseStrict": true, + "requirePaddingNewLinesBeforeExport": true, + "requirePaddingNewlinesBeforeKeywords": [ + "do", + "for", + "function", + "if", + "return", + "switch", + "try", + "void", + "while", + "with" + ], + "requirePaddingNewLinesBeforeLineComments": { + "allExcept": "firstAfterCurly" + }, + "requirePaddingNewLinesInObjects": true, + "requireParenthesesAroundIIFE": true, + "requireSemicolons": true, + "requireSpaceAfterBinaryOperators": true, + "requireSpaceAfterKeywords": [ + "case", + "do", + "else", + "if", + "return", + "try", + "typeof" + ], + "requireSpaceAfterLineComment": true, + "requireSpaceBeforeBinaryOperators": true, + "requireSpaceBeforeBlockStatements": true, + "requireSpaceBeforeKeywords": [ + "catch", + "else" + ], + "requireSpaceBeforeObjectValues": true, + "requireSpaceBetweenArguments": true, + "requireSpacesInAnonymousFunctionExpression": { + "beforeOpeningCurlyBrace": true + }, + "requireSpacesInConditionalExpression": true, + "requireSpacesInForStatement": true, + "requireSpacesInFunctionDeclaration": { + "beforeOpeningCurlyBrace": true + }, + "requireSpacesInFunctionExpression": { + "beforeOpeningCurlyBrace": true + }, + "requireSpacesInFunction": { + "beforeOpeningCurlyBrace": true + }, + "requireSpacesInNamedFunctionExpression": { + "beforeOpeningCurlyBrace": true + }, + "safeContextKeyword": ["that"], + "validateAlignedFunctionParameters": true, + "validateIndentation": 3, + "validateLineBreaks": "LF", + "validateNewlineAfterArrayElements": { + "maximum": 3 + }, + "validateParameterSeparator": ", ", + "validateQuoteMarks": "'" +} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 00000000..0d24394e --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,32 @@ +'use strict'; + +var gulp = require('gulp'); +var jshint = require('gulp-jshint'); +var jscs = require('gulp-jscs'); +var rename = require('gulp-rename'); +var uglify = require('gulp-uglify'); + +gulp.task('lint', function() { + return gulp.src('github.js') + .pipe(jshint()) + .pipe(jshint.reporter('jshint-stylish')) + .pipe(jscs({ + fix: true + })) + .pipe(jscs.reporter()) + .pipe(gulp.dest('.')); +}); + +gulp.task('test', function() { +}); + +gulp.task('build', function() { + return gulp.src('github.js') + .pipe(uglify()) + .pipe(rename('github.min.js')) + .pipe(gulp.dest('dist/')); +}); + +gulp.task('default', function() { + gulp.start('lint', 'test', 'build'); +}); \ No newline at end of file diff --git a/package.json b/package.json index 3cd6d95a..9a557e19 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,14 @@ }, "devDependencies": { "codecov": "^1.0.1", + "gulp": "^3.9.0", + "gulp-jscs": "^3.0.1", + "gulp-jshint": "^1.11.2", + "gulp-rename": "^1.2.2", + "gulp-uglify": "^1.4.2", "istanbul": "^0.3.13", "jshint": "^2.5.8", + "jshint-stylish": "^2.0.1", "plato": "^1.4.0", "tape": "^3.0.3" },