Options
All
  • Public
  • Public/Protected
  • All
Menu

Module @sap/cloud-sdk-core

cloud-sdk-core

This is the core of the SAP Cloud SDK for JavaScript. It contains the core functionality for the Virtual Data Model (VDM) as well as the Cloud Platform abstractions.

Index

Enumerations

Classes

Interfaces

Type aliases

Variables

Functions

Type aliases

AuthenticationType

AuthenticationType: "NoAuthentication" | "BasicAuthentication" | "OAuth2SAMLBearerAssertion" | "OAuth2ClientCredentials"

DestinationSelectionStrategy

DestinationSelectionStrategy: function

Type declaration

    • (AllDestinations: any, string: any): Destination | null
    • Parameters

      • AllDestinations: any
      • string: any

      Returns Destination | null

EdmType

EdmType: "Edm.String" | "Edm.Boolean" | "Edm.Guid" | "Edm.Decimal" | "Edm.Double" | "Edm.Single" | "Edm.Int16" | "Edm.Int32" | "Edm.Int64" | "Edm.SByte" | "Edm.DateTime" | "Edm.DateTimeOffset" | "Edm.Time" | "Edm.Binary" | "Edm.Byte"

EntityBuilderType

EntityBuilderType: object & EntityBuilder<EntityT, JsonT>

FieldType

FieldType: string | number | boolean | Time | Moment | BigNumber

Union type to represent all possible types of a field.

FilterOperator

FilterOperator: FilterOperatorString | FilterOperatorBoolean | FilterOperatorNumber

FilterOperatorByType

FilterOperatorByType: FilterOperatorByType<FieldT>

Filterable

Filterable: Filter<EntityT, FieldType> | FilterLink<EntityT, Entity> | FilterList<EntityT>

A union of all types that can be used for filtering.

FunctionImportParameters

FunctionImportParameters: object

Internal representation of all parameters of a function import as a map

Type declaration

Orderable

Orderable: Order<EntityT> | OrderLink<EntityT, Entity>

A union of all types that can be used for ordering.

OrderableInput

OrderableInput: SimpleTypeFields<EntityT> | Link<EntityT, Entity> | ComplexTypePropertyFields<EntityT>

A union of all types that can be used as input for ordering.

RequestMethodType

RequestMethodType: "get" | "post" | "patch" | "delete"

Selectable

Selectable: SimpleTypeFields<EntityT> | Link<EntityT, Entity> | ComplexTypeField<EntityT> | CustomField<EntityT> | AllFields<EntityT>

Represents all selectables, i.e. everything that can be used in a .select statement.

Variables

Const clientCredentialsTokenCache

clientCredentialsTokenCache: object = ClientCredentialsTokenCache(new Cache<ClientCredentialsResponse>())

Type declaration

Const destinationCache

destinationCache: object = DestinationCache(new Cache<Destination>({ hours: 0, minutes: 5, seconds: 0 }))

Type declaration

Functions

addAuthorizationHeader

  • addAuthorizationHeader<RequestT>(request: ODataRequest<RequestT>, headers: MapType<string>): Promise<MapType<string>>
  • Type parameters

    • RequestT: ODataRequestConfig

    Parameters

    Returns Promise<MapType<string>>

addCsrfTokenAndCookies

  • addCsrfTokenAndCookies<RequestT>(request: ODataRequest<RequestT>, headers: MapType<string>): Promise<MapType<string>>
  • Type parameters

    • RequestT: ODataRequestConfig

    Parameters

    Returns Promise<MapType<string>>

addProxyConfiguration

  • Given a destination and a JWT (required for subscriber destinations), this function will add a proxy configuration to a destination. See also ProxyConfiguration.

    This function will reject if no connectivity service is bound, no XSUAA service with plan application is bound or the client credentials grant with the XSUAA service fails.

    Parameters

    • destination: Destination

      The destination to which the proxy configuration should be added.

    • Optional jwt: string

      The JWT of the current user.

    Returns Promise<Destination>

    A promise resolving to the destiation with the added proxy configuration.

Const addProxyHeaders

  • Parameters

    Returns (Anonymous function)

Const addSapClientHeader

  • addSapClientHeader(sapClient?: string): (Anonymous function)
  • Parameters

    • Optional sapClient: string

    Returns (Anonymous function)

and

  • Create a FilterList by combining Filterables with logical and.

    Example:

    Entity.requestBuilder()
     .getAll()
     .filter(and(filterExp1, filterExp2));

    Note that the GetAllRequestBuilder.filter method takes a rest parameter and thereby an array of filter expressions that are then combined conjunctively. As a consequence following is equivalent to the example above:

    Entity.requestBuilder()
     .getAll()
     .filter(filterExp1, filterExp2);

    Type parameters

    • EntityT: Entity

      Type of the entity to be filtered on

    Parameters

    • Rest ...expressions: Array<Filterable<EntityT>>

      Filterables to be combined with logical and

    Returns FilterList<EntityT>

    The newly created FilterList

asc

  • Create new Order by orderBy.fieldName in ascending order.

    Type parameters

    • EntityT: Entity

      Type of the entity to be ordered

    Parameters

    Returns Orderable<EntityT>

    New order

buildHeaders

  • buildHeaders<RequestT>(request: ODataRequest<RequestT>): Promise<MapType<string>>
  • Create object containing all headers, including custom headers for a given OData request configuration and destination. Custom headers override duplicate headers.

    typeparam

    Type of the entity the headers are built for

    Type parameters

    • RequestT: ODataRequestConfig

    Parameters

    • request: ODataRequest<RequestT>

      OData request configuration to create headers for

    Returns Promise<MapType<string>>

    Key-value pairs where the key is the name of a header property and the value is the respective value

clientCredentialsGrant

  • clientCredentialsGrant(xsuaaUri: string, clientCredentials: ClientCredentials, customBody?: MapType<any>): Promise<ClientCredentialsResponse>
  • Executes a client credentials grant request against the given URI.

    Parameters

    • xsuaaUri: string

      The URI of the XSUAA service

    • clientCredentials: ClientCredentials

      An instance of

    • Default value customBody: MapType<any> = {}

      Object containing value required for the body request

    Returns Promise<ClientCredentialsResponse>

    A promise resolving to the response

createAgent

  • Parameters

    Returns Agent | Agent

createComplexType

  • createComplexType<ComplexT>(json: any, converters: any): ComplexT
  • Type parameters

    • ComplexT

    Parameters

    • json: any
    • converters: any

    Returns ComplexT

decodeJwt

  • decodeJwt(token: string): object | null
  • Parameters

    • token: string

    Returns object | null

desc

  • Create new Order by orderBy.fieldName in descending order.

    Type parameters

    • EntityT: Entity

      Type of the entity to be ordered

    Parameters

    Returns Orderable<EntityT>

    New order

deserialize

  • deserialize<EntityT, JsonT>(json: Partial<JsonT>, entityConstructor: Constructable<EntityT>): EntityT
  • Type parameters

    Parameters

    • json: Partial<JsonT>
    • entityConstructor: Constructable<EntityT>

    Returns EntityT

extractCustomFields

  • extractCustomFields<EntityT, JsonT>(json: Partial<JsonT>, entityConstructor: Constructable<EntityT>): MapType<any>
  • Type parameters

    Parameters

    • json: Partial<JsonT>
    • entityConstructor: Constructable<EntityT>

    Returns MapType<any>

fetchDestination

  • fetchDestination(destinationServiceUri: string, jwt: string, destinationName: string): Promise<Destination>
  • Fetches a specific destination by name from the given URI, including authorization tokens. For destinations with authenticationType OAuth2SAMLBearerAssertion, this call will trigger the OAuth2SAMLBearerFlow against the target destination.

    Parameters

    • destinationServiceUri: string

      The URI of the destination service

    • jwt: string

      The access token

    • destinationName: string

      The name of the desired destination

    Returns Promise<Destination>

    A Promise resolving to the destination

fetchInstanceDestinations

  • fetchInstanceDestinations(destinationServiceUri: string, jwt: string): Promise<Destination[]>
  • Fetches all instance destinations from the given URI.

    Parameters

    • destinationServiceUri: string

      The URI of the destination service

    • jwt: string

      The access token

    Returns Promise<Destination[]>

    A promise resolving to a list of instance destinations

fetchSubaccountDestinations

  • fetchSubaccountDestinations(destinationServiceUri: string, jwt: string): Promise<Destination[]>
  • Fetches all subaccount destinations from the given URI.

    Parameters

    • destinationServiceUri: string

      The URI of the destination service

    • jwt: string

      The access token

    Returns Promise<Destination[]>

    A promise resolving to a list of subaccount destinations

getAgentConfig

  • getAgentConfig(destination: Destination): HttpAgentConfig | HttpsAgentConfig
  • Parameters

    Returns HttpAgentConfig | HttpsAgentConfig

getDestination

  • getDestination(name: string, options?: DestinationOptions): Promise<Destination | null>
  • Retrieves a destination with the given name from the Cloud Foundry destination service. Returns null if no destination can be found. Requires the following service bindings: destination, XSUAA By default, selects subscriber over provider and instance over subaccount destinations.

    If the destinations are read from the environment, the jwt will be ignored.

    export

    Parameters

    • name: string

      The name of the destination to be retrieved.

    • Default value options: DestinationOptions = {}

      The options of the fetching query of the destination that include the JWT of the current request and the strategy for selecting a destination.

    Returns Promise<Destination | null>

    A promise returning the requested destination on success.

getDestinationByName

  • getDestinationByName(name: string): Destination | null
  • deprecated

    Since v1.4.2. Use getDestinationFromEnvByName instead.

    Get a destination from the environment variables by name. Throws an error if there are multiple destinations with the same name. This is discouraged for productive use! Use destination-accessor/useOrFetchDestination for fetching destinations from the Cloud Foundry destination service.

    Parameters

    • name: string

      Name of the destination

    Returns Destination | null

    The requested destination if existent, otherwise null

getDestinationFromEnvByName

  • getDestinationFromEnvByName(name: string): Destination | null
  • Get a destination from the environment variables by name. Throws an error if there are multiple destinations with the same name. This is discouraged for productive use! Use destination-accessor/useOrFetchDestination for fetching destinations from the Cloud Foundry destination service.

    Parameters

    • name: string

      Name of the destination

    Returns Destination | null

    The requested destination if existent, otherwise null

getDestinationOptions

  • getDestinationOptions(name: string, options?: DestinationOptions): Promise<Destination | null>
  • deprecated

    Since v1.0.1. Use getDestination instead.

    Retrieves a destination with the given name from the Cloud Foundry destination service. Returns null if no destination can be found. Requires the following service bindings: destination, XSUAA By default, selects subscriber over provider and instance over subaccount destinations.

    If the destinations are read from the environment, the jwt will be ignored.

    export

    Parameters

    • name: string

      The name of the destination to be retrieved.

    • Default value options: DestinationOptions = {}

      The options of the fetching query of the destination that include the JWT of the current request and the strategy for selecting a destination.

    Returns Promise<Destination | null>

    A promise returning the requested destination on success.

getDestinations

  • deprecated

    Since v1.4.2. Use [[getDestinationFromEnv]] instead.

    Get all destination from the environment variable "destinations". This is discouraged for productive use! Use destination-accessor/useOrFetchDestination for fetching destinations from the Cloud Foundry destination service.

    Returns Destination[]

    A list of destinations

getDestinationsFromEnv

  • Get all destination from the environment variable "destinations". This is discouraged for productive use! Use destination-accessor/useOrFetchDestination for fetching destinations from the Cloud Foundry destination service.

    Returns Destination[]

    A list of destinations

getIssuerUrl

  • getIssuerUrl(decodedJwt: MapType<any>): string | undefined
  • Parameters

    • decodedJwt: MapType<any>

    Returns string | undefined

getOAuth2ClientCredentialsToken

  • getOAuth2ClientCredentialsToken(destination: Destination): Promise<ClientCredentialsResponse>
  • Retrieves an access token required for "OAuth2ClientCredentials" destination authentication type.

    Parameters

    • destination: Destination

      A destination having OAuth2ClientCredentials authentication type

    Returns Promise<ClientCredentialsResponse>

    A promise returning the requested access token on success.

getQueryParametersForFilter

  • getQueryParametersForFilter<EntityT>(filter: Filterable<EntityT>, entityConstructor: Constructable<EntityT>): Partial<object>
  • Get an object containing the given filter as query parameter, or an empty object if none was given.

    Type parameters

    • EntityT: Entity

      Type of the entity to filter on

    Parameters

    • filter: Filterable<EntityT>

      The filter to transform to a query parameter

    • entityConstructor: Constructable<EntityT>

      Constructor type of the entity to filter on

    Returns Partial<object>

    } An object containing the query parameter or an empty object

getQueryParametersForOrderBy

  • getQueryParametersForOrderBy<EntityT>(orderBy: Array<Orderable<EntityT>>): Partial<object>
  • Get an object containing the given order bys as query parameter, or an empty object if none was given.

    Type parameters

    • EntityT: Entity

      Type of the entity to order

    Parameters

    • orderBy: Array<Orderable<EntityT>>

      A list of orderables to get the query parameters for

    Returns Partial<object>

    } An object containing the query parameter or an empty object

getQueryParametersForSelection

  • getQueryParametersForSelection<EntityT>(selects: Array<Selectable<EntityT>>): Partial<object>
  • Get an object containing the given Selectables as query parameter, or an empty object if none were given. This retrieves where in addition to the selection (select) there is also an expansion (expand) needed.

    Type parameters

    • EntityT: Entity

      Type of the entity to get the selection for

    Parameters

    • selects: Array<Selectable<EntityT>>

      The list of selectables to be transformed to query parameters

    Returns Partial<object>

    An object containing the query parameters or an empty object

getResourcePathForKeys

  • getResourcePathForKeys<EntityT>(keys: MapType<FieldType>, entityConstructor: Constructable<EntityT>): string
  • Get the resource path of an entity specified by key-value pairs.

    Type parameters

    • EntityT: Entity

      Type of the entity to get the resource path for

    Parameters

    • keys: MapType<FieldType>

      Key-value pairs where the key is the name of a key property of the given entity and the value is the respective value

    • entityConstructor: Constructable<EntityT>

      Constructor type of the entity to get the resource path for

    Returns string

    The path to the resource

getTenantId

  • getTenantId(decodedJwt: MapType<any>): string | undefined
  • Parameters

    • decodedJwt: MapType<any>

    Returns string | undefined

getUrlProtocol

  • Parameters

    Returns Protocol | undefined

getUserId

  • getUserId(decodedJwt: MapType<any>): string | undefined
  • Parameters

    • decodedJwt: MapType<any>

    Returns string | undefined

headerForClientCredentials

  • headerForClientCredentials(clientCredentials: ClientCredentials): string
  • Parameters

    • clientCredentials: ClientCredentials

    Returns string

isDestinationNameAndJwt

  • isDestinationNameAndJwt(destination: any): boolean
  • Parameters

    • destination: any

    Returns boolean

or

  • Create a FilterList by combining Filterables with logical or.

    Example:

    Entity.requestBuilder()
     .getAll()
     .filter(or(filterExp1, filterExp2));

    Type parameters

    • EntityT: Entity

      Type of the entity to be filtered on

    Parameters

    • Rest ...expressions: Array<Filterable<EntityT>>

      Filterables to be combined with logical or

    Returns FilterList<EntityT>

    The newly created FilterList

parseDestination

  • parseDestination(destinationJson: DestinationJSON | DestinationConfiguration): Destination
  • Takes a JSON object returned by any of the calls to the destination service and returns an SDK compatible destination object.

    export

    Parameters

    • destinationJson: DestinationJSON | DestinationConfiguration

      A JSON object returned by the destination service.

    Returns Destination

    An SDK compatible destination object.

proxyAgent

  • proxyAgent(proxyHost: string, proxyPort: number): HttpProxyAgent
  • Parameters

    • proxyHost: string
    • proxyPort: number

    Returns HttpProxyAgent

refreshTokenGrant

  • refreshTokenGrant(xsuaaUri: string, clientCredentials: ClientCredentials, refreshToken: string): Promise<UserTokenResponse>
  • Executes a refresh token grant request against the given URI.

    Parameters

    • xsuaaUri: string

      The URI of the target XSUAA service instance.

    • clientCredentials: ClientCredentials

      The credentials (client_id, client_secret) if the target XSUAA service instance.

    • refreshToken: string

      The refresh token that should be used to generate a new access token.

    Returns Promise<UserTokenResponse>

    A promise resolving to the response of the XSUAA service.

sanitizeDestination

  • sanitizeDestination(destination: MapType<any>): Destination
  • Takes an existing or a parsed destination and returns an SDK compatible destination object.

    export

    Parameters

    • destination: MapType<any>

      A JSON object returned by the destination service.

    Returns Destination

    An SDK compatible destination object.

secondsToTime

  • secondsToTime(n: number): Time
  • Converts from seconds to time in HH:MM:SS format.

    Parameters

    • n: number

      Number of seconds to convert (should be positive).

    Returns Time

    Time The converted time from the given number of seconds

subscriberFirst

  • subscriberFirst(allDestinations: AllDestinations, requestedDestinationName: string): Destination | null
  • Parameters

    • allDestinations: AllDestinations
    • requestedDestinationName: string

    Returns Destination | null

timeToSeconds

  • timeToSeconds(time: Time): number
  • Converts the given time to seconds in positive numerical format.

    Parameters

    • time: Time

      Time to convert.

    Returns number

    number Time in seconds.

toPropertyFormat

  • toPropertyFormat(str: string): string
  • Converts a string to the format used by properties. Use this for serialization in the VDM.

    Parameters

    • str: string

      The string to be transformed.

    Returns string

    The transformed string.

toStaticPropertyFormat

  • toStaticPropertyFormat(str: string): string
  • Converts a string to the case used by static helpers in the VDM. Use this for serialization in the VDM.

    Parameters

    • str: string

      The string to be transformed.

    Returns string

    The input string in the case used by static helpers in the VDM.

toTitleFormat

  • toTitleFormat(str: string): string
  • Converts a string to a human readable format, e.g. it transforms to_BusinessPartner to To Business Partner. Use this for serialization in the VDM.

    Parameters

    • str: string

      The string to be transformed.

    Returns string

    The transformed string.

toTypeNameFormat

  • toTypeNameFormat(str: string): string
  • Converts a string to the format used by properties. Use this for serialization in the VDM.

    Parameters

    • str: string

      The string to be transformed.

    Returns string

    The transformed string.

transformReturnValueForComplexType

  • transformReturnValueForComplexType<ReturnT>(data: any, builderFn: function): ReturnT
  • Type parameters

    • ReturnT

    Parameters

    • data: any
    • builderFn: function
        • (data: any): ReturnT
        • Parameters

          • data: any

          Returns ReturnT

    Returns ReturnT

transformReturnValueForComplexTypeList

  • transformReturnValueForComplexTypeList<ReturnT>(data: any, builderFn: function): ReturnT[]
  • Type parameters

    • ReturnT

    Parameters

    • data: any
    • builderFn: function
        • (data: any): ReturnT
        • Parameters

          • data: any

          Returns ReturnT

    Returns ReturnT[]

transformReturnValueForEntity

  • transformReturnValueForEntity<ReturnT>(data: any, entityConstructor: Constructable<ReturnT>): ReturnT
  • Type parameters

    Parameters

    • data: any
    • entityConstructor: Constructable<ReturnT>

    Returns ReturnT

transformReturnValueForEntityList

  • transformReturnValueForEntityList<ReturnT>(data: any, entityConstructor: Constructable<ReturnT>): ReturnT[]
  • Type parameters

    Parameters

    • data: any
    • entityConstructor: Constructable<ReturnT>

    Returns ReturnT[]

useOrFetchDestination

  • Returns the parameter if it is a destination, calls getDestination otherwise (which will try to fetch the destination from the Cloud Foundry destination service).

    Fetching a destination requires:

    • a binding to exactly one XSUAA service instance with service plan "application"
    • a binding to a destination service instance

    If either of the prerequisites is not met or one of the services returns an error, this function will either throw an error or return a promise that rejects.

    export

    Parameters

    Returns Promise<Destination>

    A promise resolving to the requested destination on success.

userTokenGrant

  • userTokenGrant(xsuaaUri: string, userJwt: string, clientId: string): Promise<UserTokenResponse>
  • Executes a user token grant request against the given URI.

    Parameters

    • xsuaaUri: string

      The URI of the target XSUAA service instance.

    • userJwt: string

      The JWT of the user on whose behalf the request is executed.

    • clientId: string

      The client_id of the target XSUAA service instance.

    Returns Promise<UserTokenResponse>

    A promise resolving to the response of the XSUAA service.