Skip to content

kc-workspace/kcws

Repository files navigation

Kamontat's Workspace ecosystem TypeScript icon Node.js icon CSS icon HTML icon

This monorepo included libraries, tools, and helpers that will make my life easier.

Conventional commits Commitizen friendly

Terminology

  • package - package name (e.g. @kcconfigs/tsconfig, @kcexamples/demo)
    • Use on package.json#name field and release-please/config.json#component field
  • component - package name without at(@) sign (e.g. kcconfigs/tsconfig)
    • Use on Git commit scope and Git tag prefix
  • package version || version - package version (e.g. 0.2.0, 1.2.3, 1.0.0-beta.1)
    • Use on package.json#version field
  • prerelease - package version contains prerelease identifier (e.g. 1.0.0-beta.1)
    • Similar to package version; more specific to prerelease only
  • prerelease number - number at the end of prerelease (e.g. 1, 2)
    • If package version is 1.0.0, then prerelease number is empty
    • If package version is 0.1.2-beta.2, then prerelease number is 2
  • Git tag || tag - Git tag string (e.g. kcconfigs/tsconfig+v1.2.3)
    • Syntax: <component>+v<version>
  • npm tag - npm tag string (e.g. latest, rc, beta, alpha)
    • Use with install package (e.g. npm install @kcconfigs/tsconfig@beta)
    • Node will use latest when not specify

Todo list

  • Support Pnpm monorepo
  • Move @kc* to packages/@kc* to simplify number of directories
  • Support run dts test using vitest
  • Support test junit output (reports/test-results)
  • Support test coverage output (reports/coverage)
  • Support TypeDocs
  • Support Biome
  • Support commitlint && commitizen
  • Support Git hooks via lefthook
  • Support Superlinter and configured linters
  • Support Megalinter and configured linters
  • Support SonarQube Cloud
  • Support new package generator
  • Automatically update dependencies via dependabot
  • Automatically merge PRs via mergify
  • Automatically increase version using release-please
  • Set GitHub release to immutable

Known issues

Get start

  • Clone or Fork repository from GitHub: git clone git@github.com/kc-workspace/kcws
  • Install Node.js using mise (or manual install based on mise.toml version)
  • Install Pnpm: corepack enable
  • Install dependencies: pnpm install
  • Build package: pnpm build:all (required for some internal commands)

Command cheat sheet

## Build all packages
pnpm build:all
## Test all packages
pnpm test:all
## Fix lint and format on all packages
pnpm fix:all
## Generate document html at ./docs folder
pnpm docs:all
## Clean built folders
pnpm clean

Packages

@kcconfigs/*

Shared configuration for KC's projects (personal)

@kcexamples/*

Example project for testing and Proof of concept

@kcinternals/*

Internal packages specifically for @kc*/* packages

@kctools/*

Command-line tools for KC's projects (personal)

@kctypes/*

TypeScript type definition utilities helper

@kcws/*

Generic packages for full-stack development (including both Frontend and Backend).

About

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors