Skip to content

Commit

Permalink
fix: tags implementation
Browse files Browse the repository at this point in the history
 - shopify's pagination is broken for productTags, lol
  • Loading branch information
chase-moskal committed Jul 4, 2023
1 parent f03be3e commit 6921b83
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 14 deletions.
9 changes: 3 additions & 6 deletions s/requests/tags.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,21 @@ import {GqlPaginated, paginated_node} from "./units/paginated.js"
import {default_page_size} from "../parts/remote/defaults/default_page_size.js"

export function make_request_for_tags({
after,
page_size = default_page_size,
}: {
after?: string
page_size?: number
}): GraphRequest {

return {

query: gql`
query FetchTags($first: Int!, $after: String) {
productTags(first: $first, after: $after) {
query FetchTags($first: Int!) {
productTags(first: $first) {
${paginated_node()}
}
}
`,

variables: {
after,
first: page_size,
},
}
Expand Down
13 changes: 5 additions & 8 deletions s/shopify.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@

import {GqlTags} from "./requests/tags.js"
import {Remote} from "./parts/remote/remote.js"
import {concurrent} from "./utils/concurrent.js"
import {ImageFormat} from "./requests/units/image.js"
import {paginate} from "./parts/pagination/paginate.js"
import {GqlShop, make_request_for_shop} from "./requests/shop.js"
import {GqlTags, make_request_for_tags} from "./requests/tags.js"
import {ShopifySettings} from "./parts/remote/types/shopify_settings.js"
import {GqlProducts, make_request_for_products} from "./requests/products.js"
import {default_page_size} from "./parts/remote/defaults/default_page_size.js"
Expand Down Expand Up @@ -82,14 +82,11 @@ export class Shopify {
page_size?: number
} = {}) {

yield* paginate(
async({after}) => (await this.remote.request<GqlTags>(
make_request_for_collections({
after,
page_size,
})
)).productTags
const result = await this.remote.request<GqlTags>(
make_request_for_tags({page_size})
)

yield result.productTags.edges.map(e => e.node)
}

async *products_in_collection({
Expand Down

0 comments on commit 6921b83

Please sign in to comment.