From 46e6d309dbccb6d3a22f61136555ad680b0421b9 Mon Sep 17 00:00:00 2001 From: Egor Mesyats Date: Wed, 23 Sep 2020 16:21:04 +0300 Subject: [PATCH 1/6] refactor: `src/product` folder --- src/index.ts | 3 ++- src/product/{fetcher.ts => fetchProduct.ts} | 6 ++--- src/product/index.ts | 22 ------------------- src/product/product.ts | 6 ++--- .../{normalizer.ts => productNormalizer.ts} | 4 ++-- src/product/{query.ts => productQuery.ts} | 4 ++-- src/product/reviews/index.ts | 2 -- src/product/{ => slots}/productSlots.ts | 0 .../{ => suggestions}/productSuggestions.ts | 2 +- src/types/Connector.ts | 6 ++--- 10 files changed, 16 insertions(+), 39 deletions(-) rename src/product/{fetcher.ts => fetchProduct.ts} (63%) delete mode 100644 src/product/index.ts rename src/product/{normalizer.ts => productNormalizer.ts} (97%) rename src/product/{query.ts => productQuery.ts} (96%) delete mode 100644 src/product/reviews/index.ts rename src/product/{ => slots}/productSlots.ts (100%) rename src/product/{ => suggestions}/productSuggestions.ts (75%) diff --git a/src/index.ts b/src/index.ts index 0b6ad2b..0b360e7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,8 @@ export { default as updateCartItem } from './cart/updateCartItem'; export { default as removeCartItem } from './cart/removeCartItem'; export { default as cart } from './cart'; export { default as fetchWithGraphQl } from './fetchWithGraphQl'; -export { default as product } from './product'; +export { default as product } from './product/product'; +export { default as productSuggestions } from './product/suggestions/productSuggestions'; export { default as routes } from './routes'; export { default as session } from './session'; export { default as signIn } from './session/signIn'; diff --git a/src/product/fetcher.ts b/src/product/fetchProduct.ts similarity index 63% rename from src/product/fetcher.ts rename to src/product/fetchProduct.ts index 06ab908..0874fd1 100644 --- a/src/product/fetcher.ts +++ b/src/product/fetchProduct.ts @@ -1,13 +1,13 @@ import fetchWithGraphQl from '../fetchWithGraphQl'; -import productQuery from './query'; +import productQuery from './productQuery'; /** * Magento 2: product fetcher */ -async function fetcher(productId): Promise { +async function fetchProduct(productId): Promise { const pid = productId.replace('.html', ''); const rawData = await fetchWithGraphQl(productQuery(pid)); return rawData; } -export default fetcher; +export default fetchProduct; diff --git a/src/product/index.ts b/src/product/index.ts deleted file mode 100644 index 442ecb6..0000000 --- a/src/product/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -import productQuery from './query'; -import fetchProduct from './fetcher'; -import normalizeProduct from './normalizer'; -import product from './product'; - -/** - * Usage example (in handler): - * - * import { fetchProduct, normalizeProduct } from 'api/magento/product'; - * ... - * ... - * const rawData = await fetchProduct(productId); - * const data = normalizeProduct(rawData); - * ... - * ... - */ -export default product; -export { - productQuery, - fetchProduct, - normalizeProduct, -}; diff --git a/src/product/product.ts b/src/product/product.ts index 563c121..024042a 100644 --- a/src/product/product.ts +++ b/src/product/product.ts @@ -1,13 +1,13 @@ import Result from 'react-storefront-connector/Result'; -import fetch from './fetcher'; -import normalize from './normalizer'; +import fetchProduct from './fetchProduct'; +import productNormalizer from './productNormalizer'; import withAppData from '../app/withAppData'; import ProductPageData from '../types/ProductPageData'; export default async function product({ id/* , color, size */ }, req/* , res */): Promise> { return withAppData(req, async () => { id = id.replace('.html', ''); // eslint-disable-line no-param-reassign - const normalizedProduct = normalize(await fetch(id), id); + const normalizedProduct = productNormalizer(await fetchProduct(id), id); return { title: `Product ${id}`, diff --git a/src/product/normalizer.ts b/src/product/productNormalizer.ts similarity index 97% rename from src/product/normalizer.ts rename to src/product/productNormalizer.ts index 9025d90..c806e5d 100644 --- a/src/product/normalizer.ts +++ b/src/product/productNormalizer.ts @@ -130,7 +130,7 @@ function specsToHtml(specs) { /** * Magento 2: product normalizer */ -function normalizer(rawData, productId): Product | null { +function productNormalizer(rawData, productId): Product | null { const rawProduct = get(rawData, 'data.products.items[0]'); const rawCustomAttributes = get(rawData, 'data.customAttributeMetadata.items', []); @@ -161,4 +161,4 @@ function normalizer(rawData, productId): Product | null { }; } -export default normalizer; +export default productNormalizer; diff --git a/src/product/query.ts b/src/product/productQuery.ts similarity index 96% rename from src/product/query.ts rename to src/product/productQuery.ts index 9bf67cc..2045d55 100644 --- a/src/product/query.ts +++ b/src/product/productQuery.ts @@ -33,7 +33,7 @@ const customAttributeMetadata = ` /** * Magento 2: product query */ -const query = (urlKey): GraphQlQuery => ({ +const productQuery = (urlKey): GraphQlQuery => ({ query: ` { ${customAttributeMetadata} @@ -123,4 +123,4 @@ const query = (urlKey): GraphQlQuery => ({ `, }); -export default query; +export default productQuery; diff --git a/src/product/reviews/index.ts b/src/product/reviews/index.ts deleted file mode 100644 index 6b4a808..0000000 --- a/src/product/reviews/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -// eslint-disable-next-line import/prefer-default-export -export { default as fetchProductReviews } from './fetchProductReviews'; diff --git a/src/product/productSlots.ts b/src/product/slots/productSlots.ts similarity index 100% rename from src/product/productSlots.ts rename to src/product/slots/productSlots.ts diff --git a/src/product/productSuggestions.ts b/src/product/suggestions/productSuggestions.ts similarity index 75% rename from src/product/productSuggestions.ts rename to src/product/suggestions/productSuggestions.ts index 2c454c8..bdffaa8 100644 --- a/src/product/productSuggestions.ts +++ b/src/product/suggestions/productSuggestions.ts @@ -1,4 +1,4 @@ -import { Product } from '../types/ProductPageData'; +import { Product } from '../../types/ProductPageData'; /** * @TODO: implement diff --git a/src/types/Connector.ts b/src/types/Connector.ts index bfd0897..0b71ad0 100644 --- a/src/types/Connector.ts +++ b/src/types/Connector.ts @@ -4,9 +4,9 @@ import cart from '../cart'; import addToCart from '../cart/addToCart'; import updateCartItem from '../cart/updateCartItem'; import removeCartItem from '../cart/removeCartItem'; -import product from '../product'; -import productSlots from '../product/productSlots'; -import productSuggestions from '../product/productSuggestions'; +import product from '../product/product'; +import productSlots from '../product/slots/productSlots'; +import productSuggestions from '../product/suggestions/productSuggestions'; import routes from '../routes'; import session from '../session'; import signIn from '../session/signIn'; From e812f736178a18817f639585977348d83e2bb56f Mon Sep 17 00:00:00 2001 From: Egor Mesyats Date: Wed, 23 Sep 2020 17:22:26 +0300 Subject: [PATCH 2/6] refactor: `src/home` folder --- src/home/index.ts | 3 --- src/index.ts | 2 +- src/types/Connector.ts | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 src/home/index.ts diff --git a/src/home/index.ts b/src/home/index.ts deleted file mode 100644 index 8a6508c..0000000 --- a/src/home/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import home from './home'; - -export default home; diff --git a/src/index.ts b/src/index.ts index 0b360e7..c9a0ef2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -export { default as home } from './home'; +export { default as home } from './home/home'; export { default as addToCart } from './cart/addToCart'; export { default as updateCartItem } from './cart/updateCartItem'; export { default as removeCartItem } from './cart/removeCartItem'; diff --git a/src/types/Connector.ts b/src/types/Connector.ts index 0b71ad0..c622795 100644 --- a/src/types/Connector.ts +++ b/src/types/Connector.ts @@ -1,5 +1,5 @@ import Connector from 'react-storefront-connector'; -import home from '../home'; +import home from '../home/home'; import cart from '../cart'; import addToCart from '../cart/addToCart'; import updateCartItem from '../cart/updateCartItem'; From 658841d3e9ebf275976d21128e561e6871785e02 Mon Sep 17 00:00:00 2001 From: Egor Mesyats Date: Wed, 23 Sep 2020 17:26:55 +0300 Subject: [PATCH 3/6] refactor: `src/menu` folder --- src/app/getAppData.ts | 5 +++-- src/menu/{fetcher.ts => fetchMenu.ts} | 6 +++--- src/menu/index.ts | 20 ------------------- src/menu/{normalizer.ts => menuNormalizer.ts} | 4 ++-- src/menu/{query.ts => menuQuery.ts} | 4 ++-- 5 files changed, 10 insertions(+), 29 deletions(-) rename src/menu/{fetcher.ts => fetchMenu.ts} (79%) delete mode 100644 src/menu/index.ts rename src/menu/{normalizer.ts => menuNormalizer.ts} (90%) rename src/menu/{query.ts => menuQuery.ts} (96%) diff --git a/src/app/getAppData.ts b/src/app/getAppData.ts index 3bbe6fd..b4b192a 100644 --- a/src/app/getAppData.ts +++ b/src/app/getAppData.ts @@ -3,7 +3,8 @@ import isEmpty from 'lodash/isEmpty'; import pick from 'lodash/pick'; import MenuItem from 'react-storefront-connector/MenuItem'; import AppData from 'react-storefront-connector/AppData'; -import { fetchMenu, normalizeMenu } from '../menu'; +import fetchMenu from '../menu/fetchMenu'; +import menuNormalizer from '../menu/menuNormalizer'; function normalizeMenuItems(items: any[]): MenuItem[] { if (isEmpty(items)) { @@ -30,7 +31,7 @@ function getTabs(menu: MenuItem): MenuItem[] { export default async function getAppData(): Promise { const rawData = await fetchMenu({ numberOfLevels: 3 }); - const menuItems = normalizeMenu(rawData); + const menuItems = menuNormalizer(rawData); const menu: MenuItem = { header: 'header', footer: 'footer', diff --git a/src/menu/fetcher.ts b/src/menu/fetchMenu.ts similarity index 79% rename from src/menu/fetcher.ts rename to src/menu/fetchMenu.ts index 42867ef..d93a0c7 100644 --- a/src/menu/fetcher.ts +++ b/src/menu/fetchMenu.ts @@ -1,10 +1,10 @@ import fetchWithGraphQl from '../fetchWithGraphQl'; -import menuQuery from './query'; +import menuQuery from './menuQuery'; /** * Magento 2: menu fetcher */ -async function fetcher({ +async function fetchMenu({ numberOfLevels = 2, menuItemFields = [ 'name', @@ -18,4 +18,4 @@ async function fetcher({ return rawData; } -export default fetcher; +export default fetchMenu; diff --git a/src/menu/index.ts b/src/menu/index.ts deleted file mode 100644 index 61b4e37..0000000 --- a/src/menu/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import menuQuery from './query'; -import fetchMenu from './fetcher'; -import normalizeMenu from './normalizer'; - -/** - * Usage example (in handler): - * - * import { fetchMenu, normalizeMenu } from 'api/magento/menu'; - * ... - * ... - * const rawData = await fetchMenu({}); - * const data = normalizeMenu(rawData); - * ... - * ... - */ -export { - menuQuery, - fetchMenu, - normalizeMenu, -}; diff --git a/src/menu/normalizer.ts b/src/menu/menuNormalizer.ts similarity index 90% rename from src/menu/normalizer.ts rename to src/menu/menuNormalizer.ts index 133ebcb..c84051a 100644 --- a/src/menu/normalizer.ts +++ b/src/menu/menuNormalizer.ts @@ -14,7 +14,7 @@ function normalizeItems(children): any[] { /** * Magento 2: menu normalizer */ -function normalizer(rawData): any[] { +function menuNormalizer(rawData): any[] { const rawMenu = get(rawData, 'data.categoryList', []) .filter((menu) => get(menu, 'level') === 1)[0]; const children = get(rawMenu, 'children', []); @@ -22,4 +22,4 @@ function normalizer(rawData): any[] { return menu; } -export default normalizer; +export default menuNormalizer; diff --git a/src/menu/query.ts b/src/menu/menuQuery.ts similarity index 96% rename from src/menu/query.ts rename to src/menu/menuQuery.ts index f307ccd..9fb1b55 100644 --- a/src/menu/query.ts +++ b/src/menu/menuQuery.ts @@ -21,7 +21,7 @@ function getFullInnerSchema(menuItemFields, numberOfLevels): string { /** * Magento 2: menu Graph QL query */ -const query = ({ +const menuQuery = ({ numberOfLevels = 2, menuItemFields = [ 'name', @@ -45,4 +45,4 @@ const query = ({ }; }; -export default query; +export default menuQuery; From 61b14980dcc9b3323f4e816321f77d3031b09d4b Mon Sep 17 00:00:00 2001 From: Egor Mesyats Date: Wed, 23 Sep 2020 17:37:35 +0300 Subject: [PATCH 4/6] refactor: `src/cms` folder --- src/cms/blocks/fetcher.ts | 13 ------------ src/cms/blocks/index.ts | 20 ------------------- .../normalizer.ts => cmsBlocksNormalizer.ts} | 6 +++--- .../{blocks/query.ts => cmsBlocksQuery.ts} | 6 +++--- src/cms/fetchCmsBlocks.ts | 13 ++++++++++++ src/subcategory/subcategory.ts | 5 +++-- 6 files changed, 22 insertions(+), 41 deletions(-) delete mode 100644 src/cms/blocks/fetcher.ts delete mode 100644 src/cms/blocks/index.ts rename src/cms/{blocks/normalizer.ts => cmsBlocksNormalizer.ts} (90%) rename src/cms/{blocks/query.ts => cmsBlocksQuery.ts} (60%) create mode 100644 src/cms/fetchCmsBlocks.ts diff --git a/src/cms/blocks/fetcher.ts b/src/cms/blocks/fetcher.ts deleted file mode 100644 index 6467522..0000000 --- a/src/cms/blocks/fetcher.ts +++ /dev/null @@ -1,13 +0,0 @@ -import fetchWithGraphQl from '../../fetchWithGraphQl'; -import cmsBlocksQuery from './query'; - -/** - * Magento 2: cms blocks fetcher - */ -async function fetcher({ identifiers }): Promise { - const query = cmsBlocksQuery({ identifiers }); - const rawData = await fetchWithGraphQl(query); - return rawData; -} - -export default fetcher; diff --git a/src/cms/blocks/index.ts b/src/cms/blocks/index.ts deleted file mode 100644 index ab05a0a..0000000 --- a/src/cms/blocks/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import cmsBlocksQuery from './query'; -import fetchCmsBlocks from './fetcher'; -import normalizeCmsBlocks from './normalizer'; - -/** - * Usage example (in handler): - * - * import { fetchCmsBlocks, normalizeCmsBlocks } from 'api/magento/cms/blocks'; - * ... - * ... - * const rawData = await fetchCmsBlocks({ identifiers }); - * const data = normalizeCmsBlocks(rawData); - * ... - * ... - */ -export { - cmsBlocksQuery, - fetchCmsBlocks, - normalizeCmsBlocks, -}; diff --git a/src/cms/blocks/normalizer.ts b/src/cms/cmsBlocksNormalizer.ts similarity index 90% rename from src/cms/blocks/normalizer.ts rename to src/cms/cmsBlocksNormalizer.ts index 4cf4b99..300c283 100644 --- a/src/cms/blocks/normalizer.ts +++ b/src/cms/cmsBlocksNormalizer.ts @@ -1,11 +1,11 @@ import get from 'lodash/get'; import cheerio from 'cheerio'; -import { host } from '../../config'; +import { host } from '../config'; /** * Magento 2: cmsBlocks normalizer */ -function normalizer(rawData): any { +function cmsBlocksNormalizer(rawData): any { const items = get(rawData, 'data.cmsBlocks.items', []); return { items: items.map((item) => { @@ -40,4 +40,4 @@ function normalizer(rawData): any { }; } -export default normalizer; +export default cmsBlocksNormalizer; diff --git a/src/cms/blocks/query.ts b/src/cms/cmsBlocksQuery.ts similarity index 60% rename from src/cms/blocks/query.ts rename to src/cms/cmsBlocksQuery.ts index fdad238..fdc8ff9 100644 --- a/src/cms/blocks/query.ts +++ b/src/cms/cmsBlocksQuery.ts @@ -1,9 +1,9 @@ -import GraphQlQuery from '../../types/GraphQlQuery'; +import GraphQlQuery from '../types/GraphQlQuery'; /** * Magento 2: cmsBlocks Graph QL query */ -const query = ({ identifiers }): GraphQlQuery => ({ +const cmsBlocksQuery = ({ identifiers }): GraphQlQuery => ({ query: ` { cmsBlocks(identifiers: "${identifiers}") { @@ -17,4 +17,4 @@ const query = ({ identifiers }): GraphQlQuery => ({ `, }); -export default query; +export default cmsBlocksQuery; diff --git a/src/cms/fetchCmsBlocks.ts b/src/cms/fetchCmsBlocks.ts new file mode 100644 index 0000000..5dba5e3 --- /dev/null +++ b/src/cms/fetchCmsBlocks.ts @@ -0,0 +1,13 @@ +import fetchWithGraphQl from '../fetchWithGraphQl'; +import cmsBlocksQuery from './cmsBlocksQuery'; + +/** + * Magento 2: cms blocks fetcher + */ +async function fetchCmsBlocks({ identifiers }): Promise { + const query = cmsBlocksQuery({ identifiers }); + const rawData = await fetchWithGraphQl(query); + return rawData; +} + +export default fetchCmsBlocks; diff --git a/src/subcategory/subcategory.ts b/src/subcategory/subcategory.ts index b201d00..d978c77 100644 --- a/src/subcategory/subcategory.ts +++ b/src/subcategory/subcategory.ts @@ -12,7 +12,8 @@ import { fetchSubcategorySubCategories, normalizeSubcategorySubCategories } from import { fetchSubcategoryId, normalizeSubcategoryId } from './id'; import fetchSubcategory from './fetcher'; import normalizeSubcategory from './normalizer'; -import { fetchCmsBlocks, normalizeCmsBlocks } from '../cms/blocks'; +import fetchCmsBlocks from '../cms/fetchCmsBlocks'; +import cmsBlocksNormalizer from '../cms/cmsBlocksNormalizer'; function filtersToQuery(filters): string { const filtersGrouped = groupBy(filters, (x) => x.split(':')[0]); @@ -114,7 +115,7 @@ export default async function subcategory( if (isLanding) { const identifiers = resolveCmsBlocksIdentifiers(urlKey); const rawCmsBlocks = await fetchCmsBlocks({ identifiers }); - cmsBlocks = normalizeCmsBlocks(rawCmsBlocks).items; + cmsBlocks = cmsBlocksNormalizer(rawCmsBlocks).items; } // collect all page data From f21fd0cd543c698b079ae357b1ebfa6f3a7a8868 Mon Sep 17 00:00:00 2001 From: Egor Mesyats Date: Wed, 23 Sep 2020 17:49:48 +0300 Subject: [PATCH 5/6] refactor: `src/search` folder --- src/index.ts | 2 +- src/search/{fetcher.ts => fetchSearch.ts} | 4 ++-- src/search/index.ts | 20 ------------------- .../{normalizer.ts => searchNormalizer.ts} | 4 ++-- .../{ => suggestions}/searchSuggestions.ts | 0 src/types/Connector.ts | 4 ++-- 6 files changed, 7 insertions(+), 27 deletions(-) rename src/search/{fetcher.ts => fetchSearch.ts} (86%) delete mode 100644 src/search/index.ts rename src/search/{normalizer.ts => searchNormalizer.ts} (72%) rename src/search/{ => suggestions}/searchSuggestions.ts (100%) diff --git a/src/index.ts b/src/index.ts index c9a0ef2..db1b8c6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,6 +12,6 @@ export { default as signIn } from './session/signIn'; export { default as signOut } from './session/signOut'; export { default as signUp } from './session/signUp'; export { default as subcategory } from './subcategory'; -export { default as search } from './search'; +export { default as search } from './search/search'; export { default } from './types/Connector'; diff --git a/src/search/fetcher.ts b/src/search/fetchSearch.ts similarity index 86% rename from src/search/fetcher.ts rename to src/search/fetchSearch.ts index 86597b7..c40a2e3 100644 --- a/src/search/fetcher.ts +++ b/src/search/fetchSearch.ts @@ -4,7 +4,7 @@ import { fetchSubcategory } from '../subcategory'; * Magento 2: search fetcher * > uses subcategory fetcher underneath */ -async function fetcher({ +async function fetchSearch({ pageSize = 16, currentPage = 1, filter = '', @@ -21,4 +21,4 @@ async function fetcher({ return rawData; } -export default fetcher; +export default fetchSearch; diff --git a/src/search/index.ts b/src/search/index.ts deleted file mode 100644 index c15761d..0000000 --- a/src/search/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import fetchSearch from './fetcher'; -import normalizeSearch from './normalizer'; -import search from './search'; - -/** - * Usage example (in handler): - * - * import { fetchSearch, normalizeSearch } from 'api/magento/search'; - * ... - * ... - * const rawData = await fetchSearch({ search }); - * const data = normalizeSearch(rawData); - * ... - * ... - */ -export default search; -export { - fetchSearch, - normalizeSearch, -}; diff --git a/src/search/normalizer.ts b/src/search/searchNormalizer.ts similarity index 72% rename from src/search/normalizer.ts rename to src/search/searchNormalizer.ts index e71618e..3613005 100644 --- a/src/search/normalizer.ts +++ b/src/search/searchNormalizer.ts @@ -4,8 +4,8 @@ import { normalizeSubcategory } from '../subcategory'; * Magento 2: search normalizer * > uses subcategory normalizer underneath */ -function normalizer(rawData) { +function searchNormalizer(rawData) { return normalizeSubcategory(rawData); } -export default normalizer; +export default searchNormalizer; diff --git a/src/search/searchSuggestions.ts b/src/search/suggestions/searchSuggestions.ts similarity index 100% rename from src/search/searchSuggestions.ts rename to src/search/suggestions/searchSuggestions.ts diff --git a/src/types/Connector.ts b/src/types/Connector.ts index c622795..388948f 100644 --- a/src/types/Connector.ts +++ b/src/types/Connector.ts @@ -13,8 +13,8 @@ import signIn from '../session/signIn'; import signOut from '../session/signOut'; import signUp from '../session/signUp'; import subcategory from '../subcategory'; -import search from '../search'; -import searchSuggestions from '../search/searchSuggestions'; +import search from '../search/search'; +import searchSuggestions from '../search/suggestions/searchSuggestions'; export default class Magento2Connector implements Connector { home = home; From d0790cd076b97449972122ce9d943f25c1616a2f Mon Sep 17 00:00:00 2001 From: Egor Mesyats Date: Wed, 23 Sep 2020 18:21:46 +0300 Subject: [PATCH 6/6] refactor: `src/subcategory` folder --- src/index.ts | 2 +- src/search/fetchSearch.ts | 2 +- src/search/searchNormalizer.ts | 4 ++-- .../{fetcher.ts => fetchSubcategory.ts} | 6 ++--- .../id/{fetcher.ts => fetchSubcategoryId.ts} | 6 ++--- src/subcategory/id/index.ts | 20 ---------------- ...rmalizer.ts => subcategoryIdNormalizer.ts} | 4 ++-- .../id/{query.ts => subcategoryIdQuery.ts} | 4 ++-- src/subcategory/index.ts | 22 ------------------ ...er.ts => fetchSubcategorySubCategories.ts} | 6 ++--- src/subcategory/sub-categories/index.ts | 23 ------------------- ... => subcategorySubCategoriesNormalizer.ts} | 4 ++-- ...ry.ts => subcategorySubCategoriesQuery.ts} | 4 ++-- src/subcategory/subcategory.ts | 16 +++++++------ ...normalizer.ts => subcategoryNormalizer.ts} | 4 ++-- .../{query.ts => subcategoryQuery.ts} | 4 ++-- src/types/Connector.ts | 2 +- 17 files changed, 35 insertions(+), 98 deletions(-) rename src/subcategory/{fetcher.ts => fetchSubcategory.ts} (77%) rename src/subcategory/id/{fetcher.ts => fetchSubcategoryId.ts} (59%) delete mode 100644 src/subcategory/id/index.ts rename src/subcategory/id/{normalizer.ts => subcategoryIdNormalizer.ts} (72%) rename src/subcategory/id/{query.ts => subcategoryIdQuery.ts} (75%) delete mode 100644 src/subcategory/index.ts rename src/subcategory/sub-categories/{fetcher.ts => fetchSubcategorySubCategories.ts} (55%) delete mode 100644 src/subcategory/sub-categories/index.ts rename src/subcategory/sub-categories/{normalizer.ts => subcategorySubCategoriesNormalizer.ts} (80%) rename src/subcategory/sub-categories/{query.ts => subcategorySubCategoriesQuery.ts} (77%) rename src/subcategory/{normalizer.ts => subcategoryNormalizer.ts} (97%) rename src/subcategory/{query.ts => subcategoryQuery.ts} (96%) diff --git a/src/index.ts b/src/index.ts index db1b8c6..9688edc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,7 +11,7 @@ export { default as session } from './session'; export { default as signIn } from './session/signIn'; export { default as signOut } from './session/signOut'; export { default as signUp } from './session/signUp'; -export { default as subcategory } from './subcategory'; +export { default as subcategory } from './subcategory/subcategory'; export { default as search } from './search/search'; export { default } from './types/Connector'; diff --git a/src/search/fetchSearch.ts b/src/search/fetchSearch.ts index c40a2e3..7ecc91c 100644 --- a/src/search/fetchSearch.ts +++ b/src/search/fetchSearch.ts @@ -1,4 +1,4 @@ -import { fetchSubcategory } from '../subcategory'; +import fetchSubcategory from '../subcategory/fetchSubcategory'; /** * Magento 2: search fetcher diff --git a/src/search/searchNormalizer.ts b/src/search/searchNormalizer.ts index 3613005..e7847d6 100644 --- a/src/search/searchNormalizer.ts +++ b/src/search/searchNormalizer.ts @@ -1,11 +1,11 @@ -import { normalizeSubcategory } from '../subcategory'; +import subcategoryNormalizer from '../subcategory/subcategoryNormalizer'; /** * Magento 2: search normalizer * > uses subcategory normalizer underneath */ function searchNormalizer(rawData) { - return normalizeSubcategory(rawData); + return subcategoryNormalizer(rawData); } export default searchNormalizer; diff --git a/src/subcategory/fetcher.ts b/src/subcategory/fetchSubcategory.ts similarity index 77% rename from src/subcategory/fetcher.ts rename to src/subcategory/fetchSubcategory.ts index 885cfce..24fc365 100644 --- a/src/subcategory/fetcher.ts +++ b/src/subcategory/fetchSubcategory.ts @@ -1,10 +1,10 @@ import fetchWithGraphQl from '../fetchWithGraphQl'; -import subcategoryQuery from './query'; +import subcategoryQuery from './subcategoryQuery'; /** * Magento 2: subcategory fetcher */ -async function fetcher({ +async function fetchSubcategory({ categoryId = null, pageSize = 16, currentPage = 1, @@ -24,4 +24,4 @@ async function fetcher({ return rawData; } -export default fetcher; +export default fetchSubcategory; diff --git a/src/subcategory/id/fetcher.ts b/src/subcategory/id/fetchSubcategoryId.ts similarity index 59% rename from src/subcategory/id/fetcher.ts rename to src/subcategory/id/fetchSubcategoryId.ts index 13b4d29..75d7fda 100644 --- a/src/subcategory/id/fetcher.ts +++ b/src/subcategory/id/fetchSubcategoryId.ts @@ -1,13 +1,13 @@ import fetchWithGraphQl from '../../fetchWithGraphQl'; -import subcategoryIdQuery from './query'; +import subcategoryIdQuery from './subcategoryIdQuery'; /** * Magento 2: subcategory id fetcher */ -async function fetcher({ urlKey }): Promise { +async function fetchSubcategoryId({ urlKey }): Promise { const query = subcategoryIdQuery({ urlKey }); const rawData = await fetchWithGraphQl(query); return rawData; } -export default fetcher; +export default fetchSubcategoryId; diff --git a/src/subcategory/id/index.ts b/src/subcategory/id/index.ts deleted file mode 100644 index 51def97..0000000 --- a/src/subcategory/id/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import subcategoryIdQuery from './query'; -import fetchSubcategoryId from './fetcher'; -import normalizeSubcategoryId from './normalizer'; - -/** - * Usage example (in handler): - * - * import { fetchSubcategoryId, normalizeSubcategoryId } from 'api/magento/subcategory/id'; - * ... - * ... - * const rawData = await fetchSubcategoryId({ urlKey }); - * const id = normalizeSubcategoryId(rawData); - * ... - * ... - */ -export { - subcategoryIdQuery, - fetchSubcategoryId, - normalizeSubcategoryId, -}; diff --git a/src/subcategory/id/normalizer.ts b/src/subcategory/id/subcategoryIdNormalizer.ts similarity index 72% rename from src/subcategory/id/normalizer.ts rename to src/subcategory/id/subcategoryIdNormalizer.ts index afeb376..e35c9ca 100644 --- a/src/subcategory/id/normalizer.ts +++ b/src/subcategory/id/subcategoryIdNormalizer.ts @@ -3,7 +3,7 @@ import get from 'lodash/get'; /** * Magento 2: subcategory id normalizer */ -function normalizer(rawData): any { +function subcategoryIdNormalizer(rawData): any { const id = get(rawData, 'data.categoryList[0]id', null); const name = get(rawData, 'data.categoryList[0]name', null); return { @@ -12,4 +12,4 @@ function normalizer(rawData): any { }; } -export default normalizer; +export default subcategoryIdNormalizer; diff --git a/src/subcategory/id/query.ts b/src/subcategory/id/subcategoryIdQuery.ts similarity index 75% rename from src/subcategory/id/query.ts rename to src/subcategory/id/subcategoryIdQuery.ts index b4119df..0b77c63 100644 --- a/src/subcategory/id/query.ts +++ b/src/subcategory/id/subcategoryIdQuery.ts @@ -3,7 +3,7 @@ import GraphQlQuery from '../../types/GraphQlQuery'; /** * Magento 2: subcategory id Graph QL query */ -const query = ({ urlKey }): GraphQlQuery => ({ +const subcategoryIdQuery = ({ urlKey }): GraphQlQuery => ({ query: ` { categoryList( @@ -20,4 +20,4 @@ const query = ({ urlKey }): GraphQlQuery => ({ `, }); -export default query; +export default subcategoryIdQuery; diff --git a/src/subcategory/index.ts b/src/subcategory/index.ts deleted file mode 100644 index 3f6c744..0000000 --- a/src/subcategory/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -import subcategoryQuery from './query'; -import fetchSubcategory from './fetcher'; -import normalizeSubcategory from './normalizer'; -import subcategory from './subcategory'; - -/** - * Usage example (in handler): - * - * import { fetchSubcategory, normalizeSubcategory } from 'api/magento/subcategory'; - * ... - * ... - * const rawData = await fetchSubcategory({ categoryId }); - * const { id, name } = normalizeSubcategory(rawData); - * ... - * ... - */ -export default subcategory; -export { - subcategoryQuery, - fetchSubcategory, - normalizeSubcategory, -}; diff --git a/src/subcategory/sub-categories/fetcher.ts b/src/subcategory/sub-categories/fetchSubcategorySubCategories.ts similarity index 55% rename from src/subcategory/sub-categories/fetcher.ts rename to src/subcategory/sub-categories/fetchSubcategorySubCategories.ts index b6c63d5..2bacd40 100644 --- a/src/subcategory/sub-categories/fetcher.ts +++ b/src/subcategory/sub-categories/fetchSubcategorySubCategories.ts @@ -1,13 +1,13 @@ import fetchWithGraphQl from '../../fetchWithGraphQl'; -import subcategorySubCategoriesQuery from './query'; +import subcategorySubCategoriesQuery from './subcategorySubCategoriesQuery'; /** * Magento 2: subcategory sub-categories fetcher */ -async function fetcher({ urlKey }): Promise { +async function fetchSubcategorySubCategories({ urlKey }): Promise { const query = subcategorySubCategoriesQuery({ urlKey }); const rawData = await fetchWithGraphQl(query); return rawData; } -export default fetcher; +export default fetchSubcategorySubCategories; diff --git a/src/subcategory/sub-categories/index.ts b/src/subcategory/sub-categories/index.ts deleted file mode 100644 index 4c1127e..0000000 --- a/src/subcategory/sub-categories/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import subcategorySubCategoriesQuery from './query'; -import fetchSubcategorySubCategories from './fetcher'; -import normalizeSubcategorySubCategories from './normalizer'; - -/** - * Usage example (in handler): - * - * import { - * fetchSubcategorySubCategories, - * normalizeSubcategorySubCategories, - * } from 'api/magento/subcategory/sub-categories'; - * ... - * ... - * const rawData = await fetchSubcategorySubCategories({ urlKey }); - * const data = normalizeSubcategorySubCategories(rawData); - * ... - * ... - */ -export { - subcategorySubCategoriesQuery, - fetchSubcategorySubCategories, - normalizeSubcategorySubCategories, -}; diff --git a/src/subcategory/sub-categories/normalizer.ts b/src/subcategory/sub-categories/subcategorySubCategoriesNormalizer.ts similarity index 80% rename from src/subcategory/sub-categories/normalizer.ts rename to src/subcategory/sub-categories/subcategorySubCategoriesNormalizer.ts index 7589981..cabca1a 100644 --- a/src/subcategory/sub-categories/normalizer.ts +++ b/src/subcategory/sub-categories/subcategorySubCategoriesNormalizer.ts @@ -4,7 +4,7 @@ import orderBy from 'lodash/orderBy'; /** * Magento 2: subcategory sub-categories normalizer */ -function normalizer(rawData): any { +function subcategorySubCategoriesNormalizer(rawData): any { const rawChildren = get(rawData, 'data.categoryList[0].children', []); const rawChildrenSorted = orderBy(rawChildren, 'position'); return { @@ -15,4 +15,4 @@ function normalizer(rawData): any { }; } -export default normalizer; +export default subcategorySubCategoriesNormalizer; diff --git a/src/subcategory/sub-categories/query.ts b/src/subcategory/sub-categories/subcategorySubCategoriesQuery.ts similarity index 77% rename from src/subcategory/sub-categories/query.ts rename to src/subcategory/sub-categories/subcategorySubCategoriesQuery.ts index 037fee1..1dac19c 100644 --- a/src/subcategory/sub-categories/query.ts +++ b/src/subcategory/sub-categories/subcategorySubCategoriesQuery.ts @@ -3,7 +3,7 @@ import GraphQlQuery from '../../types/GraphQlQuery'; /** * Magento 2: subcategory sub-categories Graph QL query */ -const query = ({ urlKey }): GraphQlQuery => ({ +const subcategorySubCategoriesQuery = ({ urlKey }): GraphQlQuery => ({ query: ` { categoryList( @@ -25,4 +25,4 @@ const query = ({ urlKey }): GraphQlQuery => ({ `, }); -export default query; +export default subcategorySubCategoriesQuery; diff --git a/src/subcategory/subcategory.ts b/src/subcategory/subcategory.ts index d978c77..e423491 100644 --- a/src/subcategory/subcategory.ts +++ b/src/subcategory/subcategory.ts @@ -8,10 +8,12 @@ import last from 'lodash/last'; import SubcategoryPageData from 'react-storefront-connector/SubcategoryPageData'; import Result from 'react-storefront-connector/Result'; import withAppData from '../app/withAppData'; -import { fetchSubcategorySubCategories, normalizeSubcategorySubCategories } from './sub-categories'; -import { fetchSubcategoryId, normalizeSubcategoryId } from './id'; -import fetchSubcategory from './fetcher'; -import normalizeSubcategory from './normalizer'; +import fetchSubcategorySubCategories from './sub-categories/fetchSubcategorySubCategories'; +import subcategorySubCategoriesNormalizer from './sub-categories/subcategorySubCategoriesNormalizer'; +import fetchSubcategoryId from './id/fetchSubcategoryId'; +import subcategoryIdNormalizer from './id/subcategoryIdNormalizer'; +import fetchSubcategory from './fetchSubcategory'; +import subcategoryNormalizer from './subcategoryNormalizer'; import fetchCmsBlocks from '../cms/fetchCmsBlocks'; import cmsBlocksNormalizer from '../cms/cmsBlocksNormalizer'; @@ -92,11 +94,11 @@ export default async function subcategory( name = `Results for "${q}"`; } else { const rawIdData = await fetchSubcategoryId({ urlKey }); - const idData = normalizeSubcategoryId(rawIdData); + const idData = subcategoryIdNormalizer(rawIdData); id = idData.id; name = idData.name; const rawSubCategoriesData = await fetchSubcategorySubCategories({ urlKey }); - navMenu = normalizeSubcategorySubCategories(rawSubCategoriesData); + navMenu = subcategorySubCategoriesNormalizer(rawSubCategoriesData); } // 2) get all subcategory page data @@ -107,7 +109,7 @@ export default async function subcategory( filter: filtersToQuery(filters), search: q, }); - const data = normalizeSubcategory(rawData); + const data = subcategoryNormalizer(rawData); // 3) get CMS slots data let cmsBlocks = []; diff --git a/src/subcategory/normalizer.ts b/src/subcategory/subcategoryNormalizer.ts similarity index 97% rename from src/subcategory/normalizer.ts rename to src/subcategory/subcategoryNormalizer.ts index 7e8c008..1107d00 100644 --- a/src/subcategory/normalizer.ts +++ b/src/subcategory/subcategoryNormalizer.ts @@ -105,7 +105,7 @@ function getFacetsData(rawSubcategoryData) { /** * Magento 2: subcategory normalizer */ -function normalizer(rawData): any { +function subcategoryNormalizer(rawData): any { const rawSubcategoryData = get(rawData, 'data.products', {}); return { total: get(rawSubcategoryData, 'total_count', 0), @@ -117,4 +117,4 @@ function normalizer(rawData): any { }; } -export default normalizer; +export default subcategoryNormalizer; diff --git a/src/subcategory/query.ts b/src/subcategory/subcategoryQuery.ts similarity index 96% rename from src/subcategory/query.ts rename to src/subcategory/subcategoryQuery.ts index d368ae5..f75a697 100644 --- a/src/subcategory/query.ts +++ b/src/subcategory/subcategoryQuery.ts @@ -65,7 +65,7 @@ const pageInfoSchema = ` /** * Magento 2: subcategory Graph QL query */ -const query = ({ +const subcategoryQuery = ({ categoryId = null, pageSize = 16, currentPage = 1, @@ -103,4 +103,4 @@ const query = ({ }; }; -export default query; +export default subcategoryQuery; diff --git a/src/types/Connector.ts b/src/types/Connector.ts index 388948f..aba9dba 100644 --- a/src/types/Connector.ts +++ b/src/types/Connector.ts @@ -12,7 +12,7 @@ import session from '../session'; import signIn from '../session/signIn'; import signOut from '../session/signOut'; import signUp from '../session/signUp'; -import subcategory from '../subcategory'; +import subcategory from '../subcategory/subcategory'; import search from '../search/search'; import searchSuggestions from '../search/suggestions/searchSuggestions';