@swishapp/browser
Version:
JS library to integrate Swish into a browser environment.
68 lines (67 loc) • 3.92 kB
TypeScript
import type { CreateItemInput, CreateListInput, DeleteItemsInput, IdentifyProfileInput, ItemControllerFindData, ListControllerFindData, SetListItemsOrderInput, UpdateItemInput, UpdateListInput } from "@swishapp/api-client";
import type { LoadProductOptionsArgs, LoadProductOptionsResponse, LoadSelectedVariantArgs } from "./storefront-api";
import type { SwishAppOptions } from "./types";
import { LoadSelectedVariantResponse } from "./storefront-api/loadSelectedVariant";
export declare const swishApp: (options: SwishAppOptions) => Promise<SwishApp>;
export declare class SwishApp {
private readonly worker;
private readonly rpc;
private readonly options;
private initPromise?;
constructor(options: SwishAppOptions);
init(): Promise<void>;
private _init;
private storeProfile;
private deleteProfile;
readonly api: {
items: {
list: (query?: ItemControllerFindData["query"]) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").Item[]>>;
create: (body: CreateItemInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").Item>>;
delete: (body: DeleteItemsInput) => Promise<import("@swishapp/api-client").ApiResponse<unknown>>;
findById: (id: string) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").ItemDetail>>;
updateById: (id: string, body: UpdateItemInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").Item>>;
deleteById: (id: string) => Promise<void>;
};
lists: {
list: () => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").List[]>>;
findById: (id: string, query?: ListControllerFindData["query"]) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").ListDetail>>;
create: (body: CreateListInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").List>>;
updateById: (id: string, body: UpdateListInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").List>>;
deleteById: (id: string) => Promise<import("@swishapp/api-client").ApiResponse<unknown>>;
orderItems: (id: string, body: SetListItemsOrderInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").List>>;
};
profiles: {
customerAccountsVersion: () => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").AccountsVersionResult>>;
identify: (body: IdentifyProfileInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").IdentifyProfileResult>>;
};
};
readonly storefront: {
loadProductOptions: (args: LoadProductOptionsArgs) => Promise<LoadProductOptionsResponse>;
loadSelectedVariant: (args: LoadSelectedVariantArgs) => Promise<LoadSelectedVariantResponse>;
};
readonly ui: {
showSignIn: (options?: {
returnTo?: string;
}) => Promise<void>;
showVariantSelect: <TData = unknown>(options: {
productId?: string;
productHandle?: string;
variantId?: string;
displayType?: "rows" | "pills";
onSubmit: (data: TData) => void | Promise<void>;
}) => Promise<void>;
initShopBridge: ({ onShopModalOpen, }: {
onShopModalOpen: () => void;
}) => Promise<import(".").ShopBridge>;
showNotification: (options: {
title?: string;
text: string;
image?: string;
action?: {
label: string;
url?: string;
onAction?: () => void;
};
}) => Promise<void>;
};
}