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/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/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 0b6ad2b..9688edc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,16 +1,17 @@ -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'; 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'; 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 subcategory } from './subcategory/subcategory'; +export { default as search } from './search/search'; export { default } from './types/Connector'; 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; 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/search/fetcher.ts b/src/search/fetchSearch.ts similarity index 72% rename from src/search/fetcher.ts rename to src/search/fetchSearch.ts index 86597b7..7ecc91c 100644 --- a/src/search/fetcher.ts +++ b/src/search/fetchSearch.ts @@ -1,10 +1,10 @@ -import { fetchSubcategory } from '../subcategory'; +import fetchSubcategory from '../subcategory/fetchSubcategory'; /** * 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/normalizer.ts deleted file mode 100644 index e71618e..0000000 --- a/src/search/normalizer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { normalizeSubcategory } from '../subcategory'; - -/** - * Magento 2: search normalizer - * > uses subcategory normalizer underneath - */ -function normalizer(rawData) { - return normalizeSubcategory(rawData); -} - -export default normalizer; diff --git a/src/search/searchNormalizer.ts b/src/search/searchNormalizer.ts new file mode 100644 index 0000000..e7847d6 --- /dev/null +++ b/src/search/searchNormalizer.ts @@ -0,0 +1,11 @@ +import subcategoryNormalizer from '../subcategory/subcategoryNormalizer'; + +/** + * Magento 2: search normalizer + * > uses subcategory normalizer underneath + */ +function searchNormalizer(rawData) { + return subcategoryNormalizer(rawData); +} + +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/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 b201d00..e423491 100644 --- a/src/subcategory/subcategory.ts +++ b/src/subcategory/subcategory.ts @@ -8,11 +8,14 @@ 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 { fetchCmsBlocks, normalizeCmsBlocks } from '../cms/blocks'; +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'; function filtersToQuery(filters): string { const filtersGrouped = groupBy(filters, (x) => x.split(':')[0]); @@ -91,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 @@ -106,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 = []; @@ -114,7 +117,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 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 bfd0897..aba9dba 100644 --- a/src/types/Connector.ts +++ b/src/types/Connector.ts @@ -1,20 +1,20 @@ 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'; 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'; import signOut from '../session/signOut'; import signUp from '../session/signUp'; -import subcategory from '../subcategory'; -import search from '../search'; -import searchSuggestions from '../search/searchSuggestions'; +import subcategory from '../subcategory/subcategory'; +import search from '../search/search'; +import searchSuggestions from '../search/suggestions/searchSuggestions'; export default class Magento2Connector implements Connector { home = home;