@reflex-stack/tsp
v0.2.1
Published
TSP scaffolds and build Typescript sources to EcmaScript modules and publish them as modular packages to NPM
Readme
TypeScript Package (tsp)
TypeScript Package (tsp), scaffolds and build Typescript sources to EcmaScript modules and publish them as modular packages to NPM or JSR.
Features :
- It uses
tscto compile from ts to js and check errors - Generates
.d.tsto keep types when used - Scaffold new packages in 1 minute
- Testing lib pre-installed, can also use your own or skip tests (will use
bun:testif the runtime is Bun) - Generating size report and replace them with tags in
README.mdfor Npm and GitHub - Compatible with latest Node / Bun / Deno and all bundlers with ecma specification
- Publishing under
.jsand.d.tshelps having better performances in your projects.
Check example on NPM and GitHub
Init a new TypeScript Package
First, create the associated git repository for your package and clone it (optional).
Then, run this command in the cloned directory. :
To create a package managed with Bun
bunx @reflex-stack/tsp initTo create a package managed with Node
npx @reflex-stack/tsp initIf you create this package in a mono-repo,
cdin the correct repository before running this command. The subdirectory is important for package.json to be in the right place.
Created files
This will ask some questions and create those files. It contains 1 submodule example and a simple test implementation.
├─ dist/
├─ src/
│ ├─ submodule
│ │ └─ index.ts
│ └─ index.ts
├─ tests/
│ └─ test.(js|ts)
│ └─ tsconfig.json (if Node runtime, to have correct typings in test.js)
├─ .gitignore
├─ .npmignore
├─ LICENSE (if MIT)
├─ package.json
├─ package-lock.json
├─ README.md
└─ tsconfig.jsonAvailable commands
Build sources
bun run build
# or
npm run build- Will clear
./dist, build sources from.tsfiles to.jsand.d.tsfiles.
Run
npm run build --noSizeReportto skip size report entirely.
Test
bun run test
# or
npm run testWill clear
./dist, build sources and run tests. No size report.
Bump version
bun run bump
# or
npm run bumpWill clear
./dist, build sources, run tests, and create a new package version. You will be able to runnpm publish --access publicorbun publish --access publicsafely after that.
Size report
TSP can generate size reports with brotli compression.
Use <bundle-size id="{bundleID}">0b</bundle-size> tags in your README.md to include size reports.
Replace {bundleID} with the name of the bundle you want to include.
Those tags will be replaced each time you run npm run build.
For the total bundle size, use <bundle-size id="total">0b</bundle-size>
Works in GitHub and NPM.
TSP can also generate a json size report as bundle-sizes.json if needed (default is set to false)
TSP config
TSP config is in the generated package.json under the "tsp" node
{
"tsp": {
// Can set to "node" or "deno"
"runtime": "bun",
// If you change them, you should update tsconfig.json file
"src": './src',
"dist": './dist',
"tests": './tests',
"tmp": './tmp',
// Add your test files here
"test-files": ['test.ts'],
// Where size reports are generated
"generate-json-report": false
},
}Next features
- [ ] Set other files than
README.mdin config for size report tags - [ ] Docisfy integration
