ember-data-model-fragments 5.0.0-beta.8 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +30 -0
- package/addon/record-data.js +1 -1
- package/attributes.d.ts +35 -0
- package/ext.d.ts +9 -0
- package/fragment.d.ts +5 -0
- package/package.json +1 -1
- package/record-data.d.ts +4 -0
- package/types/registries/fragment.d.ts +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,36 @@
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## v5.0.0 (2023-02-02)
|
|
12
|
+
|
|
13
|
+
#### :bug: Bug Fix
|
|
14
|
+
* [#455](https://github.com/adopted-ember-addons/ember-data-model-fragments/pull/455) Remove string index from fragment registry ([@charlesfries](https://github.com/charlesfries))
|
|
15
|
+
|
|
16
|
+
#### Committers: 1
|
|
17
|
+
- Charles Fries ([@charlesfries](https://github.com/charlesfries))
|
|
18
|
+
|
|
19
|
+
## v5.0.0-beta.9 (2023-01-16)
|
|
20
|
+
|
|
21
|
+
#### :rocket: Enhancement
|
|
22
|
+
* [#445](https://github.com/adopted-ember-addons/ember-data-model-fragments/pull/445) chore: fix typescript declarations ([@charlesfries](https://github.com/charlesfries))
|
|
23
|
+
* [#443](https://github.com/adopted-ember-addons/ember-data-model-fragments/pull/443) chore: add typescript definitions files ([@VincentMolinie](https://github.com/VincentMolinie))
|
|
24
|
+
|
|
25
|
+
#### :bug: Bug Fix
|
|
26
|
+
* [#447](https://github.com/adopted-ember-addons/ember-data-model-fragments/pull/447) Handle null record in isStateInitializing ([@richgt](https://github.com/richgt))
|
|
27
|
+
|
|
28
|
+
#### :house: Internal
|
|
29
|
+
* [#442](https://github.com/adopted-ember-addons/ember-data-model-fragments/pull/442) Bump terser from 4.8.0 to 4.8.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
|
30
|
+
* [#440](https://github.com/adopted-ember-addons/ember-data-model-fragments/pull/440) Bump shell-quote from 1.7.2 to 1.7.3 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
|
31
|
+
* [#410](https://github.com/adopted-ember-addons/ember-data-model-fragments/pull/410) Bump y18n from 4.0.0 to 4.0.3 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
|
32
|
+
* [#426](https://github.com/adopted-ember-addons/ember-data-model-fragments/pull/426) Bump follow-redirects from 1.14.7 to 1.14.8 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
|
33
|
+
|
|
34
|
+
#### Committers: 3
|
|
35
|
+
- Charles Fries ([@charlesfries](https://github.com/charlesfries))
|
|
36
|
+
- Rich Glazerman ([@richgt](https://github.com/richgt))
|
|
37
|
+
- Vincent Molinié ([@VincentMolinie](https://github.com/VincentMolinie))
|
|
38
|
+
|
|
9
39
|
## v5.0.0-beta.8 (2022-06-07)
|
|
10
40
|
|
|
11
41
|
#### :bug: Bug Fix
|
package/README.md
CHANGED
|
@@ -580,6 +580,36 @@ import AnimalSerializer from './animal';
|
|
|
580
580
|
export default AnimalSerializer;
|
|
581
581
|
```
|
|
582
582
|
|
|
583
|
+
## TypeScript
|
|
584
|
+
|
|
585
|
+
TypeScript declarations are included out of the box. For additional type safety for `createFragment`, `push`, etc. you can index your fragment classes in the `FragmentRegistry`:
|
|
586
|
+
|
|
587
|
+
```typescript
|
|
588
|
+
// app/models/address.ts
|
|
589
|
+
import Fragment from 'ember-data-model-fragments/fragment';
|
|
590
|
+
import { attr } from '@ember-data/model';
|
|
591
|
+
|
|
592
|
+
export default class AddressFragment extends Fragment {
|
|
593
|
+
@attr('string')
|
|
594
|
+
declare street: string;
|
|
595
|
+
|
|
596
|
+
@attr('string')
|
|
597
|
+
declare city: string;
|
|
598
|
+
|
|
599
|
+
@attr('string')
|
|
600
|
+
declare region: string;
|
|
601
|
+
|
|
602
|
+
@attr('string')
|
|
603
|
+
declare country: string;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
declare module 'ember-data-model-fragments/types/registries/fragment' {
|
|
607
|
+
export default interface FragmentRegistry {
|
|
608
|
+
address: AddressFragment;
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
```
|
|
612
|
+
|
|
583
613
|
## Limitations
|
|
584
614
|
|
|
585
615
|
### Conflict Resolution
|
package/addon/record-data.js
CHANGED
|
@@ -238,7 +238,7 @@ export default class FragmentRecordData extends RecordData {
|
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
isStateInitializing() {
|
|
241
|
-
return gte('ember-data', '3.28.0') && !this._record
|
|
241
|
+
return gte('ember-data', '3.28.0') && !this._record?.___recordState;
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
// PUBLIC API
|
package/attributes.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import Model from '@ember-data/model';
|
|
2
|
+
import EmberArray from '@ember/array';
|
|
3
|
+
import ComputedProperty from '@ember/object/computed';
|
|
4
|
+
import Fragment from 'ember-data-model-fragments/fragment';
|
|
5
|
+
import FragmentRegistry from 'ember-data-model-fragments/types/registries/fragment';
|
|
6
|
+
// eslint-disable-next-line ember/use-ember-data-rfc-395-imports
|
|
7
|
+
import TransformRegistry from 'ember-data/types/registries/transform';
|
|
8
|
+
|
|
9
|
+
interface FragmentArray<T extends Fragment> extends EmberArray<T> {
|
|
10
|
+
addFragment(fragment: T): T;
|
|
11
|
+
removeFragment(fragment: T): T;
|
|
12
|
+
createFragment(attributes?: Partial<T>): T;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface FragmentOptions<K extends keyof FragmentRegistry> {
|
|
16
|
+
polymorphic?: boolean;
|
|
17
|
+
typeKey?: string | ((data: FragmentRegistry[K], owner: Model) => string);
|
|
18
|
+
defaultValue?: Partial<FragmentRegistry[K]> | (() => Partial<FragmentRegistry[K]>);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type TransformType<K extends keyof TransformRegistry> = ReturnType<
|
|
22
|
+
TransformRegistry[K]['deserialize']
|
|
23
|
+
>;
|
|
24
|
+
|
|
25
|
+
export function fragment<K extends keyof FragmentRegistry>(
|
|
26
|
+
type: K,
|
|
27
|
+
options?: FragmentOptions<K>,
|
|
28
|
+
): ComputedProperty<FragmentRegistry[K]>;
|
|
29
|
+
export function fragmentArray<K extends keyof FragmentRegistry>(
|
|
30
|
+
type: K,
|
|
31
|
+
options?: FragmentOptions<K>,
|
|
32
|
+
): ComputedProperty<FragmentArray<FragmentRegistry[K]>>;
|
|
33
|
+
export function array<T extends keyof TransformRegistry>(): ComputedProperty<TransformRegistry[T]>;
|
|
34
|
+
|
|
35
|
+
export function fragmentOwner(): ComputedProperty<Model>;
|
package/ext.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import FragmentRegistry from 'ember-data-model-fragments/types/registries/fragment';
|
|
2
|
+
import EmberStore from '@ember-data/store';
|
|
3
|
+
|
|
4
|
+
export class Store extends EmberStore {
|
|
5
|
+
createFragment<K extends keyof FragmentRegistry>(
|
|
6
|
+
type: K,
|
|
7
|
+
attributes?: Partial<FragmentRegistry[K]>,
|
|
8
|
+
): FragmentRegistry[K];
|
|
9
|
+
}
|
package/fragment.d.ts
ADDED
package/package.json
CHANGED
package/record-data.d.ts
ADDED