Documentation / @warp-drive/utilities / json-api / createRecord
Function: createRecord()
Call Signature
function createRecord<T>(record, options?): CreateRequestOptions<T>;
Defined in: -private/json-api/save-record.ts:166
⚠️ These Mutation Builders DO NOT Set The Necessary Request Body
While this may come as a surprise, the app providing the body ensures that only desired and correctly formatted data is sent with the request.
Builds request options to create new record for resources, configured for the url, method and header expectations of most JSON:API APIs.
Basic Usage
import { cacheKeyFor } from '@warp-drive/core';
import { createRecord } from '@warp-drive/utilities/json-api';
import type { Person } from '#/data/types';
const person = store.createRecord<Person>('person', { name: 'Ted' });
const init = createRecord(person);
init.body = JSON.stringify(
{
// it's likely you will want to transform this data
// somewhat
data: store.cache.peek(cacheKeyFor(person))
}
);
const data = await store.request(init);
Supplying Options to Modify the Request Behavior
The following options are supported:
host
- The host to use for the request, defaults to thehost
configured withsetBuildURLConfig
.namespace
- The namespace to use for the request, defaults to thenamespace
configured withsetBuildURLConfig
.resourcePath
- The resource path to use for the request, defaults to pluralizing the supplied typereload
- 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 tofalse
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 tofalse
if none is configured.urlParamsSetting
- an object containing options for how to serialize the query params (seebuildQueryParams
)
import { createRecord } from '@warp-drive/utilities/json-api';
const person = store.createRecord('person', { name: 'Ted' });
const options = createRecord(person, { namespace: 'api/v1' });
const data = await store.request(options);
Type Parameters
T
T
Parameters
record
T
options?
Returns
Call Signature
function createRecord(record, options?): CreateRequestOptions;
Defined in: -private/json-api/save-record.ts:167
⚠️ These Mutation Builders DO NOT Set The Necessary Request Body
While this may come as a surprise, the app providing the body ensures that only desired and correctly formatted data is sent with the request.
Builds request options to create new record for resources, configured for the url, method and header expectations of most JSON:API APIs.
Basic Usage
import { cacheKeyFor } from '@warp-drive/core';
import { createRecord } from '@warp-drive/utilities/json-api';
import type { Person } from '#/data/types';
const person = store.createRecord<Person>('person', { name: 'Ted' });
const init = createRecord(person);
init.body = JSON.stringify(
{
// it's likely you will want to transform this data
// somewhat
data: store.cache.peek(cacheKeyFor(person))
}
);
const data = await store.request(init);
Supplying Options to Modify the Request Behavior
The following options are supported:
host
- The host to use for the request, defaults to thehost
configured withsetBuildURLConfig
.namespace
- The namespace to use for the request, defaults to thenamespace
configured withsetBuildURLConfig
.resourcePath
- The resource path to use for the request, defaults to pluralizing the supplied typereload
- 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 tofalse
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 tofalse
if none is configured.urlParamsSetting
- an object containing options for how to serialize the query params (seebuildQueryParams
)
import { createRecord } from '@warp-drive/utilities/json-api';
const person = store.createRecord('person', { name: 'Ted' });
const options = createRecord(person, { namespace: 'api/v1' });
const data = await store.request(options);
Parameters
record
unknown