@platohq/nestjs-imagekit
v0.0.3
Published
The NestJS module based on the official Imagekit package
Downloads
55
Readme
@platohq/nestjs-imagekit
The NestJS module based on the official Imagekit package
How to install
npm install @platohq/nestjs-imagekit
or
yarn add @platohq/nestjs-imagekit
How to use
Register the module
import { ImagekitModule } from '@platohq/nestjs-imagekit';
@Module({
imports: [
ImagekitModule.register({
privateKey: 'YOUR_PRIVATE_KEY',
publicKey: 'YOUR_PUBLIC_KEY',
urlEndpoint: 'YOUR_URL_ENDPOINT',
}),
],
})
export class AppModule {}
Inject the service
import { ImagekitService } from '@platohq/nestjs-imagekit';
@Injectable()
export class AppService {
constructor(private readonly imagekitService: ImagekitService) {}
track() {
this.imagekitService.track('MY_EVENT');
}
}
Async options
Quite often you might want to asynchronously pass your module options instead of passing them beforehand. In such case, use registerAsync()
method, that provides a couple of various ways to deal with async data.
Use factory
ImagekitModule.registerAsync({
useFactory: () => ({
privateKey: 'YOUR_PRIVATE_KEY',
publicKey: 'YOUR_PUBLIC_KEY',
urlEndpoint: 'YOUR_URL_ENDPOINT',
}),
});
Use class
ImagekitModule.registerAsync({
useClass: ImagekitConfigService,
});
Above construction will instantiate ImagekitConfigService
inside ImagekitModule
and will leverage it to create options object.
class ImagekitConfigService implements ImagekitOptionsFactory {
createImagekitOptions(): ImagekitModuleOptions {
return {
privateKey: 'YOUR_PRIVATE_KEY',
publicKey: 'YOUR_PUBLIC_KEY',
urlEndpoint: 'YOUR_URL_ENDPOINT',
};
}
}
Use existing
ImagekitModule.registerAsync({
imports: [ConfigModule],
useExisting: ConfigService,
}),