User Tools

Site Tools


cotrav_monorepo_package_creation_service_build_guide

This is an old revision of the document!


Cotrav Monorepo – Package Creation & Service Build Guide

This document describes how to create shared packages and build/run services in the Cotrav monorepo. It is Confluence-ready and can be pasted directly.

Repository Structure

cotrav-services/
│
├─ package.json (root – workspaces enabled)
│
├─ packages/ (shared libraries)
│ ├─ logger/
│ ├─ errors/
│ ├─ middlewares/
│ └─ tsconfig.json (base TS config for packages)
│
├─ workspace/ (runtime services)
│ ├─ auth-service/
│ ├─ booking-service/
│ └─ payment-service/
│
└─ node_modules/

Prerequisites

ToolVersion
Node.js>= 18.x
npm>= 9.x
TypeScript>= 5.x
VS CodeRecommended

Root Workspace Setup

Root package.json

The root enables npm workspaces so shared packages can be consumed without publishing.

cmd

npm install

Build Package

package/logger

cmd

npm run build --workspace=packages/logger

package/errors

cmd

npm run build --workspace=packages/errors

Creating Error & Middleware Packages

Repeat the same steps for:

  • @cotrav/errors
  • @cotrav/middlewares

Only business logic differs, structure remains identical.

Creating a Service

Example: auth-service

Folder Creation

cd workspace
mkdir auth-service
cd auth-service
npm init -y

Service package.json

{
"name": "auth-service",
"version": "1.0.0",
"private": true,
"type": "commonjs",
"scripts": {
"dev": "ts-node src/app.ts",
"build": "tsc",
"start": "node dist/app.js"
},
"dependencies": {
"express": "^5.0.0",
"dotenv": "^17.0.0",
"@cotrav/logger": "*",
"@cotrav/errors": "*",
"@cotrav/middlewares": "*"
 }
}
cotrav_monorepo_package_creation_service_build_guide.1768824352.txt.gz · Last modified: by pradnya