parallelize requests

This commit is contained in:
Shu Ding 2021-06-04 16:30:07 +02:00
parent bb9cfa0cd1
commit 4e6c1628a6
No known key found for this signature in database
GPG Key ID: 899520937F032E83
11 changed files with 43 additions and 23 deletions

View File

@ -1,4 +1,4 @@
import { useKeenSlider } from 'keen-slider/react' import { useKeenSlider } from 'keen-slider/react.esm.js'
import React, { import React, {
Children, Children,
FC, FC,

View File

@ -1,6 +1,6 @@
.swatch { .swatch {
box-sizing: border-box; box-sizing: border-box;
composes: root from 'components/ui/Button/Button.module.css'; composes: root from '@components/ui/Button/Button.module.css';
@apply h-10 w-10 bg-primary text-primary rounded-full mr-3 inline-flex @apply h-10 w-10 bg-primary text-primary rounded-full mr-3 inline-flex
items-center justify-center cursor-pointer transition duration-150 ease-in-out items-center justify-center cursor-pointer transition duration-150 ease-in-out
p-0 shadow-none border-gray-200 border box-border; p-0 shadow-none border-gray-200 border box-border;

View File

@ -19,8 +19,10 @@ const getSiteInfo = async (options?: {
config = getConfig(config) config = getConfig(config)
const categories = await getCategories(config) const categoriesPromise = getCategories(config)
const brands = await getVendors(config) const brandsPromise = getVendors(config)
const categories = await categoriesPromise
const brands = await brandsPromise
return { return {
categories, categories,

View File

@ -16,8 +16,10 @@ export async function getStaticProps({
locales, locales,
}: GetStaticPropsContext<{ pages: string[] }>) { }: GetStaticPropsContext<{ pages: string[] }>) {
const config = { locale, locales } const config = { locale, locales }
const { pages } = await commerce.getAllPages({ config, preview }) const pagesPromise = commerce.getAllPages({ config, preview })
const { categories } = await commerce.getSiteInfo({ config, preview }) const siteInfoPromise = commerce.getSiteInfo({ config, preview })
const { pages } = await pagesPromise
const { categories } = await siteInfoPromise
const path = params?.pages.join('/') const path = params?.pages.join('/')
const slug = locale ? `${locale}/${path}` : path const slug = locale ? `${locale}/${path}` : path
const pageItem = pages.find((p) => (p.url ? getSlug(p.url) === slug : false)) const pageItem = pages.find((p) => (p.url ? getSlug(p.url) === slug : false))

View File

@ -13,8 +13,10 @@ export async function getStaticProps({
locales, locales,
}: GetStaticPropsContext) { }: GetStaticPropsContext) {
const config = { locale, locales } const config = { locale, locales }
const { pages } = await commerce.getAllPages({ config, preview }) const pagesPromise = commerce.getAllPages({ config, preview })
const { categories } = await commerce.getSiteInfo({ config, preview }) const siteInfoPromise = commerce.getSiteInfo({ config, preview })
const { pages } = await pagesPromise
const { categories } = await siteInfoPromise
return { return {
props: { pages, categories }, props: { pages, categories },
} }

View File

@ -16,8 +16,10 @@ export async function getStaticProps({
config, config,
preview, preview,
}) })
const { categories, brands } = await commerce.getSiteInfo({ config, preview }) const pagesPromise = commerce.getAllPages({ config, preview })
const { pages } = await commerce.getAllPages({ config, preview }) const siteInfoPromise = commerce.getSiteInfo({ config, preview })
const { pages } = await pagesPromise
const { categories, brands } = await siteInfoPromise
return { return {
props: { props: {

View File

@ -10,8 +10,10 @@ export async function getStaticProps({
locales, locales,
}: GetStaticPropsContext) { }: GetStaticPropsContext) {
const config = { locale, locales } const config = { locale, locales }
const { pages } = await commerce.getAllPages({ config, preview }) const pagesPromise = commerce.getAllPages({ config, preview })
const { categories } = await commerce.getSiteInfo({ config, preview }) const siteInfoPromise = commerce.getSiteInfo({ config, preview })
const { pages } = await pagesPromise
const { categories } = await siteInfoPromise
return { return {
props: { pages, categories }, props: { pages, categories },

View File

@ -15,19 +15,22 @@ export async function getStaticProps({
preview, preview,
}: GetStaticPropsContext<{ slug: string }>) { }: GetStaticPropsContext<{ slug: string }>) {
const config = { locale, locales } const config = { locale, locales }
const { pages } = await commerce.getAllPages({ config, preview }) const pagesPromise = commerce.getAllPages({ config, preview })
const { categories } = await commerce.getSiteInfo({ config, preview }) const siteInfoPromise = commerce.getSiteInfo({ config, preview })
const { product } = await commerce.getProduct({ const productPromise = commerce.getProduct({
variables: { slug: params!.slug }, variables: { slug: params!.slug },
config, config,
preview, preview,
}) })
const allProductsPromise = commerce.getAllProducts({
const { products: relatedProducts } = await commerce.getAllProducts({
variables: { first: 4 }, variables: { first: 4 },
config, config,
preview, preview,
}) })
const { pages } = await pagesPromise
const { categories } = await siteInfoPromise
const { product } = await productPromise
const { products: relatedProducts } = await allProductsPromise
if (!product) { if (!product) {
throw new Error(`Product with slug '${params!.slug}' not found`) throw new Error(`Product with slug '${params!.slug}' not found`)

View File

@ -10,8 +10,10 @@ export async function getStaticProps({
locales, locales,
}: GetStaticPropsContext) { }: GetStaticPropsContext) {
const config = { locale, locales } const config = { locale, locales }
const { pages } = await commerce.getAllPages({ config, preview }) const pagesPromise = commerce.getAllPages({ config, preview })
const { categories } = await commerce.getSiteInfo({ config, preview }) const siteInfoPromise = commerce.getSiteInfo({ config, preview })
const { pages } = await pagesPromise
const { categories } = await siteInfoPromise
return { return {
props: { pages, categories }, props: { pages, categories },

View File

@ -36,8 +36,11 @@ export async function getStaticProps({
locales, locales,
}: GetStaticPropsContext) { }: GetStaticPropsContext) {
const config = { locale, locales } const config = { locale, locales }
const { pages } = await commerce.getAllPages({ config, preview }) const pagesPromise = commerce.getAllPages({ config, preview })
const { categories, brands } = await commerce.getSiteInfo({ config, preview }) const siteInfoPromise = commerce.getSiteInfo({ config, preview })
const { pages } = await pagesPromise
const { categories, brands } = await siteInfoPromise
return { return {
props: { props: {
pages, pages,

View File

@ -20,8 +20,10 @@ export async function getStaticProps({
} }
const config = { locale, locales } const config = { locale, locales }
const { pages } = await commerce.getAllPages({ config, preview }) const pagesPromise = commerce.getAllPages({ config, preview })
const { categories } = await commerce.getSiteInfo({ config, preview }) const siteInfoPromise = commerce.getSiteInfo({ config, preview })
const { pages } = await pagesPromise
const { categories } = await siteInfoPromise
return { return {
props: { props: {