@ember-data-mirror/serializer 5.6.0-beta.0 → 5.6.0-beta.1
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/addon-main.cjs +1 -1
- package/dist/index.js +1 -306
- package/dist/json-api.js +1 -531
- package/dist/json.js +1 -6
- package/dist/rest.js +1 -1274
- package/dist/transform.js +1 -336
- package/package.json +7 -24
- package/unstable-preview-types/index.d.ts +81 -243
- package/unstable-preview-types/json-api.d.ts +2 -512
- package/unstable-preview-types/json.d.ts +2 -1091
- package/unstable-preview-types/rest.d.ts +2 -568
- package/unstable-preview-types/transform.d.ts +3 -10
- package/dist/index.js.map +0 -1
- package/dist/json-CVTR4xWv.js +0 -1396
- package/dist/json-CVTR4xWv.js.map +0 -1
- package/dist/json-api.js.map +0 -1
- package/dist/json.js.map +0 -1
- package/dist/rest.js.map +0 -1
- package/dist/transform.js.map +0 -1
- package/unstable-preview-types/-private/embedded-records-mixin.d.ts +0 -102
- package/unstable-preview-types/-private/embedded-records-mixin.d.ts.map +0 -1
- package/unstable-preview-types/-private/transforms/boolean.d.ts +0 -52
- package/unstable-preview-types/-private/transforms/boolean.d.ts.map +0 -1
- package/unstable-preview-types/-private/transforms/boolean.type-test.d.ts +0 -4
- package/unstable-preview-types/-private/transforms/boolean.type-test.d.ts.map +0 -1
- package/unstable-preview-types/-private/transforms/date.d.ts +0 -33
- package/unstable-preview-types/-private/transforms/date.d.ts.map +0 -1
- package/unstable-preview-types/-private/transforms/number.d.ts +0 -34
- package/unstable-preview-types/-private/transforms/number.d.ts.map +0 -1
- package/unstable-preview-types/-private/transforms/string.d.ts +0 -34
- package/unstable-preview-types/-private/transforms/string.d.ts.map +0 -1
- package/unstable-preview-types/-private/transforms/transform.d.ts +0 -126
- package/unstable-preview-types/-private/transforms/transform.d.ts.map +0 -1
- package/unstable-preview-types/-private/utils.d.ts +0 -6
- package/unstable-preview-types/-private/utils.d.ts.map +0 -1
- package/unstable-preview-types/index.d.ts.map +0 -1
- package/unstable-preview-types/json-api.d.ts.map +0 -1
- package/unstable-preview-types/json.d.ts.map +0 -1
- package/unstable-preview-types/rest.d.ts.map +0 -1
- package/unstable-preview-types/transform.d.ts.map +0 -1
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
declare module '@ember-data-mirror/serializer/-private/embedded-records-mixin' {
|
|
2
|
-
/**
|
|
3
|
-
@module @ember-data-mirror/serializer/rest
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
## Using Embedded Records
|
|
7
|
-
|
|
8
|
-
`EmbeddedRecordsMixin` supports serializing embedded records.
|
|
9
|
-
|
|
10
|
-
To set up embedded records, include the mixin when extending a serializer,
|
|
11
|
-
then define and configure embedded (model) relationships.
|
|
12
|
-
|
|
13
|
-
Note that embedded records will serialize with the serializer for their model instead of the serializer in which they are defined.
|
|
14
|
-
|
|
15
|
-
Note also that this mixin does not work with JSONAPISerializer because the JSON:API specification does not describe how to format embedded resources.
|
|
16
|
-
|
|
17
|
-
Below is an example of a per-type serializer (`post` type).
|
|
18
|
-
|
|
19
|
-
```app/serializers/post.js
|
|
20
|
-
import RESTSerializer, { EmbeddedRecordsMixin } from '@ember-data-mirror/serializer/rest';
|
|
21
|
-
|
|
22
|
-
export default class PostSerializer extends RESTSerializer.extend(EmbeddedRecordsMixin) {
|
|
23
|
-
attrs = {
|
|
24
|
-
author: { embedded: 'always' },
|
|
25
|
-
comments: { serialize: 'ids' }
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
Note that this use of `{ embedded: 'always' }` is unrelated to
|
|
30
|
-
the `{ embedded: 'always' }` that is defined as an option on `attr` as part of
|
|
31
|
-
defining a model while working with the `ActiveModelSerializer`. Nevertheless,
|
|
32
|
-
using `{ embedded: 'always' }` as an option to `attr` is not a valid way to set up
|
|
33
|
-
embedded records.
|
|
34
|
-
|
|
35
|
-
The `attrs` option for a resource `{ embedded: 'always' }` is shorthand for:
|
|
36
|
-
|
|
37
|
-
```js
|
|
38
|
-
{
|
|
39
|
-
serialize: 'records',
|
|
40
|
-
deserialize: 'records'
|
|
41
|
-
}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Configuring Attrs
|
|
45
|
-
|
|
46
|
-
A resource's `attrs` option may be set to use `ids`, `records` or false for the
|
|
47
|
-
`serialize` and `deserialize` settings.
|
|
48
|
-
|
|
49
|
-
The `attrs` property can be set on the `ApplicationSerializer` or a per-type
|
|
50
|
-
serializer.
|
|
51
|
-
|
|
52
|
-
In the case where embedded JSON is expected while extracting a payload (reading)
|
|
53
|
-
the setting is `deserialize: 'records'`, there is no need to use `ids` when
|
|
54
|
-
extracting as that is the default behaviour without this mixin if you are using
|
|
55
|
-
the vanilla `EmbeddedRecordsMixin`. Likewise, to embed JSON in the payload while
|
|
56
|
-
serializing `serialize: 'records'` is the setting to use. There is an option of
|
|
57
|
-
not embedding JSON in the serialized payload by using `serialize: 'ids'`. If you
|
|
58
|
-
do not want the relationship sent at all, you can use `serialize: false`.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
### EmbeddedRecordsMixin defaults
|
|
62
|
-
If you do not overwrite `attrs` for a specific relationship, the `EmbeddedRecordsMixin`
|
|
63
|
-
will behave in the following way:
|
|
64
|
-
|
|
65
|
-
BelongsTo: `{ serialize: 'id', deserialize: 'id' }`
|
|
66
|
-
HasMany: `{ serialize: false, deserialize: 'ids' }`
|
|
67
|
-
|
|
68
|
-
### Model Relationships
|
|
69
|
-
|
|
70
|
-
Embedded records must have a model defined to be extracted and serialized. Note that
|
|
71
|
-
when defining any relationships on your model such as `belongsTo` and `hasMany`, you
|
|
72
|
-
should not both specify `async: true` and also indicate through the serializer's
|
|
73
|
-
`attrs` attribute that the related model should be embedded for deserialization.
|
|
74
|
-
If a model is declared embedded for deserialization (`embedded: 'always'` or `deserialize: 'records'`),
|
|
75
|
-
then do not use `async: true`.
|
|
76
|
-
|
|
77
|
-
To successfully extract and serialize embedded records the model relationships
|
|
78
|
-
must be set up correctly. See the
|
|
79
|
-
[defining relationships](https://guides.emberjs.com/current/models/relationships)
|
|
80
|
-
section of the **Defining Models** guide page.
|
|
81
|
-
|
|
82
|
-
Records without an `id` property are not considered embedded records, model
|
|
83
|
-
instances must have an `id` property to be used with Ember Data.
|
|
84
|
-
|
|
85
|
-
### Example JSON payloads, Models and Serializers
|
|
86
|
-
|
|
87
|
-
**When customizing a serializer it is important to grok what the customizations
|
|
88
|
-
are. Please read the docs for the methods this mixin provides, in case you need
|
|
89
|
-
to modify it to fit your specific needs.**
|
|
90
|
-
|
|
91
|
-
For example, review the docs for each method of this mixin:
|
|
92
|
-
* [normalize](/ember-data/release/classes/EmbeddedRecordsMixin/methods/normalize?anchor=normalize)
|
|
93
|
-
* [serializeBelongsTo](/ember-data/release/classes/EmbeddedRecordsMixin/methods/serializeBelongsTo?anchor=serializeBelongsTo)
|
|
94
|
-
* [serializeHasMany](/ember-data/release/classes/EmbeddedRecordsMixin/methods/serializeHasMany?anchor=serializeHasMany)
|
|
95
|
-
|
|
96
|
-
@class EmbeddedRecordsMixin
|
|
97
|
-
@public
|
|
98
|
-
*/
|
|
99
|
-
export const EmbeddedRecordsMixin: Mixin;
|
|
100
|
-
import Mixin from '@ember/object/mixin';
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=embedded-records-mixin.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embedded-records-mixin.d.ts","sourceRoot":"","sources":["../../src/-private/embedded-records-mixin.js"],"names":[],"mappings":"AAKA;;EAEE;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6FE;AACF,yCAwhBG;kBA9nBe,qBAAqB"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
declare module '@ember-data-mirror/serializer/-private/transforms/boolean' {
|
|
2
|
-
/**
|
|
3
|
-
@module @ember-data-mirror/serializer
|
|
4
|
-
*/
|
|
5
|
-
import type { TransformName } from '@warp-drive-mirror/core-types/symbols';
|
|
6
|
-
/**
|
|
7
|
-
The `BooleanTransform` class is used to serialize and deserialize
|
|
8
|
-
boolean attributes on Ember Data record objects. This transform is
|
|
9
|
-
used when `boolean` is passed as the type parameter to the
|
|
10
|
-
[attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.
|
|
11
|
-
|
|
12
|
-
Usage
|
|
13
|
-
|
|
14
|
-
```app/models/user.js
|
|
15
|
-
import Model, { attr } from '@ember-data-mirror/model';
|
|
16
|
-
|
|
17
|
-
export default class UserModel extends Model {
|
|
18
|
-
@attr('boolean') isAdmin;
|
|
19
|
-
@attr('string') name;
|
|
20
|
-
@attr('string') email;
|
|
21
|
-
}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
By default, the boolean transform only allows for values of `true` or
|
|
25
|
-
`false`. You can opt into allowing `null` values for
|
|
26
|
-
boolean attributes via `attr('boolean', { allowNull: true })`
|
|
27
|
-
|
|
28
|
-
```app/models/user.js
|
|
29
|
-
import Model, { attr } from '@ember-data-mirror/model';
|
|
30
|
-
|
|
31
|
-
export default class UserModel extends Model {
|
|
32
|
-
@attr('string') email;
|
|
33
|
-
@attr('string') username;
|
|
34
|
-
@attr('boolean', { allowNull: true }) wantsWeeklyEmail;
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
@class BooleanTransform
|
|
39
|
-
@public
|
|
40
|
-
*/
|
|
41
|
-
export class BooleanTransform {
|
|
42
|
-
deserialize(serialized: boolean | null | number | string, options?: {
|
|
43
|
-
allowNull?: boolean;
|
|
44
|
-
}): boolean | null;
|
|
45
|
-
serialize(deserialized: boolean | null, options?: {
|
|
46
|
-
allowNull?: boolean;
|
|
47
|
-
}): boolean | null;
|
|
48
|
-
[TransformName]: 'boolean';
|
|
49
|
-
static create(): BooleanTransform;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=boolean.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/boolean.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,gBAAgB;IAC3B,WAAW,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,GAAG,IAAI;IAgB5G,SAAS,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,GAAG,IAAI;IAQlF,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IAEnC,MAAM,CAAC,MAAM;CAGd"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boolean.type-test.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/boolean.type-test.ts"],"names":[],"mappings":""}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
declare module '@ember-data-mirror/serializer/-private/transforms/date' {
|
|
2
|
-
/**
|
|
3
|
-
@module @ember-data-mirror/serializer
|
|
4
|
-
*/
|
|
5
|
-
import { TransformName } from '@warp-drive-mirror/core-types/symbols';
|
|
6
|
-
/**
|
|
7
|
-
The `DateTransform` class is used to serialize and deserialize
|
|
8
|
-
date attributes on Ember Data record objects. This transform is used
|
|
9
|
-
when `date` is passed as the type parameter to the
|
|
10
|
-
[attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function. It uses the [`ISO 8601`](https://en.wikipedia.org/wiki/ISO_8601)
|
|
11
|
-
standard.
|
|
12
|
-
|
|
13
|
-
```app/models/score.js
|
|
14
|
-
import Model, { attr, belongsTo } from '@ember-data-mirror/model';
|
|
15
|
-
|
|
16
|
-
export default class ScoreModel extends Model {
|
|
17
|
-
@attr('number') value;
|
|
18
|
-
@belongsTo('player') player;
|
|
19
|
-
@attr('date') date;
|
|
20
|
-
}
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
@class DateTransform
|
|
24
|
-
@public
|
|
25
|
-
*/
|
|
26
|
-
export class DateTransform {
|
|
27
|
-
deserialize(serialized: string | number | null, _options?: Record<string, unknown>): Date | null;
|
|
28
|
-
serialize(date: Date, _options?: Record<string, unknown>): string | null;
|
|
29
|
-
[TransformName]: "date";
|
|
30
|
-
static create(): DateTransform;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=date.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/date.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,qBAAa,aAAa;IACxB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoBlF,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IASxE,CAAC,aAAa,CAAC,EAAG,MAAM,CAAU;IAElC,MAAM,CAAC,MAAM;CAGd"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
declare module '@ember-data-mirror/serializer/-private/transforms/number' {
|
|
2
|
-
/**
|
|
3
|
-
@module @ember-data-mirror/serializer
|
|
4
|
-
*/
|
|
5
|
-
import { TransformName } from '@warp-drive-mirror/core-types/symbols';
|
|
6
|
-
/**
|
|
7
|
-
The `NumberTransform` class is used to serialize and deserialize
|
|
8
|
-
numeric attributes on Ember Data record objects. This transform is
|
|
9
|
-
used when `number` is passed as the type parameter to the
|
|
10
|
-
[attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.
|
|
11
|
-
|
|
12
|
-
Usage
|
|
13
|
-
|
|
14
|
-
```app/models/score.js
|
|
15
|
-
import Model, { attr, belongsTo } from '@ember-data-mirror/model';
|
|
16
|
-
|
|
17
|
-
export default class ScoreModel extends Model {
|
|
18
|
-
@attr('number') value;
|
|
19
|
-
@belongsTo('player') player;
|
|
20
|
-
@attr('date') date;
|
|
21
|
-
}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
@class NumberTransform
|
|
25
|
-
@public
|
|
26
|
-
*/
|
|
27
|
-
export class NumberTransform {
|
|
28
|
-
deserialize(serialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null;
|
|
29
|
-
serialize(deserialized: string | number | null | undefined, _options?: Record<string, unknown>): number | null;
|
|
30
|
-
[TransformName]: "number";
|
|
31
|
-
static create(): NumberTransform;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=number.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/number.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAM/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,eAAe;IAC1B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAU9G,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAU9G,CAAC,aAAa,CAAC,EAAG,QAAQ,CAAU;IAEpC,MAAM,CAAC,MAAM;CAGd"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
declare module '@ember-data-mirror/serializer/-private/transforms/string' {
|
|
2
|
-
/**
|
|
3
|
-
@module @ember-data-mirror/serializer
|
|
4
|
-
*/
|
|
5
|
-
import { TransformName } from '@warp-drive-mirror/core-types/symbols';
|
|
6
|
-
/**
|
|
7
|
-
The `StringTransform` class is used to serialize and deserialize
|
|
8
|
-
string attributes on Ember Data record objects. This transform is
|
|
9
|
-
used when `string` is passed as the type parameter to the
|
|
10
|
-
[attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.
|
|
11
|
-
|
|
12
|
-
Usage
|
|
13
|
-
|
|
14
|
-
```app/models/user.js
|
|
15
|
-
import Model, { attr, belongsTo } from '@ember-data-mirror/model';
|
|
16
|
-
|
|
17
|
-
export default class UserModel extends Model {
|
|
18
|
-
@attr('boolean') isAdmin;
|
|
19
|
-
@attr('string') name;
|
|
20
|
-
@attr('string') email;
|
|
21
|
-
}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
@class StringTransform
|
|
25
|
-
@public
|
|
26
|
-
*/
|
|
27
|
-
export class StringTransform {
|
|
28
|
-
deserialize(serialized: unknown, _options?: Record<string, unknown>): string | null;
|
|
29
|
-
serialize(deserialized: unknown, _options?: Record<string, unknown>): string | null;
|
|
30
|
-
[TransformName]: "string";
|
|
31
|
-
static create(): StringTransform;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=string.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/string.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,eAAe;IAC1B,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAGnF,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAInF,CAAC,aAAa,CAAC,EAAG,QAAQ,CAAU;IAEpC,MAAM,CAAC,MAAM;CAGd"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
declare module '@ember-data-mirror/serializer/-private/transforms/transform' {
|
|
2
|
-
/**
|
|
3
|
-
@module @ember-data-mirror/serializer
|
|
4
|
-
*/
|
|
5
|
-
import EmberObject from '@ember/object';
|
|
6
|
-
import type { LegacyAttributeField } from '@warp-drive-mirror/core-types/schema/fields';
|
|
7
|
-
/**
|
|
8
|
-
The `Transform` class is used to serialize and deserialize model
|
|
9
|
-
attributes when they are saved or loaded from an
|
|
10
|
-
adapter. Subclassing `Transform` is useful for creating custom
|
|
11
|
-
attributes. All subclasses of `Transform` must implement a
|
|
12
|
-
`serialize` and a `deserialize` method.
|
|
13
|
-
|
|
14
|
-
Example
|
|
15
|
-
|
|
16
|
-
```app/transforms/temperature.js
|
|
17
|
-
|
|
18
|
-
// Converts centigrade in the JSON to fahrenheit in the app
|
|
19
|
-
export default class TemperatureTransform {
|
|
20
|
-
deserialize(serialized, options) {
|
|
21
|
-
return (serialized * 1.8) + 32;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
serialize(deserialized, options) {
|
|
25
|
-
return (deserialized - 32) / 1.8;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
static create() {
|
|
29
|
-
return new this();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Usage
|
|
35
|
-
|
|
36
|
-
```app/models/requirement.js
|
|
37
|
-
import Model, { attr } from '@ember-data-mirror/model';
|
|
38
|
-
|
|
39
|
-
export default class RequirementModel extends Model {
|
|
40
|
-
@attr('string') name;
|
|
41
|
-
@attr('temperature') temperature;
|
|
42
|
-
}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
The options passed into the `attr` function when the attribute is
|
|
46
|
-
declared on the model is also available in the transform.
|
|
47
|
-
|
|
48
|
-
```app/models/post.js
|
|
49
|
-
import Model, { attr } from '@ember-data-mirror/model';
|
|
50
|
-
|
|
51
|
-
export default class PostModel extends Model {
|
|
52
|
-
@attr('string') title;
|
|
53
|
-
@attr('markdown', {
|
|
54
|
-
markdown: {
|
|
55
|
-
gfm: false,
|
|
56
|
-
sanitize: true
|
|
57
|
-
}
|
|
58
|
-
})
|
|
59
|
-
markdown;
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
```app/transforms/markdown.js
|
|
64
|
-
export default class MarkdownTransform {
|
|
65
|
-
serialize(deserialized, options) {
|
|
66
|
-
return deserialized.raw;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
deserialize(serialized, options) {
|
|
70
|
-
let markdownOptions = options.markdown || {};
|
|
71
|
-
|
|
72
|
-
return marked(serialized, markdownOptions);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
static create() {
|
|
76
|
-
return new this();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
@class Transform
|
|
82
|
-
@public
|
|
83
|
-
*/
|
|
84
|
-
/**
|
|
85
|
-
When given a deserialized value from a record attribute this
|
|
86
|
-
method must return the serialized value.
|
|
87
|
-
|
|
88
|
-
Example
|
|
89
|
-
|
|
90
|
-
```javascript
|
|
91
|
-
serialize(deserialized, options) {
|
|
92
|
-
return deserialized ? null : Number(deserialized);
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
@method serialize
|
|
97
|
-
@public
|
|
98
|
-
@param deserialized The deserialized value
|
|
99
|
-
@param options hash of options passed to `attr`
|
|
100
|
-
@return The serialized value
|
|
101
|
-
*/
|
|
102
|
-
/**
|
|
103
|
-
When given a serialized value from a JSON object this method must
|
|
104
|
-
return the deserialized value for the record attribute.
|
|
105
|
-
|
|
106
|
-
Example
|
|
107
|
-
|
|
108
|
-
```javascript
|
|
109
|
-
deserialize(serialized, options) {
|
|
110
|
-
return empty(serialized) ? null : Number(serialized);
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
@method deserialize
|
|
115
|
-
@public
|
|
116
|
-
@param serialized The serialized value
|
|
117
|
-
@param options hash of options passed to `attr`
|
|
118
|
-
@return The deserialized value
|
|
119
|
-
*/
|
|
120
|
-
export interface Transform {
|
|
121
|
-
serialize(value: unknown, options: LegacyAttributeField['options']): unknown;
|
|
122
|
-
deserialize(value: unknown, options: LegacyAttributeField['options']): unknown;
|
|
123
|
-
}
|
|
124
|
-
export const Transform: typeof EmberObject;
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/-private/transforms/transform.ts"],"names":[],"mappings":"AAAA;;EAEE;AACF,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH;;;;;;;;;;;;;;;;;EAiBE;AACF;;;;;;;;;;;;;;;;;EAiBE;AACF,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IAC7E,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;CAChF;AACD,eAAO,MAAM,SAAS,oBAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/-private/utils.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvE,wBAAgB,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAUrD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2GE;AAEF,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAI9G;;;;;;;;;;;;;;;;;;;;;EAqBE;AAEF,MAAM,CAAC,OAAO,MAAO,SAAQ,WAAW;IACrB,KAAK,EAAE,KAAK,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;MAoBE;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkCE;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwCE;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;MA0BE;IACF,SAAS,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB,GAAG,qBAAqB;CAGlH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-api.d.ts","sourceRoot":"","sources":["../src/json-api.js"],"names":[],"mappings":";AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4HE;AACF;;;+BAqFoE,KACjE;6BA0CyH,KAAK,qBAAqB,KAAI;uCAyChG,KAAK,qBAEpD,KAAK;wCAaA,KAAI,qBAAoB,KAAK;oCASyH,KAAK,qBAAoB,KAAK;0CAmB7L,KAAK,qBAAoB,KAAK;wCAgBH,KAAK,qBAIhC,KAAK;qCAgBiC,KAAK,qBAAoB,KAAK;kCAgBvE,KAAC,qBAEa,KAAK;yCAgBU,KACjC,qBAAoB,KAAK;yCAqBtB,KAAI,qBAAqB,KAAI;yCAYmB,KAAK,qBAE7C,KAAK;iCAqBW,KAAK,qBAEnB,KAAK;mCAoBF,KAAK,qBACb,KAAH;kCAuBe,KAAK,qBAAoB,KAAK;8BAYxC,KAAK,qBAAqB,KAAI;;;;;;;;;;;;;qCA2O2sK,QAAQ,6BAA+C,kBAAkB;wBAA24I,QAAQ;+CAA2tD,KAAK,YAAwB,QAAQ;iCAAq1B,QAAQ;iCAAi6C,QAAQ;+BAAq9C,QAAQ;;uBAAm7E,KAAK,cAAoB,KAAK;yBAAk8E,KAAK,aAAoB,KAAK;;;;iEAAuhH,SAAS;;IAvnBjovB;;;;;MAKE;2CAHQ,MAAM,GACL,MAAM;IAkCjB;;;;;MAKE;2DAHQ,MAAM,GACL,MAAM;IASjB;;;;;MAKE;2CAHQ,MAAM,GACL,MAAM;IAuBjB;;;;;;;MAOE;uBAFQ,KAAK,WACL,MAAM;IAOhB;;;;;;;;;;MAUE;8BARQ,KAAK,qBACL,KAAK,WACL,MAAM,MACN,eAAa,2CAGZ,MAAM;;;IA0CjB;;;;;;;;;MASE;0CAFS,MAAM,GACL,MAAM;IAmBlB;;;;;;;;;;MAUE;qCAHS,MAAM,gBACN,MAAM,GACL,MAAM;IA6BlB;;;;;;MAME;6BAJQ,KAAK,gBACL,MAAM;IAQhB;;;;;;;;;;;MAWE;;IAKF;;;;;;;;;;MAUE;;;;;;;;;;IA8BF;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BE;;IAKF;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BE;;IAKF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwKE;wBAHQ,QAAQ,WACR,MAAM,mBACL,MAAM;;;;EA+FhB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../src/rest.js"],"names":[],"mappings":";;AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDE;AACF;;;+BAgII,KACJ;6BAmDmD,KAAK,qBACzC,KAAK;uCAgDN,KAAK,qBAAqB,KAAI;wCAkBV,KAAK,qBAAoB,KAAK;oCAmBrC,KAAK,qBAAoB,KAAK;0CAejD,KAAG,qBACG,KAAK;wCAuBD,KAClB,qBAAoB,KAAK;qCAuBb,KAAK,qBACP,KAAK;kCAewD,KAErE,qBAAoB,KAAK;yCAiBvB,KAAE,qBAAoB,KAAK;yCAmBJ,KAAI,qBAAoB,KAAK;yCAU3B,KAAK,qBAAqB,KAAI;iCAetC,KAAK,qBAAoB,KAAK;mCAiBrC,KAAK,qBAEH,KAAK;kCA0BP,KAAK,qBAAoB,KAAK;8BAWjB,KAAK,qBAAoB,KAAK;;;;;;;;;;;;;qCAiS2zI,QAAQ,6BAA+C,kBAAkB;wBAA24I,QAAQ;+CAA2tD,KAAK,YAAwB,QAAQ;iCAAq1B,QAAQ;iCAAi6C,QAAQ;+BAAq9C,QAAQ;;uBAAm7E,KAAK,cAAoB,KAAK;yBAAk8E,KAAK,aAAoB,KAAK;;;;iEAAuhH,SAAS;;IAhvBlwtB;;;;;;;;;;;;;;;;;;;;;;;;;MAyBE;;IAOF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkEE;IAEF;;;;;;;;;;;MAWE;2BANQ,KAAK,gCAEL,MAAM,iBAEL,MAAM;;IA0CjB;;;;;;;;;;MAUE;8BARQ,KAAK,qBACL,KAAK,WACL,MAAM,MACN,eAAa,2CAGZ,MAAM;;IAwIjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+BE;uBAFQ,KAAK,WACL,MAAM;IAiChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyDE;;IAOF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwJE;wBAHQ,QAAQ,WACR,MAAM,mBACL,MAAM;IAMjB;;;;;;;;;;;;;;;;;;;;;;;;;;MA0BE;4BAJQ,MAAM,aACN,KAAK,YACL,QAAQ,WACR,MAAM;IAOhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA8CE;;IAKF;;;;;;;;;;MAUE;uCAHQ,QAAQ,QACR,MAAM,gBACN,MAAM;IAchB;;;;;;;;;;OAUG;qDAJO,MAAM,oBACN,MAAM,uBACN,MAAM,mBACL,MAAM;EAmChB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA;;EAEE;AACF,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
|