import type { RecursivePartial, RecursiveRequired } from '../utils/types' import filterEdges from '../utils/filter-edges' import { BigcommerceConfig, getConfig } from '..' import { definitions } from '../definitions/store-content' export type Page = definitions['page_Full'] export type GetAllPagesResult< T extends { pages: any[] } = { pages: Page[] } > = T async function getAllPages(opts?: { config?: BigcommerceConfig }): Promise async function getAllPages(opts: { url: string config?: BigcommerceConfig }): Promise> async function getAllPages({ config, }: { url?: string config?: BigcommerceConfig } = {}): Promise { config = getConfig(config) // RecursivePartial forces the method to check for every prop in the data, which is // required in case there's a custom `url` const { data } = await config.storeApiFetch< RecursivePartial<{ data: Page[] }> >('/v3/content/pages') return { pages: (data as RecursiveRequired) ?? [], } } export default getAllPages