@ember-data/serializer 4.11.0 → 4.12.0-beta.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/addon/-private.js +209 -0
- package/addon/-private.js.map +1 -0
- package/addon/{-private/embedded-records-mixin.js → embedded-records-mixin-0a9e9148.js} +87 -146
- package/addon/embedded-records-mixin-0a9e9148.js.map +1 -0
- package/addon/index.js +178 -0
- package/addon/index.js.map +1 -0
- package/addon/json-api.js +96 -233
- package/addon/json-api.js.map +1 -0
- package/addon/json.js +198 -432
- package/addon/json.js.map +1 -0
- package/addon/rest.js +133 -270
- package/addon/rest.js.map +1 -0
- package/addon/{-private/transforms/transform.js → transform-63fba437.js} +9 -15
- package/addon/transform-63fba437.js.map +1 -0
- package/addon/transform.js +2 -2
- package/addon/transform.js.map +1 -0
- package/addon-main.js +90 -0
- package/package.json +39 -8
- package/addon/-private/index.js +0 -11
- package/addon/-private/transforms/boolean.js +0 -70
- package/addon/-private/transforms/date.js +0 -59
- package/addon/-private/transforms/number.js +0 -57
- package/addon/-private/transforms/string.js +0 -38
- package/addon/index.ts +0 -259
- package/blueprints/serializer/files/__root__/__path__/__name__.js +0 -4
- package/blueprints/serializer/index.js +0 -14
- package/blueprints/serializer/native-files/__root__/__path__/__name__.js +0 -4
- package/blueprints/serializer-test/index.js +0 -29
- package/blueprints/serializer-test/mocha-files/__root__/__path__/__test__.js +0 -20
- package/blueprints/serializer-test/mocha-rfc-232-files/__root__/__path__/__test__.js +0 -25
- package/blueprints/serializer-test/qunit-files/__root__/__path__/__test__.js +0 -24
- package/blueprints/transform/files/__root__/__path__/__name__.js +0 -11
- package/blueprints/transform/index.js +0 -7
- package/blueprints/transform/native-files/__root__/__path__/__name__.js +0 -11
- package/blueprints/transform-test/index.js +0 -29
- package/blueprints/transform-test/mocha-files/__root__/__path__/__test__.js +0 -17
- package/blueprints/transform-test/mocha-rfc-232-files/__root__/__path__/__test__.js +0 -14
- package/blueprints/transform-test/qunit-files/__root__/__path__/__test__.js +0 -13
- package/index.js +0 -25
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
export { e as EmbeddedRecordsMixin } from "./embedded-records-mixin-0a9e9148";
|
|
2
|
+
import { T as Transform } from "./transform-63fba437";
|
|
3
|
+
import { isNone } from '@ember/utils';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
@module @ember-data/serializer
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
The `BooleanTransform` class is used to serialize and deserialize
|
|
11
|
+
boolean attributes on Ember Data record objects. This transform is
|
|
12
|
+
used when `boolean` is passed as the type parameter to the
|
|
13
|
+
[attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.
|
|
14
|
+
|
|
15
|
+
Usage
|
|
16
|
+
|
|
17
|
+
```app/models/user.js
|
|
18
|
+
import Model, { attr } from '@ember-data/model';
|
|
19
|
+
|
|
20
|
+
export default class UserModel extends Model {
|
|
21
|
+
@attr('boolean') isAdmin;
|
|
22
|
+
@attr('string') name;
|
|
23
|
+
@attr('string') email;
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
By default, the boolean transform only allows for values of `true` or
|
|
28
|
+
`false`. You can opt into allowing `null` values for
|
|
29
|
+
boolean attributes via `attr('boolean', { allowNull: true })`
|
|
30
|
+
|
|
31
|
+
```app/models/user.js
|
|
32
|
+
import Model, { attr } from '@ember-data/model';
|
|
33
|
+
|
|
34
|
+
export default class UserModel extends Model {
|
|
35
|
+
@attr('string') email;
|
|
36
|
+
@attr('string') username;
|
|
37
|
+
@attr('boolean', { allowNull: true }) wantsWeeklyEmail;
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
@class BooleanTransform
|
|
42
|
+
@public
|
|
43
|
+
@extends Transform
|
|
44
|
+
*/
|
|
45
|
+
class BooleanTransform extends Transform {
|
|
46
|
+
deserialize(serialized, options) {
|
|
47
|
+
if (isNone(serialized) && options.allowNull === true) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
let type = typeof serialized;
|
|
51
|
+
if (type === 'boolean') {
|
|
52
|
+
return serialized;
|
|
53
|
+
} else if (type === 'string') {
|
|
54
|
+
return /^(true|t|1)$/i.test(serialized);
|
|
55
|
+
} else if (type === 'number') {
|
|
56
|
+
return serialized === 1;
|
|
57
|
+
} else {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
serialize(deserialized, options) {
|
|
62
|
+
if (isNone(deserialized) && options.allowNull === true) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
return Boolean(deserialized);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
@module @ember-data/serializer
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
The `DateTransform` class is used to serialize and deserialize
|
|
75
|
+
date attributes on Ember Data record objects. This transform is used
|
|
76
|
+
when `date` is passed as the type parameter to the
|
|
77
|
+
[attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function. It uses the [`ISO 8601`](https://en.wikipedia.org/wiki/ISO_8601)
|
|
78
|
+
standard.
|
|
79
|
+
|
|
80
|
+
```app/models/score.js
|
|
81
|
+
import Model, { attr, belongsTo } from '@ember-data/model';
|
|
82
|
+
|
|
83
|
+
export default class ScoreModel extends Model {
|
|
84
|
+
@attr('number') value;
|
|
85
|
+
@belongsTo('player') player;
|
|
86
|
+
@attr('date') date;
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
@class DateTransform
|
|
91
|
+
@public
|
|
92
|
+
@extends Transform
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
class DateTransform extends Transform {
|
|
96
|
+
deserialize(serialized) {
|
|
97
|
+
let type = typeof serialized;
|
|
98
|
+
if (type === 'string') {
|
|
99
|
+
let offset = serialized.indexOf('+');
|
|
100
|
+
if (offset !== -1 && serialized.length - 5 === offset) {
|
|
101
|
+
offset += 3;
|
|
102
|
+
return new Date(serialized.slice(0, offset) + ':' + serialized.slice(offset));
|
|
103
|
+
}
|
|
104
|
+
return new Date(serialized);
|
|
105
|
+
} else if (type === 'number') {
|
|
106
|
+
return new Date(serialized);
|
|
107
|
+
} else if (serialized === null || serialized === undefined) {
|
|
108
|
+
// if the value is null return null
|
|
109
|
+
// if the value is not present in the data return undefined
|
|
110
|
+
return serialized;
|
|
111
|
+
} else {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
serialize(date) {
|
|
116
|
+
if (date instanceof Date && !isNaN(date)) {
|
|
117
|
+
return date.toISOString();
|
|
118
|
+
} else {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
@module @ember-data/serializer
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
function isNumber(value) {
|
|
129
|
+
return value === value && value !== Infinity && value !== -Infinity;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
The `NumberTransform` class is used to serialize and deserialize
|
|
134
|
+
numeric attributes on Ember Data record objects. This transform is
|
|
135
|
+
used when `number` is passed as the type parameter to the
|
|
136
|
+
[attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.
|
|
137
|
+
|
|
138
|
+
Usage
|
|
139
|
+
|
|
140
|
+
```app/models/score.js
|
|
141
|
+
import Model, { attr, belongsTo } from '@ember-data/model';
|
|
142
|
+
|
|
143
|
+
export default class ScoreModel extends Model {
|
|
144
|
+
@attr('number') value;
|
|
145
|
+
@belongsTo('player') player;
|
|
146
|
+
@attr('date') date;
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
@class NumberTransform
|
|
151
|
+
@public
|
|
152
|
+
@extends Transform
|
|
153
|
+
*/
|
|
154
|
+
class NumberTransform extends Transform {
|
|
155
|
+
deserialize(serialized) {
|
|
156
|
+
let transformed;
|
|
157
|
+
if (serialized === '' || serialized === null || serialized === undefined) {
|
|
158
|
+
return null;
|
|
159
|
+
} else {
|
|
160
|
+
transformed = Number(serialized);
|
|
161
|
+
return isNumber(transformed) ? transformed : null;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
serialize(deserialized) {
|
|
165
|
+
let transformed;
|
|
166
|
+
if (deserialized === '' || deserialized === null || deserialized === undefined) {
|
|
167
|
+
return null;
|
|
168
|
+
} else {
|
|
169
|
+
transformed = Number(deserialized);
|
|
170
|
+
return isNumber(transformed) ? transformed : null;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
@module @ember-data/serializer
|
|
177
|
+
*/
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
The `StringTransform` class is used to serialize and deserialize
|
|
181
|
+
string attributes on Ember Data record objects. This transform is
|
|
182
|
+
used when `string` is passed as the type parameter to the
|
|
183
|
+
[attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.
|
|
184
|
+
|
|
185
|
+
Usage
|
|
186
|
+
|
|
187
|
+
```app/models/user.js
|
|
188
|
+
import Model, { attr, belongsTo } from '@ember-data/model';
|
|
189
|
+
|
|
190
|
+
export default class UserModel extends Model {
|
|
191
|
+
@attr('boolean') isAdmin;
|
|
192
|
+
@attr('string') name;
|
|
193
|
+
@attr('string') email;
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
@class StringTransform
|
|
198
|
+
@public
|
|
199
|
+
@extends Transform
|
|
200
|
+
*/
|
|
201
|
+
class StringTransform extends Transform {
|
|
202
|
+
deserialize(serialized) {
|
|
203
|
+
return isNone(serialized) ? null : String(serialized);
|
|
204
|
+
}
|
|
205
|
+
serialize(deserialized) {
|
|
206
|
+
return isNone(deserialized) ? null : String(deserialized);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
export { BooleanTransform, DateTransform, NumberTransform, StringTransform, Transform };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"-private.js","sources":["../src/-private/transforms/boolean.js","../src/-private/transforms/date.js","../src/-private/transforms/number.js","../src/-private/transforms/string.js"],"sourcesContent":["import { isNone } from '@ember/utils';\n\nimport Transform from './transform';\n\n/**\n @module @ember-data/serializer\n*/\n\n/**\n The `BooleanTransform` class is used to serialize and deserialize\n boolean attributes on Ember Data record objects. This transform is\n used when `boolean` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.\n\n Usage\n\n ```app/models/user.js\n import Model, { attr } from '@ember-data/model';\n\n export default class UserModel extends Model {\n @attr('boolean') isAdmin;\n @attr('string') name;\n @attr('string') email;\n }\n ```\n\n By default, the boolean transform only allows for values of `true` or\n `false`. You can opt into allowing `null` values for\n boolean attributes via `attr('boolean', { allowNull: true })`\n\n ```app/models/user.js\n import Model, { attr } from '@ember-data/model';\n\n export default class UserModel extends Model {\n @attr('string') email;\n @attr('string') username;\n @attr('boolean', { allowNull: true }) wantsWeeklyEmail;\n }\n ```\n\n @class BooleanTransform\n @public\n @extends Transform\n */\nexport default class BooleanTransform extends Transform {\n deserialize(serialized, options) {\n if (isNone(serialized) && options.allowNull === true) {\n return null;\n }\n\n let type = typeof serialized;\n if (type === 'boolean') {\n return serialized;\n } else if (type === 'string') {\n return /^(true|t|1)$/i.test(serialized);\n } else if (type === 'number') {\n return serialized === 1;\n } else {\n return false;\n }\n }\n\n serialize(deserialized, options) {\n if (isNone(deserialized) && options.allowNull === true) {\n return null;\n }\n\n return Boolean(deserialized);\n }\n}\n","import Transform from './transform';\n\n/**\n @module @ember-data/serializer\n*/\n\n/**\n The `DateTransform` class is used to serialize and deserialize\n date attributes on Ember Data record objects. This transform is used\n when `date` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function. It uses the [`ISO 8601`](https://en.wikipedia.org/wiki/ISO_8601)\n standard.\n\n ```app/models/score.js\n import Model, { attr, belongsTo } from '@ember-data/model';\n\n export default class ScoreModel extends Model {\n @attr('number') value;\n @belongsTo('player') player;\n @attr('date') date;\n }\n ```\n\n @class DateTransform\n @public\n @extends Transform\n */\n\nexport default class DateTransform extends Transform {\n deserialize(serialized) {\n let type = typeof serialized;\n\n if (type === 'string') {\n let offset = serialized.indexOf('+');\n\n if (offset !== -1 && serialized.length - 5 === offset) {\n offset += 3;\n return new Date(serialized.slice(0, offset) + ':' + serialized.slice(offset));\n }\n return new Date(serialized);\n } else if (type === 'number') {\n return new Date(serialized);\n } else if (serialized === null || serialized === undefined) {\n // if the value is null return null\n // if the value is not present in the data return undefined\n return serialized;\n } else {\n return null;\n }\n }\n\n serialize(date) {\n if (date instanceof Date && !isNaN(date)) {\n return date.toISOString();\n } else {\n return null;\n }\n }\n}\n","import Transform from './transform';\n\n/**\n @module @ember-data/serializer\n*/\n\nfunction isNumber(value) {\n return value === value && value !== Infinity && value !== -Infinity;\n}\n\n/**\n The `NumberTransform` class is used to serialize and deserialize\n numeric attributes on Ember Data record objects. This transform is\n used when `number` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.\n\n Usage\n\n ```app/models/score.js\n import Model, { attr, belongsTo } from '@ember-data/model';\n\n export default class ScoreModel extends Model {\n @attr('number') value;\n @belongsTo('player') player;\n @attr('date') date;\n }\n ```\n\n @class NumberTransform\n @public\n @extends Transform\n */\nexport default class NumberTransform extends Transform {\n deserialize(serialized) {\n let transformed;\n\n if (serialized === '' || serialized === null || serialized === undefined) {\n return null;\n } else {\n transformed = Number(serialized);\n\n return isNumber(transformed) ? transformed : null;\n }\n }\n\n serialize(deserialized) {\n let transformed;\n\n if (deserialized === '' || deserialized === null || deserialized === undefined) {\n return null;\n } else {\n transformed = Number(deserialized);\n\n return isNumber(transformed) ? transformed : null;\n }\n }\n}\n","import { isNone as none } from '@ember/utils';\n\nimport Transform from './transform';\n\n/**\n @module @ember-data/serializer\n*/\n\n/**\n The `StringTransform` class is used to serialize and deserialize\n string attributes on Ember Data record objects. This transform is\n used when `string` is passed as the type parameter to the\n [attr](/ember-data/release/functions/@ember-data%2Fmodel/attr) function.\n\n Usage\n\n ```app/models/user.js\n import Model, { attr, belongsTo } from '@ember-data/model';\n\n export default class UserModel extends Model {\n @attr('boolean') isAdmin;\n @attr('string') name;\n @attr('string') email;\n }\n ```\n\n @class StringTransform\n @public\n @extends Transform\n */\nexport default class StringTransform extends Transform {\n deserialize(serialized) {\n return none(serialized) ? null : String(serialized);\n }\n serialize(deserialized) {\n return none(deserialized) ? null : String(deserialized);\n }\n}\n"],"names":["BooleanTransform","Transform","deserialize","serialized","options","isNone","allowNull","type","test","serialize","deserialized","Boolean","DateTransform","offset","indexOf","length","Date","slice","undefined","date","isNaN","toISOString","isNumber","value","Infinity","NumberTransform","transformed","Number","StringTransform","none","String"],"mappings":"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"}
|