@shopify/shopify-api
Version:
Shopify API Library for Node - accelerate development with support for authentication, graphql proxy, webhooks
78 lines (68 loc) • 2.62 kB
text/typescript
import type {
AbstractFetchFunc,
AbstractConvertRequestFunc,
AbstractConvertIncomingResponseFunc,
AbstractConvertResponseFunc,
NormalizedResponse,
AbstractConvertHeadersFunc,
} from './types';
export * from './cookies';
export * from './headers';
export * from './utils';
export * from './types';
export function isOK(resp: NormalizedResponse) {
// https://fetch.spec.whatwg.org/#ok-status
return resp.statusCode >= 200 && resp.statusCode <= 299;
}
// We ignore mutable export linting errors because we explicitly want these abstract functions to be overwritten.
// eslint-disable-next-line import/no-mutable-exports
export let abstractFetch: AbstractFetchFunc = () => {
throw new Error(
"Missing adapter implementation for 'abstractFetch' - make sure to import the appropriate adapter for your platform",
);
};
export function setAbstractFetchFunc(func: AbstractFetchFunc) {
abstractFetch = func;
}
// eslint-disable-next-line import/no-mutable-exports
export let abstractConvertRequest: AbstractConvertRequestFunc = () => {
throw new Error(
"Missing adapter implementation for 'abstractConvertRequest' - make sure to import the appropriate adapter for your platform",
);
};
export function setAbstractConvertRequestFunc(
func: AbstractConvertRequestFunc,
) {
abstractConvertRequest = func;
}
// By default we just return an empty NormalizedResponse because not all adapters will need to convert an incoming response
// eslint-disable-next-line import/no-mutable-exports
export let abstractConvertIncomingResponse: AbstractConvertIncomingResponseFunc =
() => Promise.resolve({} as NormalizedResponse);
export function setAbstractConvertIncomingResponseFunc(
func: AbstractConvertIncomingResponseFunc,
) {
abstractConvertIncomingResponse = func;
}
// eslint-disable-next-line import/no-mutable-exports
export let abstractConvertResponse: AbstractConvertResponseFunc = () => {
throw new Error(
"Missing adapter implementation for 'abstractConvertResponse' - make sure to import the appropriate adapter for your platform",
);
};
export function setAbstractConvertResponseFunc(
func: AbstractConvertResponseFunc,
) {
abstractConvertResponse = func;
}
// eslint-disable-next-line import/no-mutable-exports
export let abstractConvertHeaders: AbstractConvertHeadersFunc = () => {
throw new Error(
"Missing adapter implementation for 'abstractConvertHeaders' - make sure to import the appropriate adapter for your platform",
);
};
export function setAbstractConvertHeadersFunc(
func: AbstractConvertHeadersFunc,
) {
abstractConvertHeaders = func;
}