-
Notifications
You must be signed in to change notification settings - Fork 568
/
configuration.ts
57 lines (52 loc) 路 1.42 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
49
50
51
52
53
54
55
56
57
import {
Config,
Configuration,
Inject,
Logger,
MidwayApplicationManager,
} from '@midwayjs/core';
import * as DefaultConfig from './config/config.default';
import { SessionMiddleware } from './middleware/session';
@Configuration({
namespace: 'session',
importConfigs: [
{
default: DefaultConfig,
},
],
})
export class SessionConfiguration {
@Inject()
applicationManager: MidwayApplicationManager;
@Logger('coreLogger')
logger;
@Config('session')
sessionConfig;
async onReady() {
if (this.sessionConfig.enable) {
this.applicationManager.getApplications(['koa', 'faas']).forEach(app => {
if ((app as any).on) {
// listen on session's events
(app as any).on('session:missed', ({ ctx, key }) => {
this.logger.warn('[session][missed] key(%s)', key);
});
(app as any).on('session:expired', ({ ctx, key, value }) => {
this.logger.warn(
'[session][expired] key(%s) value(%j)',
key,
this.sessionConfig.logValue ? value : ''
);
});
(app as any).on('session:invalid', ({ ctx, key, value }) => {
this.logger.warn(
'[session][invalid] key(%s) value(%j)',
key,
this.sessionConfig.logValue ? value : ''
);
});
}
app.useMiddleware(SessionMiddleware);
});
}
}
}