GithubHelp home page GithubHelp logo

idleberg / gulp-coffeelint Goto Github PK

View Code? Open in Web Editor NEW

This project forked from janraasch/gulp-coffeelint

0.0 3.0 0.0 137 KB

CoffeeLint plugin for gulp.

Home Page: http://www.coffeelint.org/

License: MIT License

CoffeeScript 100.00%

gulp-coffeelint's Introduction

gulp-coffeelint Build Status Coverage Status NPM version

Dependency Status devDependency Status Pretty Stylish

CoffeeLint plugin for gulp 3.

Usage

First, install gulp-coffeelint as a development dependency:

npm install --save-dev gulp-coffeelint

Then, add it to your gulpfile.js:

var gulp = require('gulp');
var coffeelint = require('gulp-coffeelint');

gulp.task('lint', function () {
    return gulp.src('./src/*.coffee')
        .pipe(coffeelint())
        .pipe(coffeelint.reporter())
});

API

coffeelint([optFile,] [opt,] [literate,] [rules])

All arguments are optional. By default gulp-coffeelint will walk up the directory tree looking for a coffeelint.json (per file, i.e. dirname) or a package.json that has a coffeelintConfig object (as the cli does). Also, .litcoffee and .coffee.md files will be treated as Literate CoffeeScript.

optFile

Type: String

Absolute path of a json file containing options for coffeelint.

opt

Type: Object

Options you wish to send to coffeelint. If optFile is given, this will be ignored.

literate

Type: Boolean

Are we dealing with Literate CoffeeScript?

rules

Type: Array[Function] Default: []

Add custom rules to coffeelint.

Results

Adds the following properties to the file object:

file.coffeelint.success = true; // if no errors were found, false otherwise
file.coffeelint.errorCount = 0; // number of errors returned by `coffeelint`
file.coffeelint.warningCount = 0; // number of warnings returned by `coffeelint`
file.coffeelint.results = ErrorReport Object; // instance of `Coffeelint::ErrorReport` , see https://github.com/clutchski/coffeelint/blob/master/src/error_report.coffee
file.coffeelint.opt = {}; // the options used by `coffeelint`
file.coffeelint.literate = false; // you guessed it

Reporters

name

Type: String, Function Default: 'coffeelint-stylish'

CoffeeLint reporters

Built-in

You can choose any CoffeeLint reporter when you call

gulp.src('./src/*.coffee')
  .pipe(coffeelint())
  .pipe(coffeelint.reporter('csv'))

External

Let's use coffeelint-stylish as an example. External modules can be referenced either as the reporter's constructor function or as its module name.

var stylish = require('coffeelint-stylish');

gulp.src('./src/*.coffee')
  .pipe(coffeelint())
  .pipe(coffeelint.reporter(stylish))

-- OR --

gulp.src('./src/*.coffee')
  .pipe(coffeelint())
  .pipe(coffeelint.reporter('coffeelint-stylish'))

Any module following the CoffeeLint Reporter module format should work. These modules have a constructor accepting a CoffeeLint::ErrorReport Object, and provide a publish function.

Fail and FailOnWarning Reporters

Do you want the task to fail when a CoffeeLint error or warning happens? gulp-coffeelint includes fail and failOnWarning reporters for this.

This example will log the errors using the stylish reporter, then fail if CoffeeLint was not a success.

gulp.src('./src/*.coffee')
  .pipe(coffeelint())
  .pipe(coffeelint.reporter('coffeelint-stylish'))
  .pipe(coffeelint.reporter('fail'))

Custom Reporters

Specify your own downstream Reporter for CoffeeLint results.

var coffeelint = require('gulp-coffeelint');

var myReporter = (function() {
  function MyReporter(errorReport) {
    this.errorReport = errorReport;
  }

  MyReporter.prototype.publish = function() {
    var hasError = this.errorReport.hasError();
    if (hasError) {
      return console.log('Oh no!');
    }
    return console.log('Oh yeah!');
  }

  return MyReporter;
})();

gulp.task('lint', function() {
  return gulp.src('./src/*.coffee')
    .pipe(coffeelint())
    .pipe(coffeelint.reporter(myReporter));
});

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using gulp and npm-test. Plus, make sure to adhere to these commit message conventions.

License

MIT License © Jan Raasch

gulp-coffeelint's People

Contributors

janraasch avatar greenkeeperio-bot avatar jayharris avatar ejoubaud avatar shinnn avatar jordanbtucker avatar deltaidea avatar

Watchers

James Cloos avatar Jan T. Sott avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.