From a14ffc3f31084049fa16a81c67c49b811e1be6df Mon Sep 17 00:00:00 2001 From: MacFJA Date: Sat, 20 Aug 2022 22:52:17 +0200 Subject: [PATCH] Refactoring + cleanup --- src/lib/components/Search.svelte | 2 +- src/lib/utils/sort.test.ts | 61 ------------------ src/lib/utils/sort.ts | 45 ------------- src/routes/_searchableJson.svelte | 100 +++++++++++++++++++++++++++++ src/routes/components/+page.svelte | 100 +++-------------------------- src/routes/templates/+page.svelte | 79 +++-------------------- src/routes/tools/+page.svelte | 79 +++-------------------- 7 files changed, 125 insertions(+), 341 deletions(-) delete mode 100644 src/lib/utils/sort.test.ts delete mode 100644 src/lib/utils/sort.ts create mode 100644 src/routes/_searchableJson.svelte diff --git a/src/lib/components/Search.svelte b/src/lib/components/Search.svelte index 91c3fb4..3bc0553 100644 --- a/src/lib/components/Search.svelte +++ b/src/lib/components/Search.svelte @@ -55,7 +55,7 @@ configurations as Configuration ); - export function search() { + export function search(): void { const results = searcher.search({ per_page: 100000, query, diff --git a/src/lib/utils/sort.test.ts b/src/lib/utils/sort.test.ts deleted file mode 100644 index 9839ad8..0000000 --- a/src/lib/utils/sort.test.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { compare } from './sort'; - -describe('sort', () => { - const mock = [ - { - addedOn: '2019-09-29T14:39:13Z', - category: 'Svelte', - description: - 'Boilerplate with TypeScript, Webpack, Storybook, Travis CI, SCSS, Babel, EsLint, Prettier, Jest', - stars: 51, - tags: [], - title: 'agusID/boilerplate-svelte', - url: 'https://github.com/agusID/boilerplate-svelte' - }, - { - addedOn: '2020-09-29T14:39:13Z', - category: 'Svelte', - description: 'An example repo of a Svelte app that is IE11 compatible', - stars: 27, - tags: [], - title: 'angelozehr/svelte-example-museums', - url: 'https://github.com/angelozehr/svelte-example-museums' - } - ]; - - it('should sort by added_desc', () => { - mock.sort(compare('added_desc')); - expect(mock[0].title).toEqual('angelozehr/svelte-example-museums'); - expect(mock[1].title).toEqual('agusID/boilerplate-svelte'); - }); - - it('should sort by added_asc', () => { - mock.sort(compare('added_asc')); - expect(mock[0].title).toEqual('agusID/boilerplate-svelte'); - expect(mock[1].title).toEqual('angelozehr/svelte-example-museums'); - }); - - it('should sort by name_asc', () => { - mock.sort(compare('name_asc')); - expect(mock[0].title).toEqual('agusID/boilerplate-svelte'); - expect(mock[1].title).toEqual('angelozehr/svelte-example-museums'); - }); - - it('should sort by name_desc', () => { - mock.sort(compare('name_desc')); - expect(mock[0].title).toEqual('angelozehr/svelte-example-museums'); - expect(mock[1].title).toEqual('agusID/boilerplate-svelte'); - }); - - it('should sort by stars_asc', () => { - mock.sort(compare('stars_asc')); - expect(mock[0].title).toEqual('angelozehr/svelte-example-museums'); - expect(mock[1].title).toEqual('agusID/boilerplate-svelte'); - }); - - it('should sort by stars_desc', () => { - mock.sort(compare('stars_desc')); - expect(mock[0].title).toEqual('agusID/boilerplate-svelte'); - expect(mock[1].title).toEqual('angelozehr/svelte-example-museums'); - }); -}); diff --git a/src/lib/utils/sort.ts b/src/lib/utils/sort.ts deleted file mode 100644 index 4773bf7..0000000 --- a/src/lib/utils/sort.ts +++ /dev/null @@ -1,45 +0,0 @@ -type SortableEntity = { - title: string; - addedOn?: string; - stars?: number; -}; - -export const compare = (sorting: string) => { - return (sortableEntityA: SortableEntity, sortableEntityB: SortableEntity): number => { - switch (sorting) { - case 'added_desc': - return ( - new Date(sortableEntityB.addedOn || '').getTime() - - new Date(sortableEntityA.addedOn || '').getTime() - ); - case 'added_asc': - return ( - new Date(sortableEntityA.addedOn || '').getTime() - - new Date(sortableEntityB.addedOn || '').getTime() - ); - case 'name_asc': - return sortableEntityA.title - .toLowerCase() - .localeCompare(sortableEntityB.title.toLowerCase()); - case 'name_desc': - return sortableEntityB.title - .toLowerCase() - .localeCompare(sortableEntityA.title.toLowerCase()); - case 'stars_desc': - return (sortableEntityB.stars || 0) - (sortableEntityA.stars || 0); - case 'stars_asc': - return (sortableEntityA.stars || 0) - (sortableEntityB.stars || 0); - } - }; -}; - -export const sortMap = { - added_desc: 'Added Desc', - added_asc: 'Added Asc', - name_asc: 'Name Asc', - name_desc: 'Name Desc', - stars_desc: 'Stars Desc', - stars_asc: 'Stars Asc' -}; - -export const selectSortItems = Object.entries(sortMap).map(([value, label]) => ({ label, value })); diff --git a/src/routes/_searchableJson.svelte b/src/routes/_searchableJson.svelte new file mode 100644 index 0000000..140ec05 --- /dev/null +++ b/src/routes/_searchableJson.svelte @@ -0,0 +1,100 @@ + + + + + +
+
+ (dataToDisplay = a.detail.data.items)} + /> + + {dataToDisplay.length} result{#if dataToDisplay.length !== 1}s{/if} +
+
+ {#each categories as category} + + {#each dataToDisplay.filter((d) => d.category === category.value || (!categories + .map((v) => v.value) + .includes(d.category) && category.value === '')) as cardData} + + {/each} + + {/each} +
+
diff --git a/src/routes/components/+page.svelte b/src/routes/components/+page.svelte index 6727654..e70f47a 100644 --- a/src/routes/components/+page.svelte +++ b/src/routes/components/+page.svelte @@ -1,26 +1,6 @@ - - - -
-
- (dataToDisplay = a.detail.data.items)} - /> - - {dataToDisplay.length} result{#if dataToDisplay.length !== 1}s{/if} -
-
- {#each categories as category} - - {#each dataToDisplay.filter((d) => d.category === category.value || (!categories - .map((v) => v.value) - .includes(d.category) && category.value === '')) as data} - - {/each} - - {/each} -
-
+ diff --git a/src/routes/templates/+page.svelte b/src/routes/templates/+page.svelte index 81c2536..ac91a64 100644 --- a/src/routes/templates/+page.svelte +++ b/src/routes/templates/+page.svelte @@ -1,15 +1,6 @@ - - - -
-
- (dataToDisplay = a.detail.data.items)} - /> - - Submit a template -
- - - {dataToDisplay.length} result{#if dataToDisplay.length !== 1}s{/if} -
-
- {#each categories as category} - - {#each dataToDisplay.filter((d) => d.category === category.value || (!categories - .map((v) => v.value) - .includes(d.category) && category.value === '')) as data} - - {/each} - - {/each} -
-
+ diff --git a/src/routes/tools/+page.svelte b/src/routes/tools/+page.svelte index 37dca7b..0b290bc 100644 --- a/src/routes/tools/+page.svelte +++ b/src/routes/tools/+page.svelte @@ -1,16 +1,6 @@ - - - -
-
- (dataToDisplay = a.detail.data.items)} - /> - Submit a tool -
- - - {dataToDisplay.length} result{#if dataToDisplay.length !== 1}s{/if} -
-
- {#each categories as category} - - {#each dataToDisplay.filter((d) => d.category === category.value || (!categories - .map((v) => v.value) - .includes(d.category) && category.value === '')) as data} - - {/each} - - {/each} -
-
+