Javascript code linter for traveloka js styleguide
npm install marlint> JavaScript strict code style with ES6+ES7, React, and Flowtype (inspired from XO)
Enforce strict code style. Never discuss code style on a code review again
No decision-making. No .eslintrc, .jshintrc, .jscsrc to manage. It just works!
- ES6+ES7 support
- Flowtype compatible (will not throw error on flow annotation)
- React (and JSX) support (with sane rules, like no implicit React dependency on JS file with JSX syntax)
- 2 Space indentation
- Semicolons
- Single-quotes
- No unused variables
- Space after keyword if (condition) {}
- Always === instead of ==
_Any of these can be overridden if necessary._
Check out an example and the ESLint rules.
```
$ npm install --global marlint
`
$ marlint --help
Usage
$ marlint [
Options
--compact Compact output
--stdin Validate code from stdin
--env Environment preset [Can be set multiple times]
--global Global variable [Can be set multiple times]
--ignore Additional paths to ignore [Can be set multiple times]
Examples
$ marlint
$ marlint index.js
$ marlint *.js !foo.js
$ marlint --env=node --env=mocha
Tips
Put options in package.json instead of using flags so other tools can read it.
`
You can configure some options in Marlint by putting it in package.json:
`js`
{
"name": "your-project",
"marlint": {
"envs": ["node", "mocha"]
}
}
Globals and rules can be configured inline in files.
Type: array ['node']
Default:
Which environments your code is designed to run in. Each environment brings with it a certain set of predefined global variables.
Type: array
Additional global variables your code accesses during execution.
Type: array
Some paths are ignored by default. Additional ignores can be added here.
Type: object
Override any of the default rules. See the ESLint docs for more info on each rule.
Please take a moment to consider if you really need to use this option.
#### Why not ESLint / Standard / XO?
This project aims to simplify code convention across Traveloka javascripts code by just typing marlint` and be done. No decision-making, no config. Standard is way too opinionated and the rules is not meant to be changed. We could use XO, but we have to add support for ES6+ES7, React and Flowtype everytime we add new JavaScript project and that means duplicate config file. This tool is created to solve that problem.
- eslint-config-marlint - ESLint shareable config for Marlint
MIT © Traveloka