contentful-management
Version:
Client for Contentful's Content Management API
30 lines (29 loc) • 1.02 kB
JavaScript
/* eslint-disable @typescript-eslint/ban-ts-comment */
import { toPlainObject } from 'contentful-sdk-core';
import copy from 'fast-copy';
/**
* @private
*/
export const wrapCollection = fn => (makeRequest, data, ...rest) => {
const collectionData = toPlainObject(copy(data));
// @ts-expect-error
collectionData.items = collectionData.items.map(entity => fn(makeRequest, entity, ...rest));
// @ts-expect-error
return collectionData;
};
export const wrapCursorPaginatedCollection = fn => (makeRequest, data, ...rest) => {
const collectionData = toPlainObject(copy(data));
// @ts-expect-error
collectionData.items = collectionData.items.map(entity => fn(makeRequest, entity, ...rest));
// @ts-expect-error
return collectionData;
};
export function isSuccessful(statusCode) {
return statusCode < 300;
}
export function shouldRePoll(statusCode) {
return [404, 422, 429, 400].includes(statusCode);
}
export async function waitFor(ms = 1000) {
return new Promise(resolve => setTimeout(resolve, ms));
}