@kanadi/core
Version:
Multi-Layer CAPTCHA Framework with customizable validators and challenge bundles
47 lines (39 loc) • 1.1 kB
text/typescript
import { type DynamicModule, Global, Module } from "@nestjs/common";
import { KanadiClient } from "./client";
import { KanadiGatewayController } from "./gateway.controller";
import { KanadiGatewayService } from "./gateway.service";
import type { KanadiGatewayOptions } from "./types";
()
({})
export class KanadiGatewayModule {
static forRoot(
options: KanadiGatewayOptions,
gatewayHandler?: any,
): DynamicModule {
const client = new KanadiClient(options.namespace);
const validatorInstances = options.validators.map(
(ValidatorClass) => new ValidatorClass(),
);
client.registerValidators(validatorInstances);
if (options.config) {
client.registerDatabaseConfigs(options.config);
}
const providers = [
{
provide: KanadiClient,
useValue: client,
},
KanadiGatewayService,
];
if (gatewayHandler) {
providers.push(gatewayHandler);
}
return {
module: KanadiGatewayModule,
controllers: [KanadiGatewayController],
providers,
exports: [KanadiClient, KanadiGatewayService],
imports: options.modules || [],
};
}
}