UNPKG

@ember-data/json-api

Version:

Provides a JSON:API document and resource cache implementation for EmberData

112 lines 5.51 kB
declare module '@ember-data/json-api/-private/builders/query' { import type { QueryParamsSource } from '@warp-drive/core-types/params'; import type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core-types/record'; import type { ConstrainedRequestOptions, PostQueryRequestOptions, QueryRequestOptions } from '@warp-drive/core-types/request'; import type { CollectionResourceDataDocument } from '@warp-drive/core-types/spec/document'; /** * Builds request options to query for resources, usually by a primary * type, configured for the url and header expectations of most JSON:API APIs. * * The key difference between this and `postQuery` is that this method will send the query * as query params in the url of a "GET" request instead of as the JSON body of a "POST" * request. * * **Basic Usage** * * ```ts * import { query } from '@ember-data/json-api/request'; * * const data = await store.request(query('person')); * ``` * * **With Query Params** * * ```ts * import { query } from '@ember-data/json-api/request'; * * const options = query('person', { include: ['pets', 'friends'] }); * const data = await store.request(options); * ``` * * **Supplying Options to Modify the Request Behavior** * * The following options are supported: * * - `host` - The host to use for the request, defaults to the `host` configured with `setBuildURLConfig`. * - `namespace` - The namespace to use for the request, defaults to the `namespace` configured with `setBuildURLConfig`. * - `resourcePath` - The resource path to use for the request, defaults to pluralizing the supplied type * - `reload` - Whether to forcibly reload the request if it is already in the store, not supplying this * option will delegate to the store's CachePolicy, defaulting to `false` if none is configured. * - `backgroundReload` - Whether to reload the request if it is already in the store, but to also resolve the * promise with the cached value, not supplying this option will delegate to the store's CachePolicy, * defaulting to `false` if none is configured. * - `urlParamsSetting` - an object containing options for how to serialize the query params (see `buildQueryParams`) * * ```ts * import { query } from '@ember-data/json-api/request'; * * const options = query('person', { include: ['pets', 'friends'] }, { reload: true }); * const data = await store.request(options); * ``` * * @method query * @public * @static * @for @ember-data/json-api/request * @param identifier * @param query * @param options */ export function query<T extends TypedRecordInstance>(type: TypeFromInstance<T>, query?: QueryParamsSource<T>, options?: ConstrainedRequestOptions): QueryRequestOptions<T, CollectionResourceDataDocument<T>>; export function query(type: string, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions; /** * Builds request options to query for resources, usually by a primary * type, configured for the url and header expectations of most JSON:API APIs. * * The key difference between this and `query` is that this method will send the query * as the JSON body of a "POST" request instead of as query params in the url of a "GET" * request. * * A CacheKey is generated from the url and query params, and used to cache the response * in the store. * * ```ts * import { postQuery } from '@ember-data/json-api/request'; * * const options = postQuery('person', { include: ['pets', 'friends'] }); * const data = await store.request(options); * ``` * * **Supplying Options to Modify the Request Behavior** * * The following options are supported: * * - `host` - The host to use for the request, defaults to the `host` configured with `setBuildURLConfig`. * - `namespace` - The namespace to use for the request, defaults to the `namespace` configured with `setBuildURLConfig`. * - `resourcePath` - The resource path to use for the request, defaults to pluralizing the supplied type * - `reload` - Whether to forcibly reload the request if it is already in the store, not supplying this * option will delegate to the store's CachePolicy, defaulting to `false` if none is configured. * - `backgroundReload` - Whether to reload the request if it is already in the store, but to also resolve the * promise with the cached value, not supplying this option will delegate to the store's CachePolicy, * defaulting to `false` if none is configured. * - `urlParamsSetting` - an object containing options for how to serialize the query params (see `buildQueryParams`) * * ```ts * import { postQuery } from '@ember-data/json-api/request'; * * const options = postQuery('person', { include: ['pets', 'friends'] }, { reload: true }); * const data = await store.request(options); * ``` * * @method postQuery * @public * @static * @for @ember-data/json-api/request * @param identifier * @param query * @param options */ export function postQuery<T>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): PostQueryRequestOptions<T, CollectionResourceDataDocument<T>>; export function postQuery(type: string, query?: QueryParamsSource, options?: ConstrainedRequestOptions): PostQueryRequestOptions; } //# sourceMappingURL=query.d.ts.map