Browse Source

refactor(ditsmod): added test with simplified use of DI. (#8455)

* refactor(ditsmod): added test with simplified use of DI.

* refactor(ditsmod): migration to @ditsmod/[email protected]
Костя Третяк 1 year ago
parent
commit
019292e74a

+ 22 - 2
frameworks/TypeScript/ditsmod/benchmark_config.json

@@ -21,6 +21,26 @@
         "notes": "",
         "versus": "nodejs"
       },
+      "simplified-di": {
+        "dockerfile": "ditsmod.dockerfile",
+        "json_url": "/json2",
+        "plaintext_url": "/plaintext2",
+        "port": 8080,
+        "approach": "Realistic",
+        "classification": "Micro",
+        "database": "None",
+        "framework": "Ditsmod",
+        "language": "TypeScript",
+        "flavor": "None",
+        "orm": "None",
+        "platform": "nodejs",
+        "webserver": "None",
+        "os": "Linux",
+        "database_os": "Linux",
+        "display_name": "ditsmod [simplified use of di]",
+        "notes": "Simplified use of Dependency Injection (no request level injector).",
+        "versus": "nodejs"
+      },
       "postgres": {
         "db_url": "/db",
         "query_url": "/queries?queries=",
@@ -39,7 +59,7 @@
         "webserver": "None",
         "os": "Linux",
         "database_os": "Linux",
-        "display_name": "Ditsmod [PostgreSQL]",
+        "display_name": "ditsmod [postgres]",
         "notes": "",
         "versus": "nodejs"
       },
@@ -61,7 +81,7 @@
         "webserver": "None",
         "os": "Linux",
         "database_os": "Linux",
-        "display_name": "Ditsmod [MySQL]",
+        "display_name": "ditsmod [mysql]",
         "notes": "",
         "versus": "nodejs"
       }

+ 2 - 2
frameworks/TypeScript/ditsmod/package.json

@@ -19,8 +19,8 @@
   "author": "Костя Третяк",
   "license": "MIT",
   "dependencies": {
-    "@ditsmod/core": "~2.49.1",
-    "@ditsmod/router": "~2.7.1",
+    "@ditsmod/core": "~2.50.0",
+    "@ditsmod/routing": "~2.0.0",
     "handlebars": "^4.7.8",
     "lru-cache": "^10.0.1",
     "mariadb": "^3.2.1",

+ 4 - 3
frameworks/TypeScript/ditsmod/src/app/modules/routed/simple/simple.module.ts

@@ -1,13 +1,14 @@
 import { featureModule } from '@ditsmod/core';
-import { RouterModule } from '@ditsmod/router';
+import { RoutingModule } from '@ditsmod/routing';
 
 import { DbModule } from '#service/db/db.module.js';
 import { WithoutDbController } from './without-db.controller.js';
 import { DbController } from './db.controller.js';
 import { FortuneController } from './fortune.controller.js';
+import { SingletonController } from './singleton.controller.js';
 
 @featureModule({
-  imports: [RouterModule, DbModule],
-  controllers: [WithoutDbController, DbController, FortuneController]
+  imports: [RoutingModule, DbModule],
+  controllers: [WithoutDbController, DbController, FortuneController, SingletonController],
 })
 export class SimpleModule {}

+ 18 - 0
frameworks/TypeScript/ditsmod/src/app/modules/routed/simple/singleton.controller.ts

@@ -0,0 +1,18 @@
+import { controller, route, SingletonRequestContext } from '@ditsmod/core';
+
+@controller({ isSingleton: true })
+export class SingletonController {
+  @route('GET', 'plaintext2')
+  getHello(ctx: SingletonRequestContext) {
+    ctx.nodeRes.setHeader('Server', 'Ditsmod');
+    ctx.nodeRes.setHeader('Content-Type', 'text/plain; charset=utf-8');
+    ctx.nodeRes.end('Hello, World!');
+  }
+
+  @route('GET', 'json2')
+  getJson(ctx: SingletonRequestContext) {
+    ctx.nodeRes.setHeader('Server', 'Ditsmod');
+    ctx.nodeRes.setHeader('Content-Type', 'application/json; charset=utf-8');
+    ctx.nodeRes.end(JSON.stringify({ message: 'Hello, World!' }));
+  }
+}

+ 2 - 1
frameworks/TypeScript/ditsmod/src/app/modules/service/db/db.module.ts

@@ -1,4 +1,5 @@
-import { PRE_ROUTER_EXTENSIONS, featureModule } from '@ditsmod/core';
+import { featureModule } from '@ditsmod/core';
+import { PRE_ROUTER_EXTENSIONS } from '@ditsmod/routing';
 
 import { DbService } from './db.service.js';
 import { InitExtension } from './init.extension.js';

+ 1 - 1
frameworks/TypeScript/ditsmod/src/main.ts

@@ -1,5 +1,5 @@
 import cluster from 'node:cluster';
-import { ServerOptions } from 'node:http';
+import type { ServerOptions } from 'node:http';
 import { availableParallelism } from 'node:os';
 import { Application } from '@ditsmod/core';