1- import type {
2- EntityDefinition ,
3- Comparer ,
4- IdSelector ,
5- EntityAdapter ,
6- EntityId ,
7- } from './models'
1+ import type { EntityAdapter , EntityId , EntityAdapterOptions } from './models'
82import { createInitialStateFactory } from './entity_state'
93import { createSelectorsFactory } from './state_selectors'
104import { createSortedStateAdapter } from './sorted_state_adapter'
115import { createUnsortedStateAdapter } from './unsorted_state_adapter'
6+ import type { WithRequiredProp } from '../tsHelpers'
127
13- export interface EntityAdapterOptions < T , Id extends EntityId > {
14- selectId ?: IdSelector < T , Id >
15- sortComparer ?: false | Comparer < T >
16- }
17-
18- export function createEntityAdapter < T , Id extends EntityId > ( options : {
19- selectId : IdSelector < T , Id >
20- sortComparer ?: false | Comparer < T >
21- } ) : EntityAdapter < T , Id >
8+ export function createEntityAdapter < T , Id extends EntityId > (
9+ options : WithRequiredProp < EntityAdapterOptions < T , Id > , 'selectId' > ,
10+ ) : EntityAdapter < T , Id >
2211
23- export function createEntityAdapter < T extends { id : EntityId } > ( options ?: {
24- sortComparer ?: false | Comparer < T >
25- } ) : EntityAdapter < T , T [ 'id' ] >
12+ export function createEntityAdapter < T extends { id : EntityId } > (
13+ options ?: Omit < EntityAdapterOptions < T , T [ 'id' ] > , 'selectId' > ,
14+ ) : EntityAdapter < T , T [ 'id' ] >
2615
2716/**
2817 *
@@ -31,12 +20,12 @@ export function createEntityAdapter<T extends { id: EntityId }>(options?: {
3120 * @public
3221 */
3322export function createEntityAdapter < T > (
34- options : {
35- selectId ?: IdSelector < T , EntityId >
36- sortComparer ?: false | Comparer < T >
37- } = { } ,
23+ options : EntityAdapterOptions < T , EntityId > = { } ,
3824) : EntityAdapter < T , EntityId > {
39- const { selectId, sortComparer } : EntityDefinition < T , EntityId > = {
25+ const {
26+ selectId,
27+ sortComparer,
28+ } : Required < EntityAdapterOptions < T , EntityId > > = {
4029 sortComparer : false ,
4130 selectId : ( instance : any ) => instance . id ,
4231 ...options ,
0 commit comments