UNPKG

1.31 kBPlain TextView Raw
1import { recordDataFor } from '@ember-data/store/-private';
2
3type RelationshipRecordData = import('./ts-interfaces/relationship-record-data').RelationshipRecordData;
4type ConfidentDict<T> = import('@ember-data/store/-private/ts-interfaces/utils').ConfidentDict<T>;
5type ManyRelationship = import('./relationships/state/has-many').default;
6type BelongsToRelationship = import('./relationships/state/belongs-to').default;
7type Relationship = import('./relationships/state/relationship').default;
8type Relationships = import('./relationships/state/create').default;
9
10export function relationshipsFor(instance: any): Relationships {
11 let recordData = (recordDataFor(instance) || instance) as RelationshipRecordData;
12
13 return recordData._relationships;
14}
15
16export function relationshipStateFor(instance: any, propertyName: string): BelongsToRelationship | ManyRelationship {
17 return relationshipsFor(instance).get(propertyName);
18}
19
20export function implicitRelationshipsFor(instance: any): ConfidentDict<Relationship> {
21 let recordData = (recordDataFor(instance) || instance) as RelationshipRecordData;
22
23 return recordData._implicitRelationships;
24}
25
26export function implicitRelationshipStateFor(instance: any, propertyName: string): Relationship {
27 return implicitRelationshipsFor(instance)[propertyName];
28}