-
Notifications
You must be signed in to change notification settings - Fork 0
required param
awekrx edited this page May 29, 2026
·
1 revision
import { requiredParam } from '@dev-suite/decorators/required-param'
parameter
Enforce that argument is present.
-
if (!arg) throwblocks - Ad-hoc required checks across endpoints
class UserController {
get(id?: string) {
if (!id) throw new Error('id is required');
return this.repo.get(id);
}
}import { requiredParam } from '@dev-suite/decorators/required-param';
class UserController {
get(@requiredParam() id: string) {
return this.repo.get(id);
}
}- Centralizes cross-cutting behavior.
- Method/class/property code stays focused on domain logic.
class OrderController {
cancel(orderId?: string) {
if (!orderId) throw new Error('orderId required');
return this.orders.cancel(orderId);
}
}import { requiredParam } from '@dev-suite/decorators/required-param';
class OrderController {
cancel(@requiredParam({ message: 'orderId required' }) orderId: string) {
return this.orders.cancel(orderId);
}
}- Second scenario reuses same policy without duplication.
- Behavior is more consistent and easier to audit.