Compare commits
12 Commits
tjs/step-0
...
tjs/step-1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
281993d1ca | ||
|
|
a1e30ee995 | ||
|
|
cc6fdf9d84 | ||
|
|
a5d2d971dd | ||
|
|
b41c948eeb | ||
|
|
a8d752b04f | ||
|
|
dda36098bd | ||
|
|
945eaac136 | ||
|
|
df642497e9 | ||
|
|
8fb12ded93 | ||
|
|
acf0e58463 | ||
|
|
c204cda937 |
19
.eslintrc
19
.eslintrc
@@ -1,18 +1,23 @@
|
||||
{
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 2019,
|
||||
"sourceType": "module",
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
}
|
||||
},
|
||||
"project": "./tsconfig.json"
|
||||
},
|
||||
"plugins": ["@typescript-eslint/eslint-plugin"],
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/eslint-recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"eslint-config-prettier",
|
||||
"eslint-config-prettier/@typescript-eslint"
|
||||
],
|
||||
"rules": {
|
||||
"strict": ["error", "never"],
|
||||
"valid-typeof": "error",
|
||||
"no-unsafe-negation": "error",
|
||||
"no-unused-vars": "error",
|
||||
"no-unexpected-multiline": "error",
|
||||
"no-undef": "error"
|
||||
"strict": ["error", "never"]
|
||||
},
|
||||
"env": {
|
||||
"browser": true
|
||||
|
||||
5
.huskyrc
Normal file
5
.huskyrc
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"hooks": {
|
||||
"pre-commit": "npm run check-types && lint-staged"
|
||||
}
|
||||
}
|
||||
9
.lintstagedrc
Normal file
9
.lintstagedrc
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"*.js": [
|
||||
"eslint"
|
||||
],
|
||||
"*.+(js|json|ts)": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
]
|
||||
}
|
||||
17
.prettierrc
Normal file
17
.prettierrc
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"arrowParens": "avoid",
|
||||
"bracketSpacing": false,
|
||||
"htmlWhitespaceSensitivity": "css",
|
||||
"insertPragma": false,
|
||||
"jsxBracketSameLine": false,
|
||||
"jsxSingleQuote": false,
|
||||
"printWidth": 80,
|
||||
"proseWrap": "always",
|
||||
"quoteProps": "as-needed",
|
||||
"requirePragma": false,
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"tabWidth": 2,
|
||||
"trailingComma": "all",
|
||||
"useTabs": false
|
||||
}
|
||||
2629
package-lock.json
generated
2629
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@@ -4,12 +4,26 @@
|
||||
"author": "Kent C. Dodds (http://kentcdodds.com/)",
|
||||
"license": "GPLv3",
|
||||
"scripts": {
|
||||
"build": "babel src --out-dir dist"
|
||||
"build": "babel src --out-dir dist",
|
||||
"lint": "eslint --ignore-path .gitignore --ext .js,.ts,.tsx .",
|
||||
"check-types": "tsc",
|
||||
"prettier": "prettier --ignore-path .gitignore --write \"**/*.+(js|json)\"",
|
||||
"format": "npm run prettier -- --write",
|
||||
"check-format": "npm run prettier -- --list-different",
|
||||
"validate": "npm-run-all --parallel check-types check-format lint build"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.7.0",
|
||||
"@babel/core": "^7.7.2",
|
||||
"@babel/preset-env": "^7.7.1",
|
||||
"eslint": "^6.6.0"
|
||||
"@babel/cli": "^7.5.5",
|
||||
"@babel/core": "^7.5.5",
|
||||
"@babel/preset-env": "^7.5.5",
|
||||
"@typescript-eslint/eslint-plugin": "^2.0.0",
|
||||
"@typescript-eslint/parser": "^2.0.0",
|
||||
"eslint": "^6.1.0",
|
||||
"eslint-config-prettier": "^6.0.0",
|
||||
"husky": "^3.0.2",
|
||||
"lint-staged": "^9.2.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^1.18.2",
|
||||
"typescript": "^3.5.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
'use strict'
|
||||
|
||||
const username = 'freddy'
|
||||
typeof username === 'strng'
|
||||
typeof username === 'string'
|
||||
|
||||
if (!'serviceWorker' in navigator) {
|
||||
if (!('serviceWorker' in navigator)) {
|
||||
// you have an old browser :-(
|
||||
}
|
||||
|
||||
const greeting = 'hello'
|
||||
console.log('${greeting} world!')
|
||||
[1, 2, 3].forEach(x => console.log(x))
|
||||
console.log(`${greeting} world!`)
|
||||
;[1, 2, 3].forEach(x => console.log(x))
|
||||
|
||||
21
src/typescript-example.ts
Normal file
21
src/typescript-example.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
function add(a: number, b: number): number {
|
||||
return a + b
|
||||
}
|
||||
|
||||
interface 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'}})
|
||||
9
tsconfig.json
Normal file
9
tsconfig.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// because we're compiling with Babel instead of TypeScript
|
||||
// and we're only using TypeScript for type checking, we'll set "noEmit"
|
||||
// to true so running type checking doesn't generate any files.
|
||||
"noEmit": true,
|
||||
"baseUrl": "./src"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user