UNPKG

@sap-cloud-sdk/odata-common

Version:

SAP Cloud SDK for JavaScript common functions of OData client generator and OpenAPI clint generator.

49 lines (48 loc) 2.56 kB
import type { Expandable } from '../expandable'; import type { EntityBase } from '../entity-base'; import type { EdmTypeShared } from '../edm-types'; import type { Selectable } from '../selectable'; import type { Orderable } from '../order'; import type { Filterable } from '../filter'; import type { DeSerializers } from '../de-serializers'; import type { EntityApi } from '../entity-api'; /** * Union of necessary methods for the OData URI conversion. * In v2/uri-conversion/odata-uri.ts and v4/uri-conversion/odata-uri.ts the instance for v2 and v4 are created. */ export interface ODataUri<DeSerializersT extends DeSerializers> { getExpand<EntityT extends EntityBase>(selects: Selectable<EntityT, DeSerializersT>[], expands: Expandable<EntityT, DeSerializersT>[], entityApi: EntityApi<EntityT, DeSerializersT>): Partial<{ expand: string; }>; getFilter<EntityT extends EntityBase>(filter: Filterable<EntityT, DeSerializersT>, entityApi: EntityApi<EntityT, DeSerializersT>): Partial<{ filter: string; }>; getEntityKeys<EntityT extends EntityBase>(entity: EntityT, entityApi: EntityApi<EntityT, DeSerializersT>): Record<string, any>; getOrderBy<EntityT extends EntityBase>(orderBy: Orderable<EntityT>[]): Partial<{ orderby: string; }>; getResourcePathForKeys<EntityT extends EntityBase>(keys: Record<string, any>, _entityApi: EntityApi<EntityT, DeSerializersT>): string; getSelect<EntityT extends EntityBase>(selects: Selectable<EntityT, DeSerializersT>[]): Partial<{ select: string; }>; convertToUriFormat(value: any, edmType: EdmTypeShared<'v2'> | EdmTypeShared<'v4'>): string; } /** * @internal * Add a dollar to a string. * @param param - String to be modified. * @returns The given string starting with a dollar. */ export declare function prependDollar(param: string): string; /** * @internal * @param deSerializers - (De-)serializers used for transformation. * @param getExpand - `getExpand` function. * @param getSelect - `getSelect`function. * @returns An instance of ODataUri */ export declare function createODataUri<DeSerializersT extends DeSerializers>(deSerializers: DeSerializersT, getExpand: <EntityT extends EntityBase>(selects: Selectable<EntityT, DeSerializersT>[], expands: Expandable<EntityT, DeSerializersT>[], entityApi: EntityApi<EntityT, DeSerializersT>) => Partial<{ expand: string; }>, getSelect: <EntityT extends EntityBase>(selects: Selectable<EntityT, DeSerializersT>[]) => Partial<{ select: string; }>): ODataUri<DeSerializersT>;