8 Commits

Author SHA1 Message Date
Kent C. Dodds
4e579627b7 lint-staged 2018-09-14 22:16:10 -06:00
Kent C. Dodds
053c5de689 husky 2018-09-14 22:14:43 -06:00
Kent C. Dodds
d43c846d12 flow all the things 2018-09-14 22:13:35 -06:00
Kent C. Dodds
437ed30ddb list different 2018-09-14 22:01:31 -06:00
Kent C. Dodds
94216f47e8 setup eslint-config-prettier 2018-09-14 21:49:45 -06:00
Kent C. Dodds
4f2fde56e2 config prettier 2018-09-14 21:49:32 -06:00
Kent C. Dodds
c077931399 prettier! 2018-09-14 21:49:31 -06:00
Kent C. Dodds
82342de51c install, config, run 2018-09-14 21:49:25 -06:00
9 changed files with 3091 additions and 8 deletions

13
.eslintrc Normal file
View File

@@ -0,0 +1,13 @@
{
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": "2018"
},
"extends": ["eslint:recommended", "eslint-config-prettier"],
"rules": {
"no-console": "off"
},
"env": {
"browser": true
}
}

11
.flowconfig Normal file
View File

@@ -0,0 +1,11 @@
[ignore]
[include]
[libs]
[lints]
[options]
[strict]

11
.lintstagedrc Normal file
View File

@@ -0,0 +1,11 @@
{
"linters": {
"*.js": [
"eslint"
],
"*.+(js|jsx|json|yml|yaml|css|less|scss|ts|tsx|md|graphql|mdx)": [
"prettier --write",
"git add"
]
}
}

7
.prettierignore Normal file
View File

@@ -0,0 +1,7 @@
node_modules
coverage
dist
build
.build
# etc...

12
.prettierrc Normal file
View File

@@ -0,0 +1,12 @@
{
"arrowParens": "avoid",
"bracketSpacing": false,
"jsxBracketSameLine": false,
"printWidth": 80,
"proseWrap": "always",
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "all",
"useTabs": false
}

2995
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -3,9 +3,24 @@
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": {}, "scripts": {
"lint": "eslint src",
"flow": "flow",
"format": "npm run prettier -- --write",
"prettier": "prettier \"**/*.+(js|jsx|json|yml|yaml|css|less|scss|ts|tsx|md|graphql|mdx)\"",
"validate": "npm run lint && npm run prettier -- --list-different && npm run flow",
"precommit": "lint-staged && npm run flow"
},
"keywords": [], "keywords": [],
"author": "Kent C. Dodds <kent@doddsfamily.us> (http://kentcdodds.com/)", "author": "Kent C. Dodds <kent@doddsfamily.us> (http://kentcdodds.com/)",
"license": "MIT", "license": "MIT",
"devDependencies": {} "devDependencies": {
"babel-eslint": "^9.0.0",
"eslint": "^5.5.0",
"eslint-config-prettier": "^3.0.1",
"flow-bin": "^0.81.0",
"husky": "^0.14.3",
"lint-staged": "^7.2.2",
"prettier": "^1.14.2"
}
} }

View File

@@ -1,11 +1,10 @@
const name = 'Freddy' const name = 'Freddy'
typeof name === 'strng' typeof name === 'string'
if (!'serviceWorker' in navigator) { if (!('serviceWorker' in navigator)) {
// you have an old browser :-( // you have an old browser :-(
} }
const greeting = 'hello' const greeting = 'hello'
console.log('${greting} world!') console.log(`${greeting} world!`)
;[(1, 2, 3)].forEach(x => console.log(x))
[(1, 2, 3)].forEach(x => console.log(x))

22
src/flow-example.js Normal file
View File

@@ -0,0 +1,22 @@
// @flow
function add(a: number, b: number): number {
return a + b
}
type User = {
name: {
first: string,
middle: string,
last: string,
},
}
function getFullName(user: User): string {
const {
name: {first, middle, last},
} = user
return [first, middle, last].filter(Boolean).join('')
}
add(1, 2)
getFullName({name: {first: 'Joe', middle: 'Bud', last: 'Matthews'}})