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.1768824300.txt.gz · Last modified: by pradnya