@ss-micro/common
v0.1.0
Published
Common utilities and helpers for SS Microservice architecture
Maintainers
Readme
@ss-micro/common
Common utilities, decorators, DTOs, and helpers for SS Microservice architecture.
Installation
npm install @ss-micro/common --saveFeatures
This package provides:
- Decorators: Authentication and authorization decorators (Public, Roles, CurrentUser)
- DTOs: Common data transfer objects for pagination, API responses
- Utilities: String manipulation, async retries, random string generation
Usage Examples
Decorators
import { Controller, Get } from '@nestjs/common';
import { Public, Roles, CurrentUser } from '@ss-micro/common';
@Controller('users')
export class UsersController {
@Public()
@Get('/public-endpoint')
publicEndpoint() {
return { message: 'This endpoint is public' };
}
@Roles('admin', 'superuser')
@Get('/admin-only')
adminEndpoint() {
return { message: 'This endpoint is for admins only' };
}
@Get('/profile')
userProfile(@CurrentUser() user) {
return { user };
}
}DTOs
import { Controller, Get, Query } from '@nestjs/common';
import { PaginationDto, PaginatedResponseDto, ApiResponseDto } from '@ss-micro/common';
@Controller('products')
export class ProductsController {
@Get()
async getProducts(@Query() paginationDto: PaginationDto) {
const products = await this.productService.findAll(
paginationDto.skip,
paginationDto.limit
);
const total = await this.productService.count();
const response = new PaginatedResponseDto(
products,
total,
paginationDto.page,
paginationDto.limit
);
return ApiResponseDto.success(response, 'Products retrieved successfully');
}
}Utilities
import { Injectable } from '@nestjs/common';
import { retryAsync, toCamelCase, generateRandomString } from '@ss-micro/common';
@Injectable()
export class SomeService {
async doSomethingWithRetry() {
const result = await retryAsync(
() => this.unreliableService.someOperation(),
3, // 3 retries
1000 // 1 second delay between retries
);
return result;
}
transformData(input: string) {
return toCamelCase(input);
}
generateToken() {
return generateRandomString(32);
}
}License
MIT
