Skip to content

Commit df443a7

Browse files
committed
Update project config
1 parent f2a6541 commit df443a7

11 files changed

+181
-144
lines changed

Diff for: .babelrc

-6
This file was deleted.

Diff for: .eslintignore

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
/lib/*
2-
!/lib/bundle.js.flow
3-
/flow-typed/npm
1+
/node_modules
42
/coverage
3+
/esm
4+
/lib
5+
/flow-typed/npm
6+
/.nyc_output

Diff for: .eslintrc.yml

+34-84
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,49 @@
1-
extends:
2-
- airbnb-base
3-
- plugin:flowtype/recommended
1+
parser: babel-eslint
42

53
plugins:
64
- flowtype
75

6+
extends:
7+
- airbnb-base
8+
- plugin:prettier/recommended
9+
810
env:
911
node: true
10-
browser: false
12+
browser: true
1113

1214
rules:
1315

14-
no-console: off
15-
16-
no-multi-assign: off
17-
18-
no-return-assign:
19-
- error
20-
- except-parens
21-
22-
no-confusing-arrow: off
23-
24-
semi:
25-
- error
26-
- never
27-
16+
prettier/prettier:
17+
- error
18+
- printWidth: 80
19+
tabWidth: 2
20+
useTabs: false
21+
semi: false
22+
singleQuote: true
23+
jsxSingleQuote: true
24+
trailingComma: all
25+
bracketSpacing: true
26+
jsxBracketSameLine: true
27+
arrowParens: avoid
28+
rangeStart: 0
29+
requirePragma: false
30+
insertPragma: false
31+
proseWrap: always
32+
33+
eqeqeq: [error, smart]
34+
no-dupe-keys: error
35+
no-return-assign: off
2836
consistent-return: off
37+
no-use-before-define: off
2938

30-
no-unused-expressions: off
31-
32-
object-curly-newline:
33-
- error
34-
- consistent: true
35-
36-
function-paren-newline:
37-
- error
38-
- consistent
39-
40-
41-
flowtype/boolean-style:
42-
- error
43-
- boolean
39+
import/prefer-default-export: off
40+
import/no-extraneous-dependencies: off
4441

4542
flowtype/define-flow-type: error
46-
47-
flowtype/delimiter-dangle:
48-
- error
49-
- always-multiline
50-
51-
flowtype/generic-spacing:
52-
- error
53-
- never
54-
55-
flowtype/no-dupe-keys: error
56-
43+
flowtype/no-dupe-keys: off
44+
flowtype/no-mutable-array: error
5745
flowtype/no-primitive-constructor-types: error
58-
59-
flowtype/no-weak-types:
60-
- error
61-
- any: false
62-
Object: false
63-
Function: true
64-
65-
flowtype/object-type-delimiter:
66-
- error
67-
- comma
68-
69-
flowtype/require-valid-file-annotation:
70-
- error
71-
- never
72-
- annotationStyle: block
73-
74-
flowtype/semi:
75-
- error
76-
- never
77-
78-
flowtype/space-after-type-colon:
79-
- error
80-
- always
81-
- allowLineBreak: false
82-
83-
flowtype/space-before-generic-bracket:
84-
- error
85-
- never
86-
87-
flowtype/space-before-type-colon:
88-
- error
89-
- never
90-
91-
flowtype/type-id-match:
92-
- error
93-
- ^[A-Z]
94-
95-
flowtype/union-intersection-spacing:
96-
- error
97-
- always
98-
46+
flowtype/no-types-missing-file-annotation: error
47+
flowtype/require-valid-file-annotation: [error, never, { annotationStyle: block }]
48+
flowtype/type-id-match: [error, '^[A-Z][a-z0-9]*']
9949
flowtype/use-flow-type: error

Diff for: .flowconfig

-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,5 @@
77
[lints]
88

99
[options]
10-
module.system=haste
11-
esproposal.export_star_as=enable
1210

1311
[strict]

Diff for: .gitignore

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
/node_modules
2-
/lib/*
3-
!/lib/bundle.js.flow
4-
/coverage
1+
node_modules
2+
coverage
3+
esm
4+
lib
5+
.nyc_output
56
*.log
6-
*.log-*
77
*.log.*
8+
*.log-*
89
*.log_*

Diff for: .nycrc

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"require": [
3+
"esm",
4+
"@babel/register"
5+
],
6+
"reporter": [
7+
"lcov",
8+
"text"
9+
],
10+
"exclude": [
11+
"**/index.js",
12+
"**/*.config.js",
13+
"**/*.test.js",
14+
"lib"
15+
],
16+
"sourceMap": false,
17+
"instrument": false
18+
}

Diff for: .travis.yml

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
language: node_js
22
node_js:
3-
- '8'
4-
before_script:
5-
- yarn install
6-
script: yarn precommit && yarn transpile
3+
- '10'
4+
script:
5+
- yarn lint
6+
- yarn flow
7+
# - yarn test:nyc
8+
# - yarn coverage
9+
- yarn run build
710
deploy:
811
skip_cleanup: true
912
provider: npm
10-
email: me@pavlik.pro
13+
email: me@stupidcat.wtf
1114
on:
1215
tags: true
1316
branch: master

Diff for: ava.config.js

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/* @flow */
2+
3+
export default {
4+
require: ['@babel/register'],
5+
}

Diff for: babel.config.js

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const env = ({ modules = false } = {}) => [
2+
'@babel/env',
3+
{
4+
targets: {
5+
node: 6,
6+
browsers: ['last 4 version', '> 1%', 'not dead'],
7+
},
8+
useBuiltIns: 'usage',
9+
modules: modules && 'commonjs',
10+
},
11+
]
12+
13+
module.exports = {
14+
exclude: 'node_modules/**',
15+
presets: ['@babel/flow', env()],
16+
env: {
17+
test: {
18+
plugins: ['istanbul'],
19+
presets: [env({ modules: true }), ['module:ava/stage-4', false]],
20+
},
21+
script: {
22+
presets: [
23+
[
24+
'@babel/env',
25+
{
26+
targets: { node: 'current' },
27+
useBuiltIns: 'usage',
28+
modules: 'commonjs',
29+
},
30+
],
31+
],
32+
},
33+
},
34+
}

Diff for: package.json

+12-5
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,22 @@
2323
"src/types.js"
2424
],
2525
"scripts": {
26+
"build": "rollup -c",
27+
"flow-entry": "cp lib/index.js.flow esm/index.js.flow",
28+
"generate-core": "NODE_ENV=script babel-node src/scripts/generateCore",
2629
"lint": "eslint .",
2730
"flow": "flow",
28-
"posttyped": "flow-typed install [email protected]",
29-
"tg-types": "babel-node src/scripts/generateTgTypes",
30-
"transpile": "rollup -c",
31-
"precommit": "yarn lint && yarn flow",
32-
"preversion": "git checkout master && yarn precommit",
31+
"test": "ava --verbose",
32+
"test:nyc": "nyc ava --verbose",
33+
"coverage": "nyc report --reporter=text-lcov | coveralls",
34+
"preversion": "git checkout master && yarn lint && yarn flow",
3335
"postversion": "git push --follow-tags"
3436
},
37+
"husky": {
38+
"hooks": {
39+
"pre-commit": "yarn lint && yarn flow"
40+
}
41+
},
3542
"dependencies": {
3643
"core-js": "^2.5.7",
3744
"events": "^3.0.0",

Diff for: rollup.config.js

+59-34
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,73 @@
1-
import resolve from 'rollup-plugin-node-resolve'
21
import commonjs from 'rollup-plugin-commonjs'
32
import babel from 'rollup-plugin-babel'
3+
import flowEntry from 'rollup-plugin-flow-entry'
4+
import clear from 'rollup-plugin-clear'
45

56
import packageJson from './package.json'
67

7-
const deps =
8-
Object.keys(packageJson.dependencies)
9-
.concat('http', 'url')
10-
.join('|')
8+
const { dependencies } = packageJson
119

12-
const reg = new RegExp(`^(${deps})($|/)`)
10+
const deps = dependencies && Object.keys(dependencies).join('|')
11+
const reg = deps && new RegExp(`^(${deps})($|/)`)
1312

1413
const banner = `
1514
/**
16-
* tgapi v${packageJson.version}
15+
* ${packageJson.name} v${packageJson.version}
1716
* ${packageJson.description}
1817
*/
1918
`
2019

21-
export default {
22-
input: 'src/index.js',
23-
output: {
24-
file: 'lib/bundle.js',
25-
format: 'cjs',
26-
banner,
20+
const external = id => !!reg && reg.test(id)
21+
22+
export default [
23+
{
24+
input: 'src/index.js',
25+
output: {
26+
file: 'lib/index.js',
27+
format: 'cjs',
28+
banner,
29+
},
30+
plugins: [
31+
clear({
32+
targets: ['lib'],
33+
}),
34+
flowEntry(),
35+
babel({
36+
exclude: 'node_modules/**',
37+
}),
38+
commonjs(),
39+
],
40+
treeshake: true,
41+
external,
42+
},
43+
{
44+
input: 'src/index.js',
45+
output: {
46+
file: 'esm/index.mjs',
47+
format: 'esm',
48+
banner,
49+
},
50+
plugins: [
51+
clear({
52+
targets: ['esm'],
53+
}),
54+
flowEntry(),
55+
babel({
56+
exclude: 'node_modules/**',
57+
presets: [
58+
[
59+
'@babel/env',
60+
{
61+
targets: { node: 10 },
62+
useBuiltIns: 'usage',
63+
modules: false,
64+
},
65+
],
66+
],
67+
}),
68+
commonjs(),
69+
],
70+
treeshake: true,
71+
external,
2772
},
28-
plugins: [
29-
babel({
30-
babelrc: false,
31-
exclude: 'node_modules/**',
32-
plugins: [
33-
'ramda',
34-
'transform-object-rest-spread',
35-
],
36-
presets: [
37-
'flow',
38-
['env', {
39-
targets: { node: 6 },
40-
modules: false,
41-
}],
42-
],
43-
}),
44-
resolve(),
45-
commonjs(),
46-
],
47-
external: id => reg.test(id),
48-
}
73+
]

0 commit comments

Comments
 (0)