diff --git a/CHANGELOG.md b/CHANGELOG.md index b075f4f5..710f73d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] ### Added +- Added `Request.messages`, `Request.errors` and `Request.results` ### Changed ### Deprecated ### Removed diff --git a/apis/events.d.ts b/apis/events.d.ts index da7f7ffc..43208bac 100644 --- a/apis/events.d.ts +++ b/apis/events.d.ts @@ -2,6 +2,7 @@ import { Definition, LinkedCSN } from './linked' import { Query } from './cqn' import { ref } from './cqn' import * as express from 'express' +import { levels } from './log' /** @@ -54,6 +55,18 @@ export class Request< P extends Record[] = Record[] > extends Event { + messages: {message: string, numericSeverity: levels}[] + + errors: { + code?: number, + message: string, + stack: string, + target?: string, + args?: unknown[], + }[] + + results: D[] + params: P method: string diff --git a/test/typescript/apis/project/cds-services.ts b/test/typescript/apis/project/cds-services.ts index 5442e069..977118d9 100644 --- a/test/typescript/apis/project/cds-services.ts +++ b/test/typescript/apis/project/cds-services.ts @@ -188,6 +188,11 @@ srv.before('*', async req => { req.error(1, 'msg') req.notify(1, 'msg', 'target', ['key', 2]) req.warn(1, 'msg', 'target', []) + req.messages.at(0)?.message + req.messages.at(0)?.numericSeverity + req.results.at(0) + req.errors.at(0)?.stack + req.errors.at(0)?.message const thing: number | undefined = 42 as number | undefined // @ts-expect-error possibly undefined - goes away after req.reject thing.toExponential() @@ -213,6 +218,11 @@ srv.after('*', (results, req) => { srv.after('UPDATE', Books, (results, req) => { req.data results[0] + req.results.at(0) // any, as Books is from cds.entities +}) +srv.after('UPDATE', Foos, (results, req) => { + req.data + req.results.at(0)?.ref // Foo, as Foos is a cds-typer dummy }) srv.on("action1", req => {