@@ -3,7 +3,6 @@ import { ViewRouter } from "../http/ViewRouter";
3
3
import type { WebSocketHandler } from "bun" ;
4
4
import { ComponentType } from "react" ;
5
5
import { Kernel } from "../kernel" ;
6
- import { I18nServiceContainer } from "../http/I18nServiceContainer" ;
7
6
import { KernelContext } from "../kernel/KernelContext" ;
8
7
9
8
interface AppParams {
@@ -20,46 +19,40 @@ export class App {
20
19
private viewRouter : new ( ) => ViewRouter ;
21
20
private Root : ComponentType ;
22
21
private kernel : Kernel ;
23
- private i18nServiceContainer : I18nServiceContainer ;
24
22
25
23
constructor ( params : AppParams ) {
26
24
this . apiRouter = params . apiRouter ;
27
25
this . viewRouter = params . viewRouter ;
28
26
this . Root = params . root ;
29
27
this . kernel = new params . kernel ( ) ;
30
28
31
- this . prepare ( ) ;
32
-
33
- this . i18nServiceContainer = this . kernel . getServices ( ) . i18nServiceContainer ;
34
- this . i18nServiceContainer . boot ( ) ;
35
- }
36
-
37
- private prepare ( ) {
38
29
const kernelServices = this . kernel . getServices ( ) ;
39
30
40
31
const authBasePath =
41
32
kernelServices . authenticationServiceContainer . provider . basePath ;
42
33
43
- let viewRouters = {
34
+ const viewRouters = {
44
35
"/" : this . viewRouter ,
45
36
[ authBasePath ] :
46
37
kernelServices . authenticationServiceContainer . provider . routers . view ,
47
38
} ;
48
- let apiRouters = {
39
+
40
+ const apiRouters = {
49
41
"/" : this . apiRouter ,
50
42
[ authBasePath ] :
51
43
kernelServices . authenticationServiceContainer . provider . routers . api ,
52
44
"/__gemi__/services/i18n" :
53
45
kernelServices . i18nServiceContainer . routers . api ,
54
46
} ;
55
47
56
- this . kernel
57
- . getServices ( )
58
- . apiRouterServiceContainer . service . boot ( apiRouters ) ;
48
+ kernelServices . apiRouterServiceContainer . service . boot ( apiRouters ) ;
49
+
50
+ kernelServices . viewRouterServiceContainer . service . boot (
51
+ viewRouters ,
52
+ this . Root ,
53
+ ) ;
59
54
60
- this . kernel
61
- . getServices ( )
62
- . viewRouterServiceContainer . service . boot ( viewRouters , this . Root ) ;
55
+ kernelServices . i18nServiceContainer . boot ( ) ;
63
56
}
64
57
65
58
public getComponentTree ( ) {
@@ -72,12 +65,10 @@ export class App {
72
65
. flatComponentTree ;
73
66
}
74
67
75
- async fetch ( req : Request ) : Promise < Response > {
68
+ public async fetch ( req : Request ) : Promise < Response > {
76
69
const url = new URL ( req . url ) ;
77
70
78
- const kernelRun = this . kernel . run . bind ( this . kernel ) ;
79
-
80
- return kernelRun ( async ( ) => {
71
+ return this . kernel . run . call ( this . kernel , async ( ) => {
81
72
if ( url . pathname . startsWith ( "/api" ) ) {
82
73
return await this . kernel . services . apiRouterServiceContainer . handleApiRequest (
83
74
req ,
0 commit comments