From 8b67a0fae7045cf71185b039fd68a1a57835c89d Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:17:32 -0500 Subject: [PATCH 01/11] add optional chaining to getAllItems objects to fix type errors --- packages/core/src/api/get-all-items.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/api/get-all-items.ts b/packages/core/src/api/get-all-items.ts index 7262312..a129c5a 100644 --- a/packages/core/src/api/get-all-items.ts +++ b/packages/core/src/api/get-all-items.ts @@ -14,12 +14,12 @@ export async function getAllItems(postTypes: string[]): Promise { // check if postTypes are valid postTypes.forEach((postType) => { const isPostTypeValid = Object.keys(actualPostTypes).some( - (key) => actualPostTypes[key].rest_base === postType + (key) => actualPostTypes[key]?.rest_base === postType ); if (!isPostTypeValid) { const existingPostTypes = Object.keys(actualPostTypes) - .map((key) => actualPostTypes[key].rest_base) + .map((key) => actualPostTypes[key]?.rest_base) .join(", "); throw new Error( From eca822794e29f3334dd744ff61c3fbdc5b745d99 Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:21:05 -0500 Subject: [PATCH 02/11] add type to allData in getItems --- packages/core/src/api/get-items.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/api/get-items.ts b/packages/core/src/api/get-items.ts index 89f9bbd..83a96ed 100644 --- a/packages/core/src/api/get-items.ts +++ b/packages/core/src/api/get-items.ts @@ -18,7 +18,7 @@ export type Items = { }[]; export async function getItems({ restBase = "pages" }): Promise { - let allData = []; + let allData: Items = []; let page = 1; let morePagesAvailable = true; From 854bc62e9ea3038cc862022f85e56fdafdb7caf9 Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:23:23 -0500 Subject: [PATCH 03/11] add optional chaining to menu object in getMenuItems --- packages/core/src/api/get-menu-items.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/api/get-menu-items.ts b/packages/core/src/api/get-menu-items.ts index 61b7037..3a9a58d 100644 --- a/packages/core/src/api/get-menu-items.ts +++ b/packages/core/src/api/get-menu-items.ts @@ -94,7 +94,7 @@ export async function getMenuItems({ // get menu items by menu id const req = await fetch( - `${process.env.NEXT_PUBLIC_WP_URL}/wp-json/wp/v2/menu-items?menus=${menu.id}&acf_format=standard`, + `${process.env.NEXT_PUBLIC_WP_URL}/wp-json/wp/v2/menu-items?menus=${menu?.id}&acf_format=standard`, args ); @@ -103,7 +103,7 @@ export async function getMenuItems({ data = (await req.json()) as MenuResponse; } catch (err: any) { throw new Error( - `Error fetching menu items for menu id ${menu.id}: ${err.message}` + `Error fetching menu items for menu id ${menu?.id}: ${err.message}` ); } From 093263fa1a938000281f13aa5bacf889bc328708 Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:25:24 -0500 Subject: [PATCH 04/11] add type to err in getOptionsPage catch --- packages/core/src/api/get-options-page.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/api/get-options-page.ts b/packages/core/src/api/get-options-page.ts index b2516c7..6167d1e 100644 --- a/packages/core/src/api/get-options-page.ts +++ b/packages/core/src/api/get-options-page.ts @@ -64,7 +64,7 @@ code: ${data.code} ${msg}`); } - } catch (err) { + } catch (err: any) { throw new Error( `Error getting options page with slug '${slug}': ${err.message}` ); From d2543e9fa0b0ffdf0b28231e0c101a39fbe14748 Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:28:07 -0500 Subject: [PATCH 05/11] add String() function and optional chaining to objects in getNodeInfo --- packages/core/src/api/get-page-data/get-node-info.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core/src/api/get-page-data/get-node-info.ts b/packages/core/src/api/get-page-data/get-node-info.ts index ca24299..4000f67 100644 --- a/packages/core/src/api/get-page-data/get-node-info.ts +++ b/packages/core/src/api/get-page-data/get-node-info.ts @@ -39,19 +39,19 @@ export async function getNodeInfo(uri: string): Promise<{ for (const key in postTypes) { // get rest base for post type - if (uri.startsWith(postTypes[key].slug)) { - rest_base = postTypes[key].rest_base; + if (uri.startsWith(String(postTypes[key]?.slug))) { + rest_base = String(postTypes[key]?.rest_base); } // check if uri matches a post type archive uri - if (postTypes[key].has_archive === uri) { + if (postTypes[key]?.has_archive === uri) { archive = postTypes[key]; } } for (const key in taxonomies) { - if (uri.startsWith(taxonomies[key].slug)) { + if (uri.startsWith(String(taxonomies[key]?.slug))) { taxonomy = taxonomies[key]; - rest_base = taxonomy.rest_base; + rest_base = String(taxonomy?.rest_base); break; } } From 935cc3b3031bd99da8924c0dfd94353e8efdddab Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:29:55 -0500 Subject: [PATCH 06/11] add any type to err in getTaxonomies catch block --- packages/core/src/api/get-taxonomies.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/api/get-taxonomies.ts b/packages/core/src/api/get-taxonomies.ts index ec58165..b1b5780 100644 --- a/packages/core/src/api/get-taxonomies.ts +++ b/packages/core/src/api/get-taxonomies.ts @@ -24,7 +24,7 @@ export async function getTaxonomies(): Promise<{ try { const data = await req.json(); return data; - } catch (err) { + } catch (err: any) { throw new Error(`getTaxonomies: Error fetching taxonomies: ${err.message}`); } } From a8ed9e820fcb993a9431ed906b8d6caff4d42bf2 Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:32:23 -0500 Subject: [PATCH 07/11] add optional chaining to getTaxonomyPage endpoint --- packages/core/src/api/taxonomy/get-taxonomy-page.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/api/taxonomy/get-taxonomy-page.ts b/packages/core/src/api/taxonomy/get-taxonomy-page.ts index 1f38961..4843e65 100644 --- a/packages/core/src/api/taxonomy/get-taxonomy-page.ts +++ b/packages/core/src/api/taxonomy/get-taxonomy-page.ts @@ -90,7 +90,7 @@ export async function getTaxonomyPage({ } const currentPageQueryString = new URLSearchParams(params).toString(); - const endpoint = `${process.env.NEXT_PUBLIC_WP_URL}/wp-json/wp/v2/${postType.rest_base}?${currentPageQueryString}`; + const endpoint = `${process.env.NEXT_PUBLIC_WP_URL}/wp-json/wp/v2/${postType?.rest_base}?${currentPageQueryString}`; const termItemsRequest = await fetch(endpoint); try { From ca90109a4dac79613771478c82a3c734f75b0eb5 Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:40:42 -0500 Subject: [PATCH 08/11] add types to getArchivePaginationInfo and getStaticParamsFrom PaginationInfo --- .../get-archive-static-params.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/core/src/next-app-functions/generate-static-params/get-archive-static-params.ts b/packages/core/src/next-app-functions/generate-static-params/get-archive-static-params.ts index 36c3d22..3619002 100644 --- a/packages/core/src/next-app-functions/generate-static-params/get-archive-static-params.ts +++ b/packages/core/src/next-app-functions/generate-static-params/get-archive-static-params.ts @@ -1,7 +1,19 @@ import { getPostTypes } from "../../api/get-post-types"; import { getSiteSettings } from "../../api/get-site-settings"; -export async function getArchiveStaticParams({ postTypes }) { +interface GetArchivePaginationInfo { + postTypes: string[] +} + +interface GetStaticParamsFromPaginationInfo { + archiveSlug: string; + paginationInfo: { + totalPages: number | undefined; + totalItems: number | undefined; +} | null +} + +export async function getArchiveStaticParams({ postTypes }: GetArchivePaginationInfo) { const wpPostTypes = await getPostTypes(); const settings = await getSiteSettings(); const staticParams: { paths: string[] }[] = []; @@ -135,7 +147,7 @@ async function getArchivePaginationInfo({ } } -function getStaticParamsFromPaginationInfo({ archiveSlug, paginationInfo }) { +function getStaticParamsFromPaginationInfo({ archiveSlug, paginationInfo }: GetStaticParamsFromPaginationInfo) { const staticParams = []; for (let i = 1; i <= paginationInfo.totalPages; i++) { From 2d530036a2de3d48b97b14e3385fbd5110b96d87 Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:46:36 -0500 Subject: [PATCH 09/11] add Number()/String() and optional chaining to get-archive-static-params.ts --- .../get-archive-static-params.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/core/src/next-app-functions/generate-static-params/get-archive-static-params.ts b/packages/core/src/next-app-functions/generate-static-params/get-archive-static-params.ts index 3619002..3db7775 100644 --- a/packages/core/src/next-app-functions/generate-static-params/get-archive-static-params.ts +++ b/packages/core/src/next-app-functions/generate-static-params/get-archive-static-params.ts @@ -30,7 +30,7 @@ export async function getArchiveStaticParams({ postTypes }: GetArchivePagination const paginationInfo = await getArchivePaginationInfo({ rest_base: "posts", - per_page: settings.posts_per_page, + per_page: Number(settings.posts_per_page), }); const postArchiveStaticParams = getStaticParamsFromPaginationInfo({ @@ -46,17 +46,17 @@ export async function getArchiveStaticParams({ postTypes }: GetArchivePagination for (const postType of postTypes) { const itemKey = Object.keys(wpPostTypes).find( - (key) => wpPostTypes[key].rest_base === postType + (key) => wpPostTypes[key]?.rest_base === postType ); - const matchingPostType = wpPostTypes[itemKey]; + const matchingPostType = wpPostTypes[String(itemKey)]; if ( - matchingPostType.has_archive && + matchingPostType?.has_archive && typeof matchingPostType.has_archive === "string" ) { const paginationInfo = await getArchivePaginationInfo({ rest_base: matchingPostType.rest_base, - per_page: settings.posts_per_page, + per_page: Number(settings.posts_per_page), }); const postTypeArchiveStaticParams = getStaticParamsFromPaginationInfo({ @@ -150,7 +150,7 @@ async function getArchivePaginationInfo({ function getStaticParamsFromPaginationInfo({ archiveSlug, paginationInfo }: GetStaticParamsFromPaginationInfo) { const staticParams = []; - for (let i = 1; i <= paginationInfo.totalPages; i++) { + for (let i = 1; i <= Number(paginationInfo?.totalPages); i++) { if (i === 1) { continue; } From dde28d79d8ac2791eff5697afe82ff2811919fa9 Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:50:03 -0500 Subject: [PATCH 10/11] add Number() and optional chaining to get-taxonomy-static-params.ts --- .../get-taxonomy-static-params.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core/src/next-app-functions/generate-static-params/get-taxonomy-static-params.ts b/packages/core/src/next-app-functions/generate-static-params/get-taxonomy-static-params.ts index dd97c2f..c1e2278 100644 --- a/packages/core/src/next-app-functions/generate-static-params/get-taxonomy-static-params.ts +++ b/packages/core/src/next-app-functions/generate-static-params/get-taxonomy-static-params.ts @@ -13,7 +13,7 @@ export async function getTaxonomyStaticParams({ for (const postType of postTypes) { const itemKey = Object.keys(wpPostTypes).find( - (key) => wpPostTypes[key].rest_base === postType + (key) => wpPostTypes[key]?.rest_base === postType ); if (!itemKey) { continue; @@ -21,7 +21,7 @@ export async function getTaxonomyStaticParams({ const matchingPostType = wpPostTypes[itemKey]; const hasArchive = - matchingPostType.has_archive && + matchingPostType?.has_archive && typeof matchingPostType.has_archive === "string"; const isPosts = matchingPostType.rest_base === "posts"; @@ -139,13 +139,13 @@ function getStaticParamsFromPaginationInfo({ }: { paths: string[]; paginationInfo: { - totalPages: number; - totalItems: number; + totalPages?: number; + totalItems?: number; }; }) { const staticParams = []; - for (let i = 1; i <= paginationInfo.totalPages; i++) { + for (let i = 1; i <= Number(paginationInfo.totalPages); i++) { if (i === 1) { continue; } From 2c34d07b4d2af6f2cd9e41151827f506d73de12b Mon Sep 17 00:00:00 2001 From: mosesintech Date: Fri, 22 Mar 2024 11:51:47 -0500 Subject: [PATCH 11/11] add any type to err in revalidate catch block --- packages/core/src/route-handlers/revalidate.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/route-handlers/revalidate.ts b/packages/core/src/route-handlers/revalidate.ts index 0dad189..71b1c3d 100644 --- a/packages/core/src/route-handlers/revalidate.ts +++ b/packages/core/src/route-handlers/revalidate.ts @@ -38,7 +38,7 @@ export async function revalidate(request: Request) { message: `Paths revalidated: ${correctPaths.join(", ")}`, }) ); - } catch (err) { + } catch (err: any) { return new Response(JSON.stringify({ message: err.message })); } }