From 0cf25de622026d94d3e4c2bf0db9393521224204 Mon Sep 17 00:00:00 2001 From: Daniel O'Grady Date: Tue, 3 Dec 2024 07:19:23 +0100 Subject: [PATCH] Add service connect to overload --- apis/server.d.ts | 19 ++++++++++++++----- apis/services.d.ts | 3 +++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/apis/server.d.ts b/apis/server.d.ts index a8926364..26255c93 100644 --- a/apis/server.d.ts +++ b/apis/server.d.ts @@ -5,6 +5,8 @@ import type * as cds from './cds' import { Application, RequestHandler } from 'express' import { XOR } from './internal/util' + + type _cds = typeof cds // interface instead of type so users can insert their actual Services via module augmentation interface cds_services { @@ -26,6 +28,13 @@ export const connect: { */ to(datasource: 'db', options?: cds_connect_options): Promise, + /** + * Connects to a specific datasource via options. + * @example cds.connect.to ({ kind:..., impl:... }) + * @see [capire](https://cap.cloud.sap/docs/node.js/cds-connect#cds-connect-to) + */ + to(options: cds_connect_options): Promise, + /** * Connects to a specific datasource via a Service subclass * @example cds.connect.to (ServiceClass) @@ -34,11 +43,11 @@ export const connect: { to(datasource: {new(): S}, options?: cds_connect_options): Promise, /** - * Connects to a specific datasource via options. - * @example cds.connect.to ({ kind:..., impl:... }) - * @see [capire](https://cap.cloud.sap/docs/node.js/cds-connect#cds-connect-to) - */ - to(options: cds_connect_options): Promise, + * Connects to a specific datasource via a Service subclass + * @example cds.connect.to (ServiceClass) + * @see [capire](https://cap.cloud.sap/docs/node.js/cds-connect#cds-connect-to) + */ + to(datasource: S, options?: cds_connect_options): Promise & Service>, /** * Connects the primary datasource. diff --git a/apis/services.d.ts b/apis/services.d.ts index e6a738d1..7a73b3fc 100644 --- a/apis/services.d.ts +++ b/apis/services.d.ts @@ -351,6 +351,9 @@ type CdsFunction = { __returns: any, } +// extracts all properties of type CdsFunction from T +type CdsFunctions = Pick + type TypedRequest = Omit & { data: T } // https://cap.cloud.sap/docs/node.js/core-services#srv-on-before-after