hsu-scripts

CLI toolbox for common scripts for npm libraries.

Usage no npm install needed!

<script type="module">
  import hsuScripts from 'https://cdn.skypack.dev/hsu-scripts';
</script>

README

Hsu-scripts

CLI toolbox for common scripts for npm libraries.

Travis Codecov Status npm package npm downloads

prettier license

Install

$ yarn install hsu-scripts --dev
$ yarn install flow-bin eslint prettier --dev

Setup configs

Babel & Eslint

// package.json
{
  "babel": {
    "presets": ["./node_modules/hsu-scripts/babel.js"]
  },
  "eslintConfig": {
    "extends": ["./node_modules/hsu-scripts/eslint.js"]
  }
}

Prettier

// .prettierrc.js
const config = require('hsu-scripts/prettier.config');
module.exports = config;

Usage

// package.json
{
  "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

  • node 11.10.0
  • yarn 1.13.0
$ 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.

CHANGELOG

LICENSE