@yjoy/platform-types
v1.0.14
Published
Shared TypeScript types for my Node.js projects
Readme
@yjoy/platform-types
Shared, reusable TypeScript type definitions for all backend and frontend applications in the YJoy platform ecosystem.
This package ensures consistent domain models across services, improves maintainability, and removes duplicate type definitions across projects.
📚 Table of Contents
- Installation
- Usage
- Available Types
- Examples
- Folder Structure
- Versioning & Releases
- Contributing
- Changelog
- License
🚀 Installation
Using npm:
npm install @yjoy/platform-types
Using yarn:
yarn add @yjoy/platform-types
🧩 Usage
Import any type from the package:
import {
Image,
FileType,
ActiveStatus,
AccountStatus,
ICommonFields
} from "@yjoy/platform-types";
Example:
import { Image } from "@yjoy/platform-types";
const banner: Image = {
name: "homepage-banner",
url: "https://example.com/banner.jpg",
alt: "Homepage banner"
};
📦 Available Types
Below are some core types included in the package:
Common
1. Image
2. FileType
3. ActiveStatus
4. AccountStatus
5. ICommonFields
Users & Auth
1. IUser
2. CreateUserBody
3. LoginBody
4. RoleNames
5. roleDefinitions
Pagination
1. PaginationQuery
2. PaginationMeta
SEO & Web
1. SEOHead
2. Testimonial
3. Category
4. Message
5. Feedback
Database Helpers
1. MongoId
2. WithTimestamps
Full definitions are available in src/ and dist/.
🧪 Examples
Define a User Schema with Types
import { IUser, ActiveStatus } from "@yjoy/platform-types";
const user: IUser = {
name: "Joy",
email: "[email protected]",
status: ActiveStatus.ACTIVE,
};
Pagination Response Example
import { PaginationMeta } from "@yjoy/platform-types";
const meta: PaginationMeta = {
page: 1,
limit: 10,
total: 55,
totalPages: 6,
};
📁 Folder Structure
platform-types/
│
├── src/
│ ├── common.ts
│ ├── user.ts
│ ├── roles.ts
│ ├── pagination.ts
│ ├── seoHeads.ts
│ └── index.ts
│
├── dist/ (auto-generated)
│
├── .changeset/
├── .github/workflows/
└── package.json
Only dist/ is published to npm.
🔄 Versioning & Releases
This package uses:
1. Changesets for version control
2. GitHub Actions for automatic publishing
3. Semantic versioning (patch, minor, major)
Release workflow:
npx changeset
git add .
git commit -m "feat: update types"
git push
CI will automatically:
1. Bump version
2. Generate changelog
3. Create Version Packages commit
4. Publish to npm
5. Tag release on GitHub
🤝 Contributing
1. Clone the repo
2. Install dependencies:
npm install
3. Add or update types inside /src
4. Generate a changeset:
npx changeset
5. Commit & push:
git add .
git commit -m "feat: add new booking types"
git push
📜 Changelog
Automatically generated via Changesets.
See: https://github.com/YJoySingha/platform-types/releases
📄 License
ISC
Copyright ©
Y Joy Chandra Singha
---
# 🎯 **Step 2 — Save the README**
In VS Code:
- Replace entire README.md with the above content
- Save
---
# 🎯 **Step 3 — Commit & Push**
```bash
git add README.md
git commit -m "docs: add professional README with badges and examples"
git push
