-
Notifications
You must be signed in to change notification settings - Fork 568
/
configuration.ts
48 lines (45 loc) 路 1.04 KB
/
configuration.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import {
Config,
Configuration,
Inject,
MidwayApplicationManager,
} from '@midwayjs/core';
import * as DefaultConfig from './config/config.default';
import { UploadMiddleware } from './middleware';
import {
autoRemoveUploadTmpFile,
ensureDir,
stopAutoRemoveUploadTmpFile,
} from './utils';
import { UploadOptions } from './interface';
@Configuration({
namespace: 'upload',
importConfigs: [
{
default: DefaultConfig,
},
],
})
export class UploadConfiguration {
@Inject()
applicationManager: MidwayApplicationManager;
@Config('upload')
uploadConfig: UploadOptions;
async onReady() {
const { tmpdir, cleanTimeout } = this.uploadConfig;
if (tmpdir) {
await ensureDir(tmpdir);
if (cleanTimeout) {
autoRemoveUploadTmpFile(tmpdir, cleanTimeout);
}
}
this.applicationManager
.getApplications(['koa', 'faas', 'express', 'egg'])
.forEach(app => {
app.useMiddleware(UploadMiddleware);
});
}
async onStop() {
await stopAutoRemoveUploadTmpFile();
}
}