nestjs-appwrite
Version:
Easier Appwrite integration for your NestJS application.
32 lines (27 loc) • 997 B
text/typescript
import { DynamicModule, flatten, Module } from '@nestjs/common';
import { AsyncModelFactory } from './interface/async-model-factory.interface';
import { createAppwriteAsyncProviders } from './appwrite.providers';
import { AppwriteModuleOptions } from './interface/appwrite-module-options.interface';
import { AppwriteCoreModule } from './appwrite-core.module';
({})
export class AppwriteModule {
static forRoot(options: AppwriteModuleOptions): DynamicModule {
return {
module: AppwriteModule,
imports: [AppwriteCoreModule.forRoot(options)],
};
}
static forFeatureAsync(
factories: AsyncModelFactory[] = [],
): DynamicModule {
const providers = createAppwriteAsyncProviders(factories);
const imports = factories.map((factory) => factory.imports || []);
const uniqImports = new Set(flatten(imports));
return {
module: AppwriteModule,
imports: [...uniqImports],
providers: providers,
exports: providers,
};
}
}