• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

satanTime / ngrx-entity-relationship / 475a6fe6-862e-42f9-b95e-23a40dfab79b

26 Jan 2024 01:24AM UTC coverage: 100.0%. Remained the same
475a6fe6-862e-42f9-b95e-23a40dfab79b

Pull #2048

circleci

web-flow
chore(deps): update dependency husky to v9
Pull Request #2048: chore(deps): update dependency husky to v9

443 of 443 branches covered (100.0%)

Branch coverage included in aggregate %.

680 of 680 relevant lines covered (100.0%)

33.45 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/libs/ngrx-entity-relationship/src/lib/childEntitySelector.ts
1
import {childEntity} from './childEntity';
2
import {FEATURE_SELECTOR, HANDLER_RELATED_ENTITY, ID_FILTER_PROPS, ID_TYPES, isSelectorMeta} from './types';
3
import {argsToArray} from './utils';
4

5
export function childEntitySelector<
6
    STORE,
7
    PARENT_ENTITY extends {
8
        [KEY in RELATED_KEY_VALUES]?: RELATED_ENTITY;
9
    },
10
    RELATED_ENTITY,
11
    RELATED_KEY_IDS extends ID_FILTER_PROPS<RELATED_ENTITY, ID_TYPES> = ID_FILTER_PROPS<RELATED_ENTITY, ID_TYPES>,
12
    RELATED_KEY_VALUES extends keyof any = keyof any,
13
>(
14
    featureSelector: FEATURE_SELECTOR<STORE, RELATED_ENTITY>,
15
    keyId: RELATED_KEY_IDS,
16
    keyValue: RELATED_KEY_VALUES,
17
    meta?: SELECTOR_META,
18
): (
19
    metaOrRelationship?: SELECTOR_META | HANDLER_RELATED_ENTITY<STORE, RELATED_ENTITY>,
20
    ...relationships: Array<HANDLER_RELATED_ENTITY<STORE, RELATED_ENTITY>>
21
) => HANDLER_RELATED_ENTITY<STORE, PARENT_ENTITY>;
22

23
export function childEntitySelector<
24
    STORE,
25
    PARENT_ENTITY extends {
26
        [KEY in RELATED_KEY_VALUES]?: RELATED_ENTITY;
27
    },
28
    RELATED_ENTITY,
29
    RELATED_KEY_IDS extends ID_FILTER_PROPS<RELATED_ENTITY, ID_TYPES>,
30
    RELATED_KEY_VALUES extends keyof any,
31
>(
32
    featureSelector: FEATURE_SELECTOR<STORE, RELATED_ENTITY>,
33
    keyId: RELATED_KEY_IDS,
34
    keyValue: RELATED_KEY_VALUES,
35
    meta?: SELECTOR_META,
36
): (
37
    metaOrRelationship?: SELECTOR_META | HANDLER_RELATED_ENTITY<STORE, RELATED_ENTITY>,
38
    ...relationships: Array<HANDLER_RELATED_ENTITY<STORE, RELATED_ENTITY>>
39
) => HANDLER_RELATED_ENTITY<STORE, PARENT_ENTITY> {
40
    function callback(): HANDLER_RELATED_ENTITY<STORE, PARENT_ENTITY> {
41
        let relationships: Array<HANDLER_RELATED_ENTITY<STORE, RELATED_ENTITY>> = argsToArray(arguments);
11✔
42
        let currentMeta = isSelectorMeta(meta) ? meta : undefined;
11✔
43
        if (isSelectorMeta(relationships[0])) {
11✔
44
            currentMeta = relationships[0];
8✔
45
            relationships = relationships.slice(1);
8✔
46
        }
47
        return currentMeta
11✔
48
            ? childEntity<STORE, PARENT_ENTITY, RELATED_ENTITY, RELATED_KEY_IDS, any>(
49
                  featureSelector,
50
                  keyId,
51
                  keyValue,
52
                  currentMeta,
53
                  ...relationships,
54
              )
55
            : childEntity<STORE, PARENT_ENTITY, RELATED_ENTITY, RELATED_KEY_IDS, any>(
56
                  featureSelector,
57
                  keyId,
58
                  keyValue,
59
                  ...relationships,
60
              );
61
    }
62
    callback.ngrxEntityRelationship = 'childEntitySelector';
6✔
63

64
    return callback;
6✔
65
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc