contentful-utility-suite
Version:
Suite of utilities for Contentful CMS
53 lines (52 loc) • 1.53 kB
JavaScript
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,
};
}