diff --git a/frameworks/TypeScript/ditsmod/package.json b/frameworks/TypeScript/ditsmod/package.json index a0a1298ef86..99f331cf416 100755 --- a/frameworks/TypeScript/ditsmod/package.json +++ b/frameworks/TypeScript/ditsmod/package.json @@ -14,12 +14,12 @@ "author": "Костя Третяк", "license": "MIT", "dependencies": { - "@ditsmod/core": "^3.0.0-alpha.2", - "@ditsmod/routing": "^3.0.0-alpha.2", + "@ditsmod/core": "3.0.0-alpha.3", + "@ditsmod/routing": "3.0.0-alpha.3", "handlebars": "^4.7.8", - "lru-cache": "^11.0.0", - "mariadb": "^3.3.1", - "postgres": "^3.4.4" + "lru-cache": "^11.0.2", + "mariadb": "^3.4.0", + "postgres": "^3.4.5" }, "devDependencies": { "@types/eslint": "^8.44.2", diff --git a/frameworks/TypeScript/ditsmod/src/app/app.module.ts b/frameworks/TypeScript/ditsmod/src/app/app.module.ts index d50e72d1557..36d599d9698 100644 --- a/frameworks/TypeScript/ditsmod/src/app/app.module.ts +++ b/frameworks/TypeScript/ditsmod/src/app/app.module.ts @@ -1,14 +1,13 @@ -import { Providers, rootModule } from '@ditsmod/core'; +import { InjectionToken, Providers, rootModule } from '@ditsmod/core'; import { PRE_ROUTER_EXTENSIONS, RoutingModule } from '@ditsmod/routing'; import { OneController } from './one.controller.js'; import { InitExtension } from './init.extension.js'; -import { DB_INIT_EXTENSIONS } from './tokens.js'; @rootModule({ imports: [RoutingModule], providersPerApp: new Providers().useLogConfig({ level: 'off' }), - extensions: [{ extension: InitExtension, group: DB_INIT_EXTENSIONS, beforeGroup: PRE_ROUTER_EXTENSIONS }], + extensions: [{ extension: InitExtension, group: new InjectionToken('test'), beforeGroups: [PRE_ROUTER_EXTENSIONS] }], controllers: [OneController], }) export class AppModule {} diff --git a/frameworks/TypeScript/ditsmod/src/app/one.controller.ts b/frameworks/TypeScript/ditsmod/src/app/one.controller.ts index d4ba84464b0..72adaa1f616 100644 --- a/frameworks/TypeScript/ditsmod/src/app/one.controller.ts +++ b/frameworks/TypeScript/ditsmod/src/app/one.controller.ts @@ -1,4 +1,4 @@ -import { AnyObj, controller, RequestContext, SingletonRequestContext, optional } from '@ditsmod/core'; +import { AnyObj, controller, RequestContext, optional } from '@ditsmod/core'; import { route } from '@ditsmod/routing'; import Handlebars from 'handlebars'; @@ -28,7 +28,7 @@ const tmpl = Handlebars.compile( ].join(''), ); -@controller({ scope: 'module' }) +@controller({ scope: 'ctx' }) export class OneController { constructor(@optional() private dbService: DbService) {} @@ -40,19 +40,19 @@ export class OneController { } @route('GET', 'queries') - async getMultiQueries(ctx: SingletonRequestContext) { + async getMultiQueries(ctx: RequestContext) { const result = await this.dbService.getMultiQueries(ctx.queryParams!.queries); this.sendJson(ctx, result); } @route('GET', 'cached-queries') - async getCachedWorlds(ctx: SingletonRequestContext) { + async getCachedWorlds(ctx: RequestContext) { const result = await this.dbService.getMultiQueries(ctx.queryParams!.count, false); this.sendJson(ctx, result); } @route('GET', 'updates') - async getUpdates(ctx: SingletonRequestContext) { + async getUpdates(ctx: RequestContext) { const worlds = await this.dbService.saveWorlds(ctx.queryParams!.queries); this.sendJson(ctx, worlds); } @@ -68,18 +68,20 @@ export class OneController { } @route('GET', 'plaintext') - getHello(ctx: SingletonRequestContext) { + getHello(ctx: RequestContext) { ctx.rawRes.setHeader('Server', 'Ditsmod'); ctx.rawRes.setHeader('Content-Type', 'text/plain; charset=utf-8'); ctx.rawRes.end('Hello, World!'); } @route('GET', 'json') - getJson(ctx: SingletonRequestContext) { + getJson(ctx: RequestContext) { this.sendJson(ctx, { message: 'Hello, World!' }); } protected sendJson(ctx: RequestContext, value: AnyObj) { - ctx.setHeader('Server', 'Ditsmod').sendJson(value); + ctx.rawRes.setHeader('Server', 'Ditsmod'); + ctx.rawRes.setHeader('Content-Type', 'application/json; charset=utf-8'); + ctx.rawRes.end(JSON.stringify(value)); } } diff --git a/frameworks/TypeScript/ditsmod/src/app/tokens.ts b/frameworks/TypeScript/ditsmod/src/app/tokens.ts deleted file mode 100644 index 2eac6cb9303..00000000000 --- a/frameworks/TypeScript/ditsmod/src/app/tokens.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Extension, InjectionToken } from '@ditsmod/core'; - -/** - * A group of extensions intended for preparatory work for the database module. - */ -export const DB_INIT_EXTENSIONS = new InjectionToken[]>('DB_INIT_EXTENSIONS');