Skip to content

Commit 7cf6b02

Browse files
committed
app cleanup
1 parent d0143d2 commit 7cf6b02

11 files changed

+39
-55
lines changed

packages/gemi/app/App.ts

+12-21
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { ViewRouter } from "../http/ViewRouter";
33
import type { WebSocketHandler } from "bun";
44
import { ComponentType } from "react";
55
import { Kernel } from "../kernel";
6-
import { I18nServiceContainer } from "../http/I18nServiceContainer";
76
import { KernelContext } from "../kernel/KernelContext";
87

98
interface AppParams {
@@ -20,46 +19,40 @@ export class App {
2019
private viewRouter: new () => ViewRouter;
2120
private Root: ComponentType;
2221
private kernel: Kernel;
23-
private i18nServiceContainer: I18nServiceContainer;
2422

2523
constructor(params: AppParams) {
2624
this.apiRouter = params.apiRouter;
2725
this.viewRouter = params.viewRouter;
2826
this.Root = params.root;
2927
this.kernel = new params.kernel();
3028

31-
this.prepare();
32-
33-
this.i18nServiceContainer = this.kernel.getServices().i18nServiceContainer;
34-
this.i18nServiceContainer.boot();
35-
}
36-
37-
private prepare() {
3829
const kernelServices = this.kernel.getServices();
3930

4031
const authBasePath =
4132
kernelServices.authenticationServiceContainer.provider.basePath;
4233

43-
let viewRouters = {
34+
const viewRouters = {
4435
"/": this.viewRouter,
4536
[authBasePath]:
4637
kernelServices.authenticationServiceContainer.provider.routers.view,
4738
};
48-
let apiRouters = {
39+
40+
const apiRouters = {
4941
"/": this.apiRouter,
5042
[authBasePath]:
5143
kernelServices.authenticationServiceContainer.provider.routers.api,
5244
"/__gemi__/services/i18n":
5345
kernelServices.i18nServiceContainer.routers.api,
5446
};
5547

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+
);
5954

60-
this.kernel
61-
.getServices()
62-
.viewRouterServiceContainer.service.boot(viewRouters, this.Root);
55+
kernelServices.i18nServiceContainer.boot();
6356
}
6457

6558
public getComponentTree() {
@@ -72,12 +65,10 @@ export class App {
7265
.flatComponentTree;
7366
}
7467

75-
async fetch(req: Request): Promise<Response> {
68+
public async fetch(req: Request): Promise<Response> {
7669
const url = new URL(req.url);
7770

78-
const kernelRun = this.kernel.run.bind(this.kernel);
79-
80-
return kernelRun(async () => {
71+
return this.kernel.run.call(this.kernel, async () => {
8172
if (url.pathname.startsWith("/api")) {
8273
return await this.kernel.services.apiRouterServiceContainer.handleApiRequest(
8374
req,

packages/gemi/http/I18nServiceContainer.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { I18nServiceProvider } from "./I18nServiceProvider";
55

66
class Router extends ApiRouter {
77
routes = {
8-
"/translations": this.get(async (req = new HttpRequest()) => {
8+
"/translations": this.get(async () => {
9+
const req = new HttpRequest<any, any>();
910
const { scope, locale: forcedLocale } = req.search.toJSON() as {
1011
scope: string;
1112
locale: string;
@@ -50,8 +51,6 @@ export class I18nServiceContainer {
5051
};
5152

5253
boot() {
53-
// await this.service.init();
54-
5554
const tmpStore = new Map<string, Map<string, string>>();
5655

5756
for (const [scope, translations] of Object.entries(

packages/gemi/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gemi",
3-
"version": "0.4.92",
3+
"version": "0.4.93",
44
"devDependencies": {
55
"@babel/parser": "^7.25.4",
66
"@repo/eslint-config": "*",

packages/gemi/services/router/ViewRouterServiceContainer.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { HttpRequest } from "../../http";
22
import { Cookie } from "../../http/Cookie";
33
import { GEMI_REQUEST_BREAKER_ERROR } from "../../http/Error";
44
import { RequestContext } from "../../http/requestContext";
5-
import { RouterMiddleware } from "../../http/Router";
5+
import type { RouterMiddleware } from "../../http/Router";
66
import { KernelContext } from "../../kernel/KernelContext";
7-
import { ViewRouteExec } from "./createFlatViewRoutes";
7+
import type { ViewRouteExec } from "./createFlatViewRoutes";
88
import { ViewRouterServiceProvider } from "./ViewRouterServiceProvider";
99
// @ts-ignore
1010
import { renderToReadableStream } from "react-dom/server.browser";

packages/gemi/services/router/ViewRouterServiceProvider.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { flattenComponentTree } from "../../client/helpers/flattenComponentTree";
2-
import { ComponentTree } from "../../client/types";
3-
import { ViewRoutes } from "../../http/ViewRouter";
2+
import type { ComponentTree } from "../../client/types";
3+
import type { ViewRoutes } from "../../http/ViewRouter";
44
import { ServiceProvider } from "../ServiceProvider";
55
import { createComponentTree } from "./createComponentTree";
66
import {

packages/gemi/services/router/createComponentTree.test.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { describe, test, expect } from "vitest";
22
import { createComponentTree } from "./createComponentTree";
3-
import { ViewRouter } from "../http/ViewRouter";
4-
import { Controller } from "../http/Controller";
3+
import { ViewRouter } from "../../http/ViewRouter";
4+
import { Controller } from "../../http/Controller";
55

66
class TestController extends Controller {
77
test() {
@@ -19,7 +19,7 @@ class FlatRouter extends ViewRouter {
1919

2020
class NestedRouter extends ViewRouter {
2121
routes = {
22-
"/": this.view("Layout", [TestController, "test"], {
22+
"/": this.layout("Layout", [TestController, "test"], {
2323
"/": this.view("Home", [TestController, "test"]),
2424
"/about": this.view("About", [TestController, "test"]),
2525
"/pricing": this.view("Pricing", [TestController, "test"]),
@@ -29,7 +29,7 @@ class NestedRouter extends ViewRouter {
2929

3030
class ProductsRouter extends ViewRouter {
3131
routes = {
32-
"/": this.view("ProductsLayout", [TestController, "test"], {
32+
"/": this.layout("ProductsLayout", [TestController, "test"], {
3333
"/": this.view("Products"),
3434
"/:productId": this.view("Product"),
3535
"/:productId/providers": this.view("ProductProviders"),
@@ -39,13 +39,13 @@ class ProductsRouter extends ViewRouter {
3939

4040
class DeeplyNestedRouter extends ViewRouter {
4141
routes = {
42-
"/": this.view("Layout", [TestController, "test"], {
42+
"/": this.layout("Layout", [TestController, "test"], {
4343
"/": this.view("Home", [TestController, "test"]),
4444
"/about": this.view("About", [TestController, "test"]),
4545
"/pricing": this.view("Pricing", [TestController, "test"]),
4646
"/products": ProductsRouter,
47-
"/foo": this.view("Foo", [TestController, "test"], {
48-
"/bar": this.view("Bar", [TestController, "test"], {
47+
"/foo": this.layout("Foo", [TestController, "test"], {
48+
"/bar": this.layout("Bar", [TestController, "test"], {
4949
"/baz": this.view("Baz", [TestController, "test"]),
5050
"/cux": this.view("Cux", [TestController, "test"]),
5151
}),

packages/gemi/services/router/createComponentTree.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { ComponentTree } from "../client/types";
2-
import { ViewRoutes } from "../http/ViewRouter";
1+
import type { ComponentTree } from "../../client/types";
2+
import type { ViewRoutes } from "../../http/ViewRouter";
33

44
export function createComponentTree(routes: ViewRoutes): ComponentTree {
55
const componentTree: ComponentTree = [];

packages/gemi/services/router/createFlatViewRoutes.test.ts

+2-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { describe, test, expect } from "vitest";
22

33
import { createFlatViewRoutes } from "./createFlatViewRoutes";
4-
import { ViewRouter } from "../http/ViewRouter";
5-
import { Controller } from "../http/Controller";
4+
import { Controller } from "../../http/Controller";
5+
import { ViewRouter } from "../../http/ViewRouter";
66

77
class TestController extends Controller {
88
test() {
@@ -19,12 +19,6 @@ class FlatRouter extends ViewRouter {
1919
]),
2020
"/about": this.view("About", [TestController, "test"]),
2121
"/pricing": this.view("Pricing", [TestController, "test"]),
22-
"/foo": this.view("Foo", [TestController, "test"], {
23-
"/bar": this.view("Bar", [TestController, "test"], {
24-
"/baz": this.view("Baz", [TestController, "test"]),
25-
"/cux": this.view("Cux", [TestController, "test"]),
26-
}),
27-
}),
2822
"/app": this.layout("PrivateLayout", [TestController, "test"], {
2923
"/": this.view("Dashboard", [TestController, "test"]),
3024
"/settings": this.view("Settings", [TestController, "test"]),

packages/gemi/services/router/createFlatViewRoutes.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { HttpRequest } from "../../http";
2-
import { ViewRoutes } from "../../http/ViewRouter";
2+
import type { ViewRoutes } from "../../http/ViewRouter";
33

44
export type ViewRouteExec = (req: HttpRequest<any, any>) => any; // TODO: fix type
55

packages/gemi/services/router/createRouteManifest.test.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { describe, test, expect } from "vitest";
22
import { createRouteManifest } from "./createRouteManifest";
3-
import { ViewRouter } from "../http/ViewRouter";
4-
import { Controller } from "../http/Controller";
3+
import { ViewRouter } from "../../http/ViewRouter";
4+
import { Controller } from "../../http/Controller";
55

66
class TestController extends Controller {
77
test() {
@@ -19,7 +19,7 @@ class FlatRouter extends ViewRouter {
1919

2020
class NestedRouter extends ViewRouter {
2121
routes = {
22-
"/": this.view("Layout", [TestController, "test"], {
22+
"/": this.layout("Layout", [TestController, "test"], {
2323
"/": this.view("Home", [TestController, "test"]),
2424
"/about": this.view("About", [TestController, "test"]),
2525
"/pricing": this.view("Pricing", [TestController, "test"]),
@@ -29,7 +29,7 @@ class NestedRouter extends ViewRouter {
2929

3030
class ProductsRouter extends ViewRouter {
3131
routes = {
32-
"/": this.view("ProductsLayout", [TestController, "test"], {
32+
"/": this.layout("ProductsLayout", [TestController, "test"], {
3333
"/": this.view("Products"),
3434
"/:productId": this.view("Product"),
3535
"/:productId/providers": this.view("ProductProviders"),
@@ -39,13 +39,13 @@ class ProductsRouter extends ViewRouter {
3939

4040
class DeeplyNestedRouter extends ViewRouter {
4141
routes = {
42-
"/": this.view("Layout", [TestController, "test"], {
42+
"/": this.layout("Layout", [TestController, "test"], {
4343
"/": this.view("Home", [TestController, "test"]),
4444
"/about": this.view("About", [TestController, "test"]),
4545
"/pricing": this.view("Pricing", [TestController, "test"]),
4646
"/products": ProductsRouter,
47-
"/foo": this.view("Foo", [TestController, "test"], {
48-
"/bar": this.view("Bar", [TestController, "test"], {
47+
"/foo": this.layout("Foo", [TestController, "test"], {
48+
"/bar": this.layout("Bar", [TestController, "test"], {
4949
"/baz": this.view("Baz", [TestController, "test"]),
5050
"/cux": this.view("Cux", [TestController, "test"]),
5151
}),

packages/gemi/services/router/createRouteManifest.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ViewRoutes } from "../http/ViewRouter";
1+
import type { ViewRoutes } from "../../http/ViewRouter";
22

33
export function createRouteManifest(routes: ViewRoutes) {
44
const routeManifest: Record<string, string[]> = {};

0 commit comments

Comments
 (0)