1.7 KiB
1.7 KiB
TSPublish Project Overview
Purpose
TSPublish is a tool designed to publish multiple, concise, and small packages from monorepos, specifically for TypeScript projects within a git environment. It helps manage and automate the publishing of individual packages from a monorepo structure.
Tech Stack
- Language: TypeScript
- Runtime: Node.js
- Package Manager: pnpm (v10.11.0)
- Build Tool: @git.zone/tsbuild
- Testing: @git.zone/tstest with @push.rocks/tapbundle
- CLI Framework: @push.rocks/smartcli
- Logging: @push.rocks/smartlog (currently basic usage)
Main Dependencies
- @push.rocks/smartcli - CLI interface
- @push.rocks/smartdelay - Delay utilities
- @push.rocks/smartfile - File operations
- @push.rocks/smartlog - Logging
- @push.rocks/smartnpm - NPM registry interactions
- @push.rocks/smartpath - Path utilities
- @push.rocks/smartrequest - HTTP requests
- @push.rocks/smartshell - Shell command execution
Project Structure
ts/
- TypeScript source filesindex.ts
- Main entry pointclasses.tspublish.ts
- Main TsPublish classclasses.publishmodule.ts
- PublishModule class for individual packagesclasses.giteaassets.ts
- Gitea assets managementlogging.ts
- Logger configurationplugins.ts
- External dependenciespaths.ts
- Path constantsinterfaces/
- TypeScript interfaces
test/
- Test filesdist_ts/
- Compiled JavaScript outputcli.js
- CLI entry point (bin script)
Key Features
- Scans monorepo for directories starting with "ts"
- Validates packages via tspublish.json files
- Creates package.json dynamically for each module
- Builds TypeScript code before publishing
- Checks npm registry for version conflicts
- Publishes packages to npm registry