@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
TypeScript
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>;