Honoring the contract's auth flag
The bound endpoint is available to guards via getContractEndpoint():
import { getContractEndpoint } from "@tahanabavi/typewire-nestjs";
@Injectable()
export class ContractAuthGuard implements CanActivate {
canActivate(context: ExecutionContext): boolean {
const endpoint = getContractEndpoint(context);
if (!endpoint?.auth) return true; // public per contract
return this.validateBearerToken(context); // your auth logic
}
}
// app.module.ts
providers: [{ provide: APP_GUARD, useClass: ContractAuthGuard }]