Official GoDaddy JavaScript styleguide. It includes eslint packages for three use-cases and can be used as a standard in any new project.
eslint-config-godaddy: Base configuration for non-React, ES6 JavaScript applicationseslint-config-godaddy-react: Configuration for ES6 React JavaScript applicationseslint-config-godaddy-es5: Configuration for React and non-React ES5 JavaScript applicationseslint-config-godaddy-react-flow: Configuration for ES6 React JavaScript applications using Flow
There are many useful features:
- Standard. No configuration. – Stop worrying about style and focus on your work.
- Modern – Uses modern linting tools like
eslint. - Auto-fix – Auto-fix is enabled by-default through in
eslint. Many rules will fix themselves!
This styleguide is used by dozens of product teams at GoDaddy. Have a question or comment? Open an issue!
Install one of the provided packages depending on the kind of application you are developing:
# Default with ES6
npm i eslint-config-godaddy --save-dev
# OR (ES6 with React rules)
npm i eslint-config-godaddy-react --save-dev
# OR (legacy ES5 with React rules)
npm i eslint-config-godaddy-es5 --save-dev
# OR (ES6 with React and Flow rules)
npm i eslint-config-godaddy-react-flow --save-devThere are two ways to use this styleguide depending on your own tooling preference: directly using pre-included binaries or running eslint yourself with a custom .eslintrc config.
These use exactly the configuration defined in the individual eslint-config-godaddy* package with auto-fix enabled automatically.
{
"scripts": {
"lint": "eslint-godaddy files/ you/ want-to/ lint/"
}
}module.exports = {
extends: 'godaddy',
rules: {
//
// Put any rules you wish to override here.
//
}
}The --fix option in eslint is only available as a CLI option. Auto-fix will NOT be enabled unless you run eslint --fix in your package.json.
{
"scripts": {
"lint": "eslint --fix files/ you/ want-to/ lint/"
}
}This section is a place for additional best practices that may be useful but are not strictly enforced by this styleguide. Have something to add here? Great! Submit a PR.
{
"extends": "godaddy",
"rules": {
// Disable the 'max-params' rule
"max-params": 0
}
}{
"scripts": {
"eslint": "eslint-godaddy -c .eslintrc lib/ test/",
}
}Fork this repository and submit a pull request.
Proposed modifications to the style guide should modify the files in /dotfiles before running npm run build when submitting a pull request. This repository utilizes the fashion-show module to generate the /dist files to be checked in.
Great. We'd love to talk about it. Fork this repository and submit a pull-request.
No problem. Reach out to us by opening an issue
- Consider other rules in an
eslintonly implementation:computed-property-spacinggenerator-star-spacingsemi-spacingblock-spacing
- Continue to modularize the
eslintrules. - Translate configuration files into more verbose written documentation.
- Add support for IDE formats (IntelliJ, Webstorm, Atom, Eclipse, Sublime, etc...)