nestjs-express-cassandra
Version:
Express-cassandra module for Nest framework
41 lines (36 loc) • 1.15 kB
text/typescript
import { DynamicModule, Module, Type } from '@nestjs/common';
import { DEFAULT_CONNECTION_NAME } from './constants';
import { ExpressCassandraCoreModule } from './express-cassandra-core.module';
import {
ExpressCassandraModuleAsyncOptions,
ExpressCassandraModuleOptions,
} from './interfaces/module-options.interface';
import createFeatureProviders from './utils/providers';
export class ExpressCassandraModule {
static forRoot(options: ExpressCassandraModuleOptions): DynamicModule {
return {
module: ExpressCassandraModule,
imports: [ExpressCassandraCoreModule.forRoot(options)],
};
}
static forRootAsync(
options: ExpressCassandraModuleAsyncOptions,
): DynamicModule {
return {
module: ExpressCassandraModule,
imports: [ExpressCassandraCoreModule.forRootAsync(options)],
};
}
static forFeature(
entities: Type[] = [],
connection = DEFAULT_CONNECTION_NAME,
): DynamicModule {
const providers = createFeatureProviders(entities, connection);
return {
module: ExpressCassandraModule,
providers: providers,
exports: providers,
};
}
}