Skip to content
Snippets Groups Projects
Commit 3d10be5f authored by Konrad Mohrfeldt's avatar Konrad Mohrfeldt :koala:
Browse files

refactor: allow explicit undefined for requestInit argument in api helpers

All requestInit arguments could have been undefined already, because we
declared it as an optional argument, but sometimes it’s nice to
explicitly skip the argument with `undefined` which is now possible as
well.
parent e8182eed
No related branches found
No related tags found
No related merge requests found
......@@ -56,7 +56,7 @@ type ExtendableAPI<T extends APIObject> = {
}
type APIStoreOptions<T extends APIObject> = {
getRequestDefaults?: () => RequestInit
getRequestDefaults?: () => RequestInit | undefined
}
type PaginatedResults<T> = {
......@@ -160,7 +160,7 @@ export function createExtendableAPI<T extends APIObject, K = T['id']>(
}
export function APIListUnpaginated<T extends APIObject>(api: ExtendableAPI<T>) {
async function list(requestInit?: RequestInit): Promise<T[]> {
async function list(requestInit?: RequestInit | undefined): Promise<T[]> {
const res = await fetch(api.createRequest(api.endpoint(), requestInit))
await api.maybeRaiseResponse(res)
const items: T[] = await res.json()
......@@ -184,7 +184,7 @@ export function APIListPaginated<T extends APIObject>(
const hasNext = computed(() => nextPage.value !== null)
const previousPage = ref<string | null>(null)
const hasPrevious = computed(() => previousPage.value !== null)
async function list(page?: number, requestInit?: RequestInit): Promise<T[]> {
async function list(page?: number, requestInit?: RequestInit | undefined): Promise<T[]> {
page = page ?? currentPage.value
const query = new URLSearchParams()
if (mode === 'offset') {
......@@ -229,7 +229,7 @@ export function APIListPaginated<T extends APIObject>(
export function APIRetrieve<T extends APIObject>(api: ExtendableAPI<T>) {
async function retrieve(
id: ID,
requestInit?: RequestInit,
requestInit?: RequestInit | undefined,
options?: { useCached?: boolean },
): Promise<T | null> {
if (options?.useCached && api.itemMap.value.has(id)) {
......@@ -252,7 +252,11 @@ export function APIRetrieve<T extends APIObject>(api: ExtendableAPI<T>) {
}
export function APIUpdate<T extends APIObject, TData = Partial<T>>(api: ExtendableAPI<T>) {
async function update(id: ID, data: TData | FormData, requestInit?: RequestInit): Promise<T> {
async function update(
id: ID,
data: TData | FormData,
requestInit?: RequestInit | undefined,
): Promise<T> {
const res = await fetch(
api.createRequest(api.endpoint(id.toString()), requestInit, {
method: 'PUT',
......@@ -272,7 +276,7 @@ export function APIUpdate<T extends APIObject, TData = Partial<T>>(api: Extendab
export function APICreate<T extends APIObject, TData = Partial<Omit<T, 'id'>>>(
api: ExtendableAPI<T>,
) {
async function create(data: TData | FormData, requestInit?: RequestInit): Promise<T> {
async function create(data: TData | FormData, requestInit?: RequestInit | undefined): Promise<T> {
const res = await fetch(
api.createRequest(api.endpoint(), requestInit, {
method: 'POST',
......@@ -290,7 +294,7 @@ export function APICreate<T extends APIObject, TData = Partial<Omit<T, 'id'>>>(
}
export function APIRemove<T extends APIObject>(api: ExtendableAPI<T>) {
async function remove(id: ID, requestInit?: RequestInit): Promise<void> {
async function remove(id: ID, requestInit?: RequestInit | undefined): Promise<void> {
const res = await fetch(
api.createRequest(api.endpoint(id.toString()), requestInit, { method: 'DELETE' }),
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment