@ember-data/serializer 4.1.0 → 4.2.0-alpha.10

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.
@@ -580,7 +580,7 @@ export default Mixin.create({
580
580
  hash.included = hash.included || [];
581
581
  hash.included.push(data);
582
582
  if (included) {
583
- hash.included.push(...included);
583
+ hash.included = hash.included.concat(included);
584
584
  }
585
585
 
586
586
  hasMany[i] = { id: data.id, type: data.type };
@@ -604,7 +604,7 @@ export default Mixin.create({
604
604
  hash.included = hash.included || [];
605
605
  hash.included.push(data);
606
606
  if (included) {
607
- hash.included.push(...included);
607
+ hash.included = hash.included.concat(included);
608
608
  }
609
609
 
610
610
  let belongsTo = { id: data.id, type: data.type };
@@ -42,7 +42,7 @@ import Transform from './transform';
42
42
  @public
43
43
  @extends Transform
44
44
  */
45
- export default Transform.extend({
45
+ export default class BooleanTransform extends Transform {
46
46
  deserialize(serialized, options) {
47
47
  if (isNone(serialized) && options.allowNull === true) {
48
48
  return null;
@@ -58,7 +58,7 @@ export default Transform.extend({
58
58
  } else {
59
59
  return false;
60
60
  }
61
- },
61
+ }
62
62
 
63
63
  serialize(deserialized, options) {
64
64
  if (isNone(deserialized) && options.allowNull === true) {
@@ -66,5 +66,5 @@ export default Transform.extend({
66
66
  }
67
67
 
68
68
  return Boolean(deserialized);
69
- },
70
- });
69
+ }
70
+ }
@@ -26,7 +26,7 @@ import Transform from './transform';
26
26
  @extends Transform
27
27
  */
28
28
 
29
- export default Transform.extend({
29
+ export default class DateTransform extends Transform {
30
30
  deserialize(serialized) {
31
31
  let type = typeof serialized;
32
32
 
@@ -47,7 +47,7 @@ export default Transform.extend({
47
47
  } else {
48
48
  return null;
49
49
  }
50
- },
50
+ }
51
51
 
52
52
  serialize(date) {
53
53
  if (date instanceof Date && !isNaN(date)) {
@@ -55,5 +55,5 @@ export default Transform.extend({
55
55
  } else {
56
56
  return null;
57
57
  }
58
- },
59
- });
58
+ }
59
+ }
@@ -30,7 +30,7 @@ function isNumber(value) {
30
30
  @public
31
31
  @extends Transform
32
32
  */
33
- export default Transform.extend({
33
+ export default class NumberTransform extends Transform {
34
34
  deserialize(serialized) {
35
35
  let transformed;
36
36
 
@@ -41,7 +41,7 @@ export default Transform.extend({
41
41
 
42
42
  return isNumber(transformed) ? transformed : null;
43
43
  }
44
- },
44
+ }
45
45
 
46
46
  serialize(deserialized) {
47
47
  let transformed;
@@ -53,5 +53,5 @@ export default Transform.extend({
53
53
 
54
54
  return isNumber(transformed) ? transformed : null;
55
55
  }
56
- },
57
- });
56
+ }
57
+ }
@@ -28,11 +28,11 @@ import Transform from './transform';
28
28
  @public
29
29
  @extends Transform
30
30
  */
31
- export default Transform.extend({
31
+ export default class StringTransform extends Transform {
32
32
  deserialize(serialized) {
33
33
  return none(serialized) ? null : String(serialized);
34
- },
34
+ }
35
35
  serialize(deserialized) {
36
36
  return none(deserialized) ? null : String(deserialized);
37
- },
38
- });
37
+ }
38
+ }
@@ -76,7 +76,7 @@ import EmberObject from '@ember/object';
76
76
  @class Transform
77
77
  @public
78
78
  */
79
- export default EmberObject.extend({
79
+ export default class Transform extends EmberObject {
80
80
  /**
81
81
  When given a deserialized value from a record attribute this
82
82
  method must return the serialized value.
@@ -97,8 +97,6 @@ export default EmberObject.extend({
97
97
  @param options hash of options passed to `attr`
98
98
  @return The serialized value
99
99
  */
100
- serialize: null,
101
-
102
100
  /**
103
101
  When given a serialized value from a JSON object this method must
104
102
  return the deserialized value for the record attribute.
@@ -117,5 +115,4 @@ export default EmberObject.extend({
117
115
  @param options hash of options passed to `attr`
118
116
  @return The deserialized value
119
117
  */
120
- deserialize: null,
121
- });
118
+ }
package/addon/json-api.js CHANGED
@@ -8,7 +8,6 @@ import { DEBUG } from '@glimmer/env';
8
8
 
9
9
  import { pluralize, singularize } from 'ember-inflector';
10
10
 
11
- import { CUSTOM_MODEL_CLASS } from '@ember-data/canary-features';
12
11
  import JSONSerializer from '@ember-data/serializer/json';
13
12
  import { normalizeModelName } from '@ember-data/store';
14
13
 
@@ -675,12 +674,7 @@ const JSONAPISerializer = JSONSerializer.extend({
675
674
 
676
675
  if (this._canSerialize(key)) {
677
676
  let belongsTo = snapshot.belongsTo(key);
678
- let belongsToIsNotNew;
679
- if (CUSTOM_MODEL_CLASS) {
680
- belongsToIsNotNew = belongsTo && !belongsTo.isNew;
681
- } else {
682
- belongsToIsNotNew = belongsTo && belongsTo.record && !belongsTo.record.get('isNew');
683
- }
677
+ let belongsToIsNotNew = belongsTo && !belongsTo.isNew;
684
678
 
685
679
  if (belongsTo === null || belongsToIsNotNew) {
686
680
  json.relationships = json.relationships || {};
package/addon/json.js CHANGED
@@ -540,7 +540,7 @@ const JSONSerializer = Serializer.extend({
540
540
  let item = payload[i];
541
541
  let { data, included } = this.normalize(primaryModelClass, item);
542
542
  if (included) {
543
- documentHash.included.push(...included);
543
+ documentHash.included = documentHash.included.concat(included);
544
544
  }
545
545
  ret[i] = data;
546
546
  }
package/addon/rest.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * @module @ember-data/serializer/rest
3
3
  */
4
4
  import { makeArray } from '@ember/array';
5
- import { assert, deprecate, warn } from '@ember/debug';
5
+ import { assert, warn } from '@ember/debug';
6
6
  import { camelize } from '@ember/string';
7
7
  import { isNone, typeOf } from '@ember/utils';
8
8
  import { DEBUG } from '@glimmer/env';
@@ -185,7 +185,7 @@ const RESTSerializer = JSONSerializer.extend({
185
185
  let { data, included } = this._normalizePolymorphicRecord(store, hash, prop, modelClass, serializer);
186
186
  documentHash.data.push(data);
187
187
  if (included) {
188
- documentHash.included.push(...included);
188
+ documentHash.included = documentHash.included.concat(included);
189
189
  }
190
190
  });
191
191
 
@@ -284,22 +284,10 @@ const RESTSerializer = JSONSerializer.extend({
284
284
  continue;
285
285
  }
286
286
 
287
- if (DEBUG) {
288
- let isQueryRecordAnArray = requestType === 'queryRecord' && isPrimary && Array.isArray(value);
289
- let message =
290
- 'The adapter returned an array for the primary data of a `queryRecord` response. This is deprecated as `queryRecord` should return a single record.';
291
-
292
- deprecate(message, !isQueryRecordAnArray, {
293
- id: 'ds.serializer.rest.queryRecord-array-response',
294
- until: '3.0',
295
- url: 'https://deprecations.emberjs.com/ember-data/v2.x/#toc_store-queryrecord-array-response-with-restserializer',
296
- for: '@ember-data/serializer',
297
- since: {
298
- available: '3.0',
299
- enabled: '3.0',
300
- },
301
- });
302
- }
287
+ assert(
288
+ 'The adapter returned an array for the primary data of a `queryRecord` response. `queryRecord` should return a single record.',
289
+ !(requestType === 'queryRecord' && isPrimary && Array.isArray(value))
290
+ );
303
291
 
304
292
  /*
305
293
  Support primary data as an object instead of an array.
@@ -316,7 +304,7 @@ const RESTSerializer = JSONSerializer.extend({
316
304
  let { data, included } = this._normalizePolymorphicRecord(store, value, prop, primaryModelClass, this);
317
305
  documentHash.data = data;
318
306
  if (included) {
319
- documentHash.included.push(...included);
307
+ documentHash.included = documentHash.included.concat(included);
320
308
  }
321
309
  continue;
322
310
  }
@@ -324,7 +312,7 @@ const RESTSerializer = JSONSerializer.extend({
324
312
  let { data, included } = this._normalizeArray(store, typeName, value, prop);
325
313
 
326
314
  if (included) {
327
- documentHash.included.push(...included);
315
+ documentHash.included = documentHash.included.concat(included);
328
316
  }
329
317
 
330
318
  if (isSingle) {
@@ -352,7 +340,7 @@ const RESTSerializer = JSONSerializer.extend({
352
340
  documentHash.data = data;
353
341
  } else {
354
342
  if (data) {
355
- documentHash.included.push(...data);
343
+ documentHash.included = documentHash.included.concat(data);
356
344
  }
357
345
  }
358
346
  }
@@ -418,7 +406,7 @@ const RESTSerializer = JSONSerializer.extend({
418
406
  let { data, included } = typeSerializer.normalize(type, hash, prop);
419
407
  documentHash.data.push(data);
420
408
  if (included) {
421
- documentHash.included.push(...included);
409
+ documentHash.included = documentHash.included.concat(included);
422
410
  }
423
411
  });
424
412
  }
@@ -1,6 +1,6 @@
1
1
  import { expect } from 'chai';
2
2
  import { describe, it } from 'mocha';
3
- import { setupTest } from 'ember-mocha';
3
+ import { setupTest } from '<%= dasherizedPackageName %>/tests/helpers';
4
4
 
5
5
  describe('<%= friendlyTestDescription %>', function() {
6
6
  setupTest();
@@ -1,5 +1,5 @@
1
1
  import { module, test } from 'qunit';
2
- import { setupTest } from 'ember-qunit';
2
+ import { setupTest } from '<%= dasherizedPackageName %>/tests/helpers';
3
3
 
4
4
  module('<%= friendlyTestDescription %>', function(hooks) {
5
5
  setupTest(hooks);
@@ -1,6 +1,6 @@
1
1
  import { expect } from 'chai';
2
2
  import { describe, it } from 'mocha';
3
- import { setupTest } from 'ember-mocha';
3
+ import { setupTest } from '<%= dasherizedPackageName %>/tests/helpers';
4
4
 
5
5
  describe('<%= friendlyTestDescription %>', function() {
6
6
  setupTest();
@@ -1,5 +1,5 @@
1
1
  import { module, test } from 'qunit';
2
- import { setupTest } from 'ember-qunit';
2
+ import { setupTest } from '<%= dasherizedPackageName %>/tests/helpers';
3
3
 
4
4
  module('<%= friendlyTestDescription %>', function(hooks) {
5
5
  setupTest(hooks);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-data/serializer",
3
- "version": "4.1.0",
3
+ "version": "4.2.0-alpha.10",
4
4
  "description": "The default blueprint for ember-cli addons.",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -18,38 +18,38 @@
18
18
  "test:node": "mocha"
19
19
  },
20
20
  "dependencies": {
21
- "@ember-data/private-build-infra": "4.1.0",
22
- "@ember-data/store": "4.1.0",
21
+ "@ember-data/private-build-infra": "4.2.0-alpha.10",
22
+ "@ember-data/store": "4.2.0-alpha.10",
23
23
  "ember-auto-import": "^2.2.4",
24
- "ember-cli-babel": "^7.26.6",
24
+ "ember-cli-babel": "^7.26.11",
25
25
  "ember-cli-test-info": "^1.0.0",
26
- "ember-cli-typescript": "^4.1.0"
26
+ "ember-cli-typescript": "^5.0.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@ember-data/unpublished-test-infra": "4.1.0",
29
+ "@ember-data/unpublished-test-infra": "4.2.0-alpha.10",
30
30
  "@ember/optional-features": "^2.0.0",
31
31
  "@ember/string": "^3.0.0",
32
32
  "@ember/test-helpers": "^2.6.0",
33
33
  "broccoli-asset-rev": "^3.0.0",
34
- "ember-cli": "~3.26.1",
34
+ "ember-cli": "~4.1.1",
35
35
  "ember-cli-blueprint-test-helpers": "^0.19.1",
36
36
  "ember-cli-dependency-checker": "^3.2.0",
37
- "ember-cli-htmlbars": "^5.1.2",
37
+ "ember-cli-htmlbars": "^6.0.1",
38
38
  "ember-cli-inject-live-reload": "^2.0.2",
39
39
  "ember-cli-sri": "^2.1.1",
40
40
  "ember-cli-terser": "~4.0.1",
41
41
  "ember-disable-prototype-extensions": "^1.1.3",
42
42
  "ember-export-application-global": "^2.0.1",
43
43
  "ember-load-initializers": "^2.1.1",
44
- "ember-maybe-import-regenerator": "^0.1.6",
44
+ "ember-maybe-import-regenerator": "^1.0.0",
45
45
  "ember-qunit": "^5.1.5",
46
- "ember-resolver": "^8.0.0",
47
- "ember-source": "~4.0.0",
46
+ "ember-resolver": "^8.0.3",
47
+ "ember-source": "~4.2.0",
48
48
  "ember-source-channel-url": "^3.0.0",
49
- "ember-try": "^1.4.0",
49
+ "ember-try": "^2.0.0",
50
50
  "loader.js": "^4.7.0",
51
- "qunit": "^2.15.0",
52
- "qunit-dom": "^1.6.0",
51
+ "qunit": "^2.17.0",
52
+ "qunit-dom": "^2.0.0",
53
53
  "silent-error": "^1.1.1",
54
54
  "webpack": "^5.37.1"
55
55
  },