Skip to content

Commit efe07a0

Browse files
committed
feat(File): add incomplete file module
1 parent e36ccef commit efe07a0

File tree

7 files changed

+46
-0
lines changed

7 files changed

+46
-0
lines changed

src/file/file.module.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { DynamicModule, Module } from '@nestjs/common';
2+
import { FileOptions } from './file.type';
3+
import { multerRegister } from './multer/multer.register';
4+
5+
@Module({})
6+
export class FileModule {
7+
register(options: FileOptions): DynamicModule {
8+
const multerRegisterModule: Partial<DynamicModule> = options.multer
9+
? multerRegister(options.multer)
10+
: {};
11+
12+
return {
13+
module: FileModule,
14+
imports: [
15+
...multerRegisterModule.imports
16+
]
17+
}
18+
}
19+
}

src/file/file.type.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { MulterOptions } from './multer';
2+
3+
export interface FileOptions {
4+
multer?: MulterOptions;
5+
}

src/file/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export * from './multer';
2+
export * from './file.module';
3+
export * from './file.type';

src/file/multer/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './multer.type';

src/file/multer/multer.decorator.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

src/file/multer/multer.register.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { MulterOptions } from './multer.type';
2+
import { DynamicModule } from '@nestjs/common';
3+
import { MulterModule } from '@nestjs/platform-express';
4+
5+
export const multerRegister = (options: MulterOptions): Partial<DynamicModule> => {
6+
return {
7+
imports: [
8+
MulterModule.register({
9+
dest: options.destination
10+
})
11+
]
12+
}
13+
}

src/file/multer/multer.type.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export interface MulterOptions {
2+
destination: string;
3+
onUploading?: <TRequest>(request: TRequest, mimeType: string) => Promise<void>;
4+
}

0 commit comments

Comments
 (0)