1
1
import os from 'os' ;
2
2
import path from 'path' ;
3
+ import LoggerService from '@cordisjs/plugin-logger' ;
4
+ import { TimerService } from '@cordisjs/plugin-timer' ;
3
5
import { Context } from 'cordis' ;
6
+ import DBService from './service/db' ;
4
7
import { fs , Logger } from './utils' ;
5
8
6
- Logger . levels . base = 3 ;
7
-
8
9
const logger = new Logger ( 'tools' ) ;
9
10
10
11
process . on ( 'unhandledRejection' , ( e ) => { logger . error ( e ) ; } ) ;
@@ -22,36 +23,54 @@ try {
22
23
}
23
24
24
25
async function applyServer ( ctx : Context ) {
25
- ctx . plugin ( require ( './service/server' ) ) ;
26
- ctx . plugin ( require ( './service/db' ) ) ;
27
- ctx . plugin ( require ( './service/fetcher' ) ) ;
28
- ctx . inject ( [ 'server' , 'dbservice' , 'fetcher' ] , ( c ) => {
29
- c . plugin ( require ( './handler/misc' ) ) ;
30
- c . plugin ( require ( './handler/printer' ) ) ;
31
- c . plugin ( require ( './handler/monitor' ) ) ;
32
- c . plugin ( require ( './handler/client' ) ) ;
33
- c . plugin ( require ( './handler/balloon' ) ) ;
34
- c . plugin ( require ( './handler/commands' ) ) ;
26
+ await Promise . all ( [
27
+ ctx . plugin ( require ( './service/server' ) ) ,
28
+ ctx . plugin ( require ( './service/fetcher' ) ) ,
29
+ ] ) ;
30
+ await ctx . inject ( [ 'server' , 'dbservice' , 'fetcher' ] , async ( c ) => {
31
+ await Promise . all ( [
32
+ c . plugin ( require ( './handler/misc' ) ) ,
33
+ c . plugin ( require ( './handler/printer' ) ) ,
34
+ c . plugin ( require ( './handler/monitor' ) , config . monitor ) ,
35
+ c . plugin ( require ( './handler/client' ) ) ,
36
+ c . plugin ( require ( './handler/balloon' ) ) ,
37
+ c . plugin ( require ( './handler/commands' ) ) ,
38
+ ] ) ;
35
39
c . server . listen ( ) ;
36
40
} ) ;
37
41
}
38
42
39
- async function applyClient ( ctx : Context ) {
43
+ function applyClient ( ctx : Context ) {
40
44
if ( config . printers ?. length ) ctx . plugin ( require ( './client/printer' ) ) ;
41
45
if ( config . balloon ) ctx . plugin ( require ( './client/balloon' ) ) ;
42
46
}
43
47
44
48
async function apply ( ctx ) {
45
49
if ( process . argv . includes ( '--client' ) ) {
46
- await applyClient ( ctx ) ;
50
+ applyClient ( ctx ) ;
47
51
} else {
48
- await applyServer ( ctx ) ;
52
+ ctx . plugin ( DBService ) ;
53
+ ctx . inject ( [ 'dbservice' ] , ( c ) => {
54
+ applyServer ( c ) ;
55
+ } ) ;
49
56
}
50
- await ctx . lifecycle . flush ( ) ;
51
- await ctx . parallel ( 'app/listen' ) ;
52
57
logger . success ( 'Tools started' ) ;
53
58
process . send ?.( 'ready' ) ;
54
59
await ctx . parallel ( 'app/ready' ) ;
55
60
}
56
61
57
- if ( config ) apply ( app ) ;
62
+ app . plugin ( TimerService ) ;
63
+ app . plugin ( LoggerService , {
64
+ console : {
65
+ showDiff : false ,
66
+ showTime : 'dd hh:mm:ss' ,
67
+ label : {
68
+ align : 'right' ,
69
+ width : 9 ,
70
+ margin : 1 ,
71
+ } ,
72
+ levels : { default : process . env . DEV ? 3 : 2 } ,
73
+ } ,
74
+ } ) ;
75
+
76
+ if ( config ) app . inject ( [ 'logger' , 'timer' ] , ( ctx ) => apply ( ctx ) ) ;
0 commit comments