From cf1184b15f6554c96cfffe208552fc526dce229f Mon Sep 17 00:00:00 2001 From: JounQin Date: Mon, 12 Aug 2019 10:23:11 +0800 Subject: [PATCH] chore: add type-coverage and codechecks support --- .gitignore | 1 + .travis.yml | 4 ++- README.md | 2 ++ codechecks.yml | 12 ++++++++ package.json | 7 ++++- packages/eslint-mdx/README.md | 2 ++ packages/eslint-mdx/src/traverse.ts | 1 + packages/eslint-plugin-mdx/README.md | 2 ++ tsconfig.base.json | 2 +- yarn.lock | 41 +++++++++++++++++++++++++--- 10 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 codechecks.yml diff --git a/.gitignore b/.gitignore index 6eaccd8d..9fb7c4d4 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ lib node_modules tsconfig.tsbuildinfo .changelog +.type-coverage *.log diff --git a/.travis.yml b/.travis.yml index 119e7096..8f4b4025 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,9 +19,11 @@ script: - yarn lint - yarn build - yarn test + - yarn type-coverage after_success: - - yarn global add codecov + - yarn global add @codechecks/client @codechecks/build-size-watcher @codechecks/type-coverage-watcher codecov + - codechecks - codecov before_deploy: diff --git a/README.md b/README.md index a2255150..0e9e358b 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,13 @@ [![Travis](https://img.shields.io/travis/com/rx-ts/eslint-mdx.svg)](https://travis-ci.com/rx-ts/eslint-mdx) [![Codecov](https://img.shields.io/codecov/c/gh/rx-ts/eslint-mdx)](https://codecov.io/gh/rx-ts/eslint-mdx) +[![type-coverage](https://img.shields.io/badge/dynamic/json.svg?label=type-coverage&prefix=%E2%89%A5&suffix=%&query=$.typeCoverage.atLeast&uri=https%3A%2F%2Fraw.githubusercontent.com%2Frx-ts%2Feslint-mdx%2Fmaster%2Fpackage.json)](https://github.com/rx-ts/eslint-mdx) [![GitHub release](https://img.shields.io/github/release/rx-ts/eslint-mdx)](https://github.com/rx-ts/eslint-mdx/releases) [![David Dev](https://img.shields.io/david/dev/rx-ts/eslint-mdx.svg)](https://david-dm.org/rx-ts/eslint-mdx?type=dev) [![Conventional Commits](https://img.shields.io/badge/conventional%20commits-1.0.0-yellow.svg)](https://conventionalcommits.org) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org) +[![codechecks.io](https://raw.githubusercontent.com/codechecks/docs/master/images/badges/badge-default.svg?sanitize=true)](https://codechecks.io) > [ESLint] Parser/Plugin for [MDX], helps you lint all ES syntaxes excluding `code` block of course. > Work perfectly with `eslint-plugin-import`, `eslint-plugin-prettier` or any other eslint plugins. diff --git a/codechecks.yml b/codechecks.yml new file mode 100644 index 00000000..d191f5d0 --- /dev/null +++ b/codechecks.yml @@ -0,0 +1,12 @@ +checks: + - name: build-size-watcher + options: + files: + - path: 'packages/eslint-mdx/lib/*' + - path: 'packages/eslint-plugin-mdx/lib/*' + - name: type-coverage-watcher + options: + ignoreCatch: true + ignoreFiles: + - '*.d.ts' + strict: true diff --git a/package.json b/package.json index e0c4f4ce..99ec5bf9 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "scripts": { "build": "tsc -b", "test": "ts-node -T node_modules/.bin/jest", - "lint": "EFF_NO_LINK_RULES=true eslint . --ext js,mdx,ts,tsx -f friendly" + "lint": "EFF_NO_LINK_RULES=true eslint . --ext js,mdx,ts,tsx -f friendly", + "type-coverage": "type-coverage --cache --ignore-catch --detail --ignore-files *.d.ts --strict" }, "devDependencies": { "@commitlint/config-conventional": "^8.1.0", @@ -40,6 +41,7 @@ "react": "^16.9.0", "ts-jest": "^24.0.2", "ts-node": "^8.3.0", + "type-coverage": "^2.2.0", "typescript": "^3.5.3" }, "commitlint": { @@ -89,5 +91,8 @@ "extends": [ "1stg" ] + }, + "typeCoverage": { + "atLeast": 98 } } diff --git a/packages/eslint-mdx/README.md b/packages/eslint-mdx/README.md index a2255150..0e9e358b 100644 --- a/packages/eslint-mdx/README.md +++ b/packages/eslint-mdx/README.md @@ -12,11 +12,13 @@ [![Travis](https://img.shields.io/travis/com/rx-ts/eslint-mdx.svg)](https://travis-ci.com/rx-ts/eslint-mdx) [![Codecov](https://img.shields.io/codecov/c/gh/rx-ts/eslint-mdx)](https://codecov.io/gh/rx-ts/eslint-mdx) +[![type-coverage](https://img.shields.io/badge/dynamic/json.svg?label=type-coverage&prefix=%E2%89%A5&suffix=%&query=$.typeCoverage.atLeast&uri=https%3A%2F%2Fraw.githubusercontent.com%2Frx-ts%2Feslint-mdx%2Fmaster%2Fpackage.json)](https://github.com/rx-ts/eslint-mdx) [![GitHub release](https://img.shields.io/github/release/rx-ts/eslint-mdx)](https://github.com/rx-ts/eslint-mdx/releases) [![David Dev](https://img.shields.io/david/dev/rx-ts/eslint-mdx.svg)](https://david-dm.org/rx-ts/eslint-mdx?type=dev) [![Conventional Commits](https://img.shields.io/badge/conventional%20commits-1.0.0-yellow.svg)](https://conventionalcommits.org) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org) +[![codechecks.io](https://raw.githubusercontent.com/codechecks/docs/master/images/badges/badge-default.svg?sanitize=true)](https://codechecks.io) > [ESLint] Parser/Plugin for [MDX], helps you lint all ES syntaxes excluding `code` block of course. > Work perfectly with `eslint-plugin-import`, `eslint-plugin-prettier` or any other eslint plugins. diff --git a/packages/eslint-mdx/src/traverse.ts b/packages/eslint-mdx/src/traverse.ts index 6cceb257..f654ed61 100644 --- a/packages/eslint-mdx/src/traverse.ts +++ b/packages/eslint-mdx/src/traverse.ts @@ -11,6 +11,7 @@ import { Traverser, TraverseOptions } from './types' import { Node, Parent } from 'unist' export class Traverse { + // @internal private readonly _enter: Traverser constructor({ enter }: TraverseOptions) { diff --git a/packages/eslint-plugin-mdx/README.md b/packages/eslint-plugin-mdx/README.md index a2255150..0e9e358b 100644 --- a/packages/eslint-plugin-mdx/README.md +++ b/packages/eslint-plugin-mdx/README.md @@ -12,11 +12,13 @@ [![Travis](https://img.shields.io/travis/com/rx-ts/eslint-mdx.svg)](https://travis-ci.com/rx-ts/eslint-mdx) [![Codecov](https://img.shields.io/codecov/c/gh/rx-ts/eslint-mdx)](https://codecov.io/gh/rx-ts/eslint-mdx) +[![type-coverage](https://img.shields.io/badge/dynamic/json.svg?label=type-coverage&prefix=%E2%89%A5&suffix=%&query=$.typeCoverage.atLeast&uri=https%3A%2F%2Fraw.githubusercontent.com%2Frx-ts%2Feslint-mdx%2Fmaster%2Fpackage.json)](https://github.com/rx-ts/eslint-mdx) [![GitHub release](https://img.shields.io/github/release/rx-ts/eslint-mdx)](https://github.com/rx-ts/eslint-mdx/releases) [![David Dev](https://img.shields.io/david/dev/rx-ts/eslint-mdx.svg)](https://david-dm.org/rx-ts/eslint-mdx?type=dev) [![Conventional Commits](https://img.shields.io/badge/conventional%20commits-1.0.0-yellow.svg)](https://conventionalcommits.org) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org) +[![codechecks.io](https://raw.githubusercontent.com/codechecks/docs/master/images/badges/badge-default.svg?sanitize=true)](https://codechecks.io) > [ESLint] Parser/Plugin for [MDX], helps you lint all ES syntaxes excluding `code` block of course. > Work perfectly with `eslint-plugin-import`, `eslint-plugin-prettier` or any other eslint plugins. diff --git a/tsconfig.base.json b/tsconfig.base.json index a0be0ca8..0239c918 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,5 +1,5 @@ { - "extends": "tsconfig-1stg", + "extends": "./node_modules/tsconfig-1stg/tsconfig.json", "compilerOptions": { "module": "commonjs", "outDir": "lib", diff --git a/yarn.lock b/yarn.lock index 74e55f62..00f0e4ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4074,7 +4074,7 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@7, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== @@ -5885,7 +5885,7 @@ mimic-fn@^2.0.0, mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4: +minimatch@3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -5905,7 +5905,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: +minimist@1.2.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= @@ -8206,6 +8206,14 @@ ts-jest@^24.0.2: semver "^5.5" yargs-parser "10.x" +ts-lib-utils@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ts-lib-utils/-/ts-lib-utils-2.2.0.tgz#dbf198ba67e2fee027f36bd2f9c0cbd638ed1731" + integrity sha512-yfZWuQs5bfQA2RLJdHUOSL2+Iw4NcZ8eKglVVW25aXi3sdLEoJxHB3tC2CN+x4MY4X39tcFCGlE5V7IF8O3m8w== + dependencies: + glob "7" + tslib "1" + ts-node@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.3.0.tgz#e4059618411371924a1fb5f3b125915f324efb57" @@ -8233,11 +8241,18 @@ tsconfig-paths@^3.6.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0: +tslib@1, tslib@^1.8.1, tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +tsutils@3: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + tsutils@^3.14.0: version "3.17.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.0.tgz#c3ccab927a475aa2beef6a3695c2ff76da13cdf8" @@ -8264,6 +8279,24 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-coverage-core@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/type-coverage-core/-/type-coverage-core-2.2.0.tgz#436ebe4f1b7bfd36ab019c840147fbcbb4bd4f1f" + integrity sha512-b7NTFy8HSo57C0zvJK5Vy8K+KWmQEyCFvXE7E8I6VXtt6clHuDg8z4L+CfnSGtt1ZovDu2C6+qjmBgdTZHeJyw== + dependencies: + minimatch "3" + ts-lib-utils "^2.2.0" + tslib "1" + tsutils "3" + +type-coverage@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/type-coverage/-/type-coverage-2.2.0.tgz#b588fd88d322b3b81a1b85bb6a9431c092d6dbb4" + integrity sha512-nU0aRXcSmpkg+T9XZrdpMY967O9YY9VUvE5siyvoHf+4B0oVRpCZACKfKC4AjLFSe4pIwvBqAlo6xKbk9+rDMw== + dependencies: + minimist "1.2.0" + type-coverage-core "^2.2.0" + type-fest@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1"