Hsu-scripts
CLI toolbox for common scripts for npm libraries.
Install
$ yarn install hsu-scripts --dev
$ yarn install flow-bin eslint prettier --dev
Setup configs
Babel & Eslint
{
"babel": {
"presets": ["./node_modules/hsu-scripts/babel.js"]
},
"eslintConfig": {
"extends": ["./node_modules/hsu-scripts/eslint.js"]
}
}
Prettier
const config = require('hsu-scripts/prettier.config');
module.exports = config;
Usage
{
"scripts": {
"build": "hsu-scripts build src",
"test": "NODE_ENV='test' jest",
"eslint": "eslint ./",
"flow": "flow",
"flow-coverage": "hsu-scripts flow --threshold 85",
"format": "prettier --write '**/*.{js,json,md,css,yaml,yml}' '*.{js,json,md,css,yaml,yml}'"
}
}
Build
$ hsu-scripts build src
logs
$ npm run build
> hsu-scripts build src
> rimraf es lib
> Done
> NODE_ENV='cjs' babel src --no-babelrc --config-file /hsu-scripts/.babelrc --out-dir lib --ignore **tests**,**/\*.test.js,**/\*.example.js
> Successfully compiled 13 files with Babel.
> NODE_ENV='es' babel src --no-babelrc --config-file /hsu-scripts/.babelrc --out-dir es --ignore **tests**,**/\*.test.js,**/\*.example.js
> Successfully compiled 13 files with Babel.
> flow-copy-source -i **tests** -i **/\*.test.js -i **/\*.example.js src lib
> Done
> flow-copy-source -i **tests** -i **/\*.test.js -i **/\*.example.js src es
> Done
Flow
$ npm run flow-coverage
API
hsu-scripts -h
hsu-scripts <command>
Commands:
hsu-scripts build The babel build command.
hsu-scripts flow The flow-coverage-report command.
Options:
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
For more information go to https://github.com/evenchange4/hsu-scripts
hsu-scripts build -h
Usage: hsu-scripts build <pattern> [options]
<pattern> Glob pattern to specify files.
Options:
--es-dir Output es module directory. [string] [default: "es"]
--cjs-dir Output commonjs module directory. [string] [default: "lib"]
--ignore The list of glob paths to **not** compile
[array] [default: ["__tests__","**/*.test.js","**/*.example.js"]]
-h, --help Show help [boolean]
Examples:
hsu-scripts build src Simple example
hsu-scripts build src --es-dir esm Custom es module directory
hsu-scripts build src --cjs-dir 'cjs' Custom commonjs module directory
hsu-scripts build src --ignore '__specs__' '**/*.spec.js'
hsu-scripts flow -h
Usage: hsu-scripts flow [options]
Options:
--concurrent-files [number] [default: 5]
--include-glob [array] [default: ["**/*.js"]]
--exclude-glob [array] [default:
["node_modules/**","public/**",".next/**","coverage/**","storybook-static/**",
"flow-typed/**","lib/**","es/**"]]
--type [array] [default: ["text"]]
--threshold [number] [default: 90]
-h, --help Show help [boolean]
Examples:
hsu-scripts flow Simple example
hsu-scripts flow --threshold 75 Custom threshold value
For more information go to https://github.com/rpl/flow-coverage-report
Development
$ yarn install --pure-lockfile
Test
Use tools to build/flow itself.
$ yarn run build
$ yarn run flow-coverage
$ yarn run test:watch
$ yarn run format
$ yarn run eslint
Example library
Publish
$ npm version patch
$ npm run changelog
git commit & push
CONTRIBUTING
- ⇄ Pull requests and ★ Stars are always welcome.
- For bugs and feature requests, please create an issue.
- Pull requests must be accompanied by passing automated tests.