UNPKG

@nestjs/platform-fastify

Version:

Nest - modern, fast, powerful node.js web framework (@platform-fastify)

76 lines (75 loc) • 2.57 kB
var MultipartModule_1; import { __decorate } from "tslib"; import { Module } from '@nestjs/common'; import { randomStringGenerator } from '@nestjs/common/internal'; import { MULTIPART_MODULE_OPTIONS } from './files.constants.js'; import { MULTIPART_MODULE_ID } from './multipart.constants.js'; /** * Provides default options for every upload interceptor in the importing * module. The Fastify counterpart of platform-express's `MulterModule`. * * It does not configure the `@fastify/multipart` plugin itself (which the * FastifyAdapter registers); pass plugin-wide options through the * adapter's `multipart` option. * * @publicApi */ let MultipartModule = MultipartModule_1 = class MultipartModule { static register(options = {}) { return { module: MultipartModule_1, providers: [ { provide: MULTIPART_MODULE_OPTIONS, useFactory: () => options }, { provide: MULTIPART_MODULE_ID, useValue: randomStringGenerator(), }, ], exports: [MULTIPART_MODULE_OPTIONS], }; } static registerAsync(options) { return { module: MultipartModule_1, imports: options.imports, providers: [ ...this.createAsyncProviders(options), { provide: MULTIPART_MODULE_ID, useValue: randomStringGenerator(), }, ], exports: [MULTIPART_MODULE_OPTIONS], }; } static createAsyncProviders(options) { if (options.useExisting || options.useFactory) { return [this.createAsyncOptionsProvider(options)]; } return [ this.createAsyncOptionsProvider(options), { provide: options.useClass, useClass: options.useClass, }, ]; } static createAsyncOptionsProvider(options) { if (options.useFactory) { return { provide: MULTIPART_MODULE_OPTIONS, useFactory: options.useFactory, inject: options.inject || [], }; } return { provide: MULTIPART_MODULE_OPTIONS, useFactory: async (optionsFactory) => optionsFactory.createMultipartOptions(), inject: [options.useExisting || options.useClass], }; } }; MultipartModule = MultipartModule_1 = __decorate([ Module({}) ], MultipartModule); export { MultipartModule };