Skip to content

Monorepo for Basketry components implemented in TypeScript

Notifications You must be signed in to change notification settings

basketry/typescript

Repository files navigation

Basketry - TypeScript Monorepo

This repository is the monorepo for Basketry components implemented in TypeScript. It uses NPM workspaces to manage multiple packages that share tooling, CI, and release automation.

Packages

Package Version Description
@basketry/express main Basketry generator for ExpressJS routers and handlers.
@basketry/typescript main Basketry generator for TypeScript interfaces, types, and enums, and more.
@basketry/typescript-dtos main Basketry generator for Data Transfer Objects (DTOs) and associated mapper functions.
@basketry/zod main Basketry generator for Zod validation schemas.

Versioning & publishing

This repo uses two GitHub Actions workflows:

1) Version PR (prepare a release)

Open a version PR for a workspace:

  • Run the Version workflow manually in Actions.
  • Inputs:
    • workspace: the npm workspace name (e.g., @basketry/typescript)
    • newversion: semver bump or exact version (e.g., minor, 1.2.3, prerelease, etc.)
    • preid (optional): prerelease tag (e.g., beta, rc)

This workflow only opens a PR with the version change for that package that describes the specific version that will be published along with any changes to dist tags. Review and merge as usual.

2) Publish on merge (automated)

When a workspace's package version changes, the Publish workflow is automatically run which:

  • Detects which workspaces changed their version in the merge.
  • Skips any name@version already published on npm.
  • Publishes each remaining workspace with npm publish --provenance.
  • Applies a Git tag per release using the convention <package>@<version> (e.g., @basketry/typescript@1.2.3).
  • Uses latest for stable releases; for prereleases, uses the prerelease identifier as the dist-tag (e.g., beta, rc).

Note that the Publish workflow will trigger a publish anytime a workspace's package version changes, even if that change was not initiated from a Version PR. If multiple packages publish from the same merge, each gets its own tag pointing at the merge commit.

About

Monorepo for Basketry components implemented in TypeScript

Resources

Stars

Watchers

Forks

Sponsor this project

 

Contributors 4

  •  
  •  
  •  
  •