UNPKG

contentful-utility-suite

Version:
53 lines (52 loc) 1.53 kB
import { Utils } from "./Utils.js"; export async function runQuery({ envID, space, gqlFile }) { const totalRes = await Utils.fetchGraphQL({ envID, space, query: ` query { ${gqlFile.collectionsKey}(limit: 1) { total } } `, }); if (totalRes.errors) { return { error: true, errorMessage: totalRes.errors.map((err) => err.message)[0], }; } const totalItems = totalRes.data?.[gqlFile.collectionsKey].total ?? 0; const items = []; for (let skip = 0; skip < totalItems; skip += 500) { const res = await Utils.fetchGraphQL({ envID, space, query: ` query { ${gqlFile.collectionsKey}(limit: 500, skip: ${skip}) { items { sys { id } ${gqlFile.fields.join("\n")} } } } `, }); if (res.errors?.length) { return { error: true, errorMessage: res.errors.map((err) => err.message).join("\n"), }; } const fetchedItems = res.data?.[gqlFile.collectionsKey].items ?? []; items.push(...fetchedItems); } return { error: false, res: items, }; }