Simple, mostly opinionated, scripts to build TypeScript modules.
npm install @borderless/ts-scripts --save-dev
In your package.json
you can use the scripts:
{
"scripts": {
"format": "ts-scripts format",
"specs": "ts-scripts specs",
"test": "ts-scripts test", // Runs `check`, `specs --coverage`, `build`.
"build": "ts-scripts build",
"prepublishOnly": "npm run build",
"prepare": "ts-scripts install"
}
}
You will also need to install typescript
for building and vitest
for specs.
Note: If using bun
, you don't need vitest
. You can use bun test
instead.
install
- Installshusky
andlint-staged
for git commit hooksformat
- Usesprettier --write
on all supported files insrc
and the root directoryspecs
- Usesvitest
to run test files match*.{test,spec}.*
files--watch <index>
Runs vitest in watch mode on the config at<index>
--update
Updates the snapshot files--changed
Runs tests on only changed files--since <commit>
Runs tests on files changed since<commit>
--test-pattern
Runs tests matching the specified pattern
build
- Usesrimraf
andtsc
check
- Usesprettier --check
andtsc
on each test "project"test
- Runscheck
,specs
, andbuild
Configuration can get specified in your package.json
file under ts-scripts
:
src
- An array of source file directories (default:["src"]
)ignore
- An array of patterns to ignore (default:[]
)dist
- An array of output directories to clean beforebuild
(default:["dist"]
)project
An array of TSConfig files to build using TypeScript (default:["tsconfig.json"]
)checkProject
An array of TSConfig files to type check using TypeScript (default:["tsconfig.json"]
)test
An array of test configuration objects (default:[{}]
)dir
The directory to read tests from (default:undefined
, root directory)config
The configuration file to use for this test (default:undefined
, discovered byvitest
)
Specific configuration can be disabled for customized configuration by setting src
, dist
, project
, or test
to an empty array.
MIT