|
1 | 1 | import { z } from "zod"; |
2 | | -import { type IdProp } from "@simulacrum/foundation-simulator"; |
| 2 | +import { convertObjToProp } from "@simulacrum/foundation-simulator"; |
3 | 3 | import { faker } from "@faker-js/faker"; |
4 | 4 |
|
5 | 5 | export const githubUserSchema = z |
@@ -412,27 +412,17 @@ export const gitubInitialStoreSchema = z |
412 | 412 | export type GitHubStore = z.output<typeof gitubInitialStoreSchema>; |
413 | 413 | export type GitHubInitialStore = z.input<typeof gitubInitialStoreSchema>; |
414 | 414 |
|
415 | | -export const convertToObj = <T extends { [k: string]: any }>( |
416 | | - arrayOfObjects: T[], |
417 | | - key: IdProp = "id" |
418 | | -): Record<IdProp, T> => |
419 | | - arrayOfObjects.reduce((final, obj: T) => { |
420 | | - final[obj[key].toString()] = obj; |
421 | | - return final; |
422 | | - }, {} as Record<IdProp, T>); |
423 | | - |
424 | 415 | export const convertInitialStateToStoreState = ( |
425 | 416 | initialState: GitHubStore | undefined |
426 | 417 | ) => { |
427 | 418 | if (!initialState) return undefined; |
428 | | - // TODO try to make this generic? |
429 | 419 | const storeObject = { |
430 | | - users: convertToObj(initialState.users, "login"), |
431 | | - installations: convertToObj(initialState.installations, "id"), |
432 | | - repositories: convertToObj(initialState.repositories, "name"), |
433 | | - branches: convertToObj(initialState.branches, "name"), |
434 | | - organizations: convertToObj(initialState.organizations, "login"), |
435 | | - blobs: convertToObj(initialState.blobs), |
| 420 | + users: convertObjToProp(initialState.users, "login"), |
| 421 | + installations: convertObjToProp(initialState.installations, "id"), |
| 422 | + repositories: convertObjToProp(initialState.repositories, "name"), |
| 423 | + branches: convertObjToProp(initialState.branches, "name"), |
| 424 | + organizations: convertObjToProp(initialState.organizations, "login"), |
| 425 | + blobs: convertObjToProp(initialState.blobs), |
436 | 426 | }; |
437 | 427 |
|
438 | 428 | return storeObject; |
|
0 commit comments