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 [<file|glob> ...]
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
:
{
"name": "your-project",
"marlint": {
"envs": ["node", "mocha"]
}
}
Globals and rules can be configured inline in files.
Type: array
Default: ['node']
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.
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