Initial commit: add .gitignore and README
This commit is contained in:
142
README.md
Normal file
142
README.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# Workspace Shared Packages
|
||||
|
||||
**Status**: 🚧 **In Development**
|
||||
**Purpose**: Shared packages and libraries for workspace projects
|
||||
**Last Updated**: 2025-01-27
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
This monorepo contains shared packages and libraries used across multiple projects in the workspace. It enables code reuse, consistent patterns, and simplified dependency management.
|
||||
|
||||
---
|
||||
|
||||
## Packages
|
||||
|
||||
### @workspace/shared-types
|
||||
**Status**: 🚧 Planned
|
||||
**Purpose**: Common TypeScript types and interfaces
|
||||
**Usage**: Used across dbis_core, the_order, Sankofa, and others
|
||||
|
||||
### @workspace/shared-utils
|
||||
**Status**: 🚧 Planned
|
||||
**Purpose**: Common utility functions
|
||||
**Usage**: Used in 20+ projects
|
||||
|
||||
### @workspace/shared-config
|
||||
**Status**: 🚧 Planned
|
||||
**Purpose**: Shared configuration schemas and validation
|
||||
**Usage**: All projects with configuration
|
||||
|
||||
### @workspace/shared-constants
|
||||
**Status**: 🚧 Planned
|
||||
**Purpose**: Shared constants and enums
|
||||
**Usage**: DBIS projects, DeFi projects
|
||||
|
||||
### @workspace/api-client
|
||||
**Status**: 🚧 Planned
|
||||
**Purpose**: Common API client utilities
|
||||
**Usage**: Frontend projects, API consumers
|
||||
|
||||
### @workspace/validation
|
||||
**Status**: 🚧 Planned
|
||||
**Purpose**: Zod schemas and validators
|
||||
**Usage**: Multiple backend services
|
||||
|
||||
### @workspace/blockchain
|
||||
**Status**: 🚧 Planned
|
||||
**Purpose**: Blockchain utilities and helpers
|
||||
**Usage**: Blockchain projects
|
||||
|
||||
---
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
- Node.js >= 18.0.0
|
||||
- pnpm >= 8.0.0
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
|
||||
# Build all packages
|
||||
pnpm build
|
||||
|
||||
# Run tests
|
||||
pnpm test
|
||||
|
||||
# Lint all packages
|
||||
pnpm lint
|
||||
```
|
||||
|
||||
### Using Packages
|
||||
|
||||
In your project's `package.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"dependencies": {
|
||||
"@workspace/shared-types": "workspace:*",
|
||||
"@workspace/shared-utils": "workspace:*"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Development
|
||||
|
||||
### Creating a New Package
|
||||
|
||||
1. Create package directory: `packages/package-name/`
|
||||
2. Add `package.json` with proper name (`@workspace/package-name`)
|
||||
3. Implement package code
|
||||
4. Add to workspace configuration
|
||||
5. Build and test
|
||||
|
||||
### Publishing
|
||||
|
||||
Packages are published to private npm registry (Verdaccio or GitHub Packages).
|
||||
|
||||
```bash
|
||||
# Build package
|
||||
cd packages/package-name
|
||||
pnpm build
|
||||
|
||||
# Publish
|
||||
pnpm publish --registry=<registry-url>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Structure
|
||||
|
||||
```
|
||||
workspace-shared/
|
||||
├── packages/ # Shared packages
|
||||
│ ├── shared-types/
|
||||
│ ├── shared-utils/
|
||||
│ ├── shared-config/
|
||||
│ └── ...
|
||||
├── apps/ # Shared applications (if any)
|
||||
├── tools/ # Development tools
|
||||
├── package.json # Root package.json
|
||||
├── pnpm-workspace.yaml
|
||||
└── turbo.json # Turborepo configuration
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Related Documents
|
||||
|
||||
- [Dependency Consolidation Plan](../docs/DEPENDENCY_CONSOLIDATION_PLAN.md)
|
||||
- [Integration & Streamlining Plan](../INTEGRATION_STREAMLINING_PLAN.md)
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-01-27
|
||||
|
||||
Reference in New Issue
Block a user