Add get-all-pages operator

Signed-off-by: Chloe <pinkcloudvnn@gmail.com>
This commit is contained in:
Chloe 2022-04-20 16:00:18 +07:00
parent 8eda86ae82
commit 29b0e064a9
4 changed files with 1442 additions and 1401 deletions

View File

@ -10,10 +10,7 @@
], ],
"generates": { "generates": {
"./schema.d.ts": { "./schema.d.ts": {
"plugins": ["typescript", "typescript-operations"], "plugins": ["typescript", "typescript-operations"]
"config": {
"avoidOptionals": true
}
}, },
"./schema.graphql": { "./schema.graphql": {
"plugins": ["schema-ast"] "plugins": ["schema-ast"]

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,44 @@
import type {
OperationContext,
OperationOptions,
} from '@vercel/commerce/api/operations'
import { GetAllPagesOperation } from '../../types/page'
import type { OpenCommerceConfig, Provider } from '../index'
export type Page = { url: string } export type Page = { url: string }
export type GetAllPagesResult = { pages: Page[] } export type GetAllPagesResult = { pages: Page[] }
import type { OpenCommerceConfig } from '../index'
export default function getAllPagesOperation() { export default function getAllPagesOperation({
function getAllPages({ commerce,
}: OperationContext<Provider>) {
async function getAllPages<T extends GetAllPagesOperation>(opts?: {
config?: Partial<OpenCommerceConfig>
preview?: boolean
}): Promise<T['data']>
async function getAllPages<T extends GetAllPagesOperation>(
opts: {
config?: Partial<OpenCommerceConfig>
preview?: boolean
} & OperationOptions
): Promise<T['data']>
async function getAllPages<T extends GetAllPagesOperation>(
opts: {
config?: Partial<OpenCommerceConfig>
preview?: boolean
} & OperationOptions
): Promise<T['data']>
async function getAllPages<T extends GetAllPagesOperation>({
config, config,
preview, preview,
}: { }: {
url?: string url?: string
config?: Partial<OpenCommerceConfig> config?: Partial<OpenCommerceConfig>
preview?: boolean preview?: boolean
}): Promise<GetAllPagesResult> { } = {}): Promise<GetAllPagesResult> {
return Promise.resolve({ return Promise.resolve({
pages: [], pages: [],
}) })

View File

@ -0,0 +1,11 @@
import * as Core from '@vercel/commerce/types/page'
export * from '@vercel/commerce/types/page'
export type Page = Core.Page
export type PageTypes = {
page: Page
}
export type GetAllPagesOperation = Core.GetAllPagesOperation<PageTypes>
export type GetPageOperation = Core.GetPageOperation<PageTypes>