UNPKG

@shopify/admin-api-client

Version:

Shopify Admin API Client - A lightweight JS client to interact with Shopify's Admin API

65 lines (53 loc) 1.62 kB
import {CustomFetchApi} from '@shopify/graphql-client'; import {AdminApiClientOptions} from '../types'; export enum Method { Get = 'GET', Post = 'POST', Put = 'PUT', Delete = 'DELETE', } type SearchParamField = string | number; export type SearchParamFields = | SearchParamField | SearchParamField[] | Record<string, SearchParamField | SearchParamField[]>; export type SearchParams = Record<string, SearchParamFields>; export type HeaderOptions = Record<string, string | number | string[]>; export interface GetRequestOptions { headers?: HeaderOptions; data?: Record<string, any> | string; searchParams?: SearchParams; retries?: number; apiVersion?: string; } export interface PostRequestOptions extends GetRequestOptions { data: Required<GetRequestOptions>['data']; } export interface PutRequestOptions extends PostRequestOptions {} export interface DeleteRequestOptions extends GetRequestOptions {} export interface AdminRestApiClientOptions extends AdminApiClientOptions { scheme?: 'https' | 'http'; defaultRetryTime?: number; formatPaths?: boolean; } export type RequestOptions = (GetRequestOptions | PostRequestOptions) & { method: Method; }; export interface AdminRestApiClient { get: ( path: string, options?: GetRequestOptions, ) => ReturnType<CustomFetchApi>; put: ( path: string, options?: PutRequestOptions, ) => ReturnType<CustomFetchApi>; post: ( path: string, options?: PostRequestOptions, ) => ReturnType<CustomFetchApi>; delete: ( path: string, options?: DeleteRequestOptions, ) => ReturnType<CustomFetchApi>; }