mycena-backend-kit
v1.0.8
Published
A backend utility kit for Mycena projects
Downloads
12
Readme
Mycena Backend Kit
A collection of utility functions, guards, and decorators for NestJS backend applications.
Installation
npm install mycena-backend-kitFeatures
Permission System
Permission Guard
A NestJS guard that handles permission-based access control for both HTTP and WebSocket routes.
- Validates
x-userandx-permissionheaders - Supports special
internal-systemuser ID for unrestricted access - Works with both HTTP and WebSocket contexts
Usage:
import { PermissionGuard } from 'mycena-backend-kit';
@UseGuards(PermissionGuard)
@Controller('example')
export class ExampleController {
// Your controller methods
}Decorators
- Permission Decorator
import { Permission } from 'mycena-backend-kit';
@Permission('read:users', 'write:users')
@Get('users')
async getUsers() {
// Your method implementation
}- Public Decorator (Skip permission check)
import { Public } from 'mycena-backend-kit';
@Public()
@Get('public-endpoint')
async publicMethod() {
// Your method implementation
}Utility Functions
mapById
Converts an array of objects with ID properties into an object map.
import { mapById } from 'mycena-backend-kit';
const users = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
];
const userMap = mapById(users);
// Result: { '1': { id: 1, name: 'John' }, '2': { id: 2, name: 'Jane' } }mapToArray
Converts an object map back to an array.
import { mapToArray } from 'mycena-backend-kit';
const userMap = {
'1': { id: 1, name: 'John' },
'2': { id: 2, name: 'Jane' },
};
const users = mapToArray(userMap);
// Result: [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }]Interfaces
GetPage
Interface for pagination parameters.
interface GetPage<T> {
skip: number;
size: number;
}Requirements
- Node.js
- NestJS ^11.1.0
License
ISC
