syntaxility-decorators
v1.0.9
Published
Universal TryCatch and Prisma-safe decorators with full JavaScript/TypeScript support for Express, Node.js, React Native, and frameworks.
Maintainers
Readme
Syntaxility Decorators
Production-ready decorators for JavaScript & TypeScript that work across all frameworks:
- Express
- NestJS
- Node.js
- React
- React Native
- Next.js
- Prisma
- Custom Node backends
Features
- Catches all errors automatically
- Handles Prisma/Database errors
- Handles JWT authentication errors
- Handles environment variable errors
- Prevents duplicate responses
- Provides detailed logging
@TryCatch
Automatic:
- Error capturing
- Prisma error mapping
- JWT error responses
- Environment variable validation
- Response safety
- Prisma disconnect handling
prismaSafe()
Wrap individual Prisma queries safely.
Installation
npm install syntaxility-decoratorsQuick Start
Before (Traditional approach)
exports.login = async (req, res) => {
try {
const { email, password } = req.body;
const user = await prisma.user.findUnique({
where: { email }
});
} catch (error) {
return res.status(500).json({ error: "Server error" });
} finally {
await prisma.$disconnect();
}
};After (Using decorators)
- Import
TryCatchfromsyntaxility-decoratorspackage to handle errors - Wrap Prisma queries using
prismaSafedecorator to handle database errors
import { SyntaxilitYResponseManager } from "syntaxility-response-manager"; // compatible for both Javascript and TypeScript
import { TryCatch, prismaSafe } from "syntaxility-decorators"; // compatible for both Javascript and TypeScript
import { prisma } from "./prisma";
TryCatch // from syntaxility-decorators
exports.login = async (req, res) => {
const { email, password } = req.body;
// Prisma query safely wrapped using prismaSafe from syntaxility-decorators
// prismaSafe(): Prisma error handling
const user = await prismaSafe(res, () => prisma.user.findUnique({ where: { email }, include: { role: true } }));
return SyntaxilitYResponseManager.HTTP_200_OK(
res,
user,
"Logged in successfully"
);
};Please wait for more features
Upcoming features
- Cache results
- CustomDecorator for custom logic
- Log entry/exit
- RateLimit for throttling
- TryCatch for error handling (DONE)
- Wrap for Prisma queries
- PrismaSafe for Prisma error handling (DONE)
