@swishapp/browser
Version:
JS library to integrate Swish into a browser environment.
54 lines (53 loc) • 2.42 kB
TypeScript
import type { ResponseErrors } from "@shopify/graphql-client";
import { LoadProductCardDataArgs } from "./loadProductCardData";
import { LoadProductDetailDataArgs } from "./loadProductDetailData";
import { LoadProductImagesArgs } from "./loadProductImages";
import { LoadProductOptionsArgs } from "./loadProductOptions";
import { LoadSelectedVariantArgs } from "./loadSelectedVariant";
export * from "./loadProductCardData";
export * from "./loadProductOptions";
export * from "./loadSelectedVariant";
export * from "./types/storefront.generated";
export interface StorefrontApiResponse<TData> {
data: TData;
errors: ResponseErrors;
}
export declare const API_VERSION = "2025-07";
export interface StorefrontConfig {
storeDomain: string;
accessToken: string;
fetch?: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
}
export declare class StorefrontApi {
private client;
private readonly fetchConfig;
constructor(config: Pick<StorefrontConfig, "fetch">);
setConfig(config: StorefrontConfig): void;
query: <TData, TVariables extends Record<string, unknown>>(query: string, variables: TVariables) => Promise<{
data: (TData extends undefined ? any : TData) | undefined;
error: ResponseErrors | null;
}>;
loadProductOptions: (args: LoadProductOptionsArgs) => Promise<{
data: import(".").GetProductOptionsQuery | import(".").GetProductOptionsWithVariantQuery | undefined;
error: ResponseErrors | null;
}>;
loadSelectedVariant: (args: LoadSelectedVariantArgs) => Promise<{
data: import(".").GetSelectedVariantQuery | undefined;
error: ResponseErrors | null;
}>;
loadProductCardData: (args: LoadProductCardDataArgs) => Promise<{
data: import(".").GetProductCardDataQuery | import(".").GetProductCardDataWithVariantQuery | undefined;
error: ResponseErrors | null;
}>;
loadProductDetailData: (args: LoadProductDetailDataArgs) => Promise<{
data: import(".").GetProductDetailDataQuery | import(".").GetProductDetailDataWithVariantQuery | undefined;
error: ResponseErrors | null;
}>;
loadProductImages: (args: LoadProductImagesArgs) => Promise<{
data: (Pick<import("./types/storefront.types").Image, "id" | "altText" | "url" | "thumbhash"> | undefined)[];
error: null;
} | {
data: null;
error: Error;
}>;
}