@ember-data/model 4.1.0-alpha.8 → 4.2.0-alpha.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.
@@ -24,17 +24,17 @@ import { computedMacroWithOptionalParams } from './util';
24
24
 
25
25
  ```app/models/post.js
26
26
  import Model, { hasMany } from '@ember-data/model';
27
-
27
+
28
28
  export default class PostModel extends Model {
29
- @hasMany('comment') comments;
29
+ @hasMany('comment') comments;
30
30
  }
31
31
  ```
32
32
 
33
33
  ```app/models/comment.js
34
34
  import Model, { belongsTo } from '@ember-data/model';
35
-
35
+
36
36
  export default class CommentModel extends Model {
37
- @belongsTo('post') post;
37
+ @belongsTo('post') post;
38
38
  }
39
39
  ```
40
40
 
@@ -54,7 +54,7 @@ import { computedMacroWithOptionalParams } from './util';
54
54
  import Model, { hasMany } from '@ember-data/model';
55
55
 
56
56
  export default class TagModel extends Model {
57
- @hasMany('post') posts;
57
+ @hasMany('post') posts;
58
58
  }
59
59
  ```
60
60
 
@@ -16,7 +16,6 @@ import { CUSTOM_MODEL_CLASS, RECORD_DATA_ERRORS, REQUEST_SERVICE } from '@ember-
16
16
  import { HAS_DEBUG_PACKAGE } from '@ember-data/private-build-infra';
17
17
  import {
18
18
  DEPRECATE_EVENTED_API_USAGE,
19
- DEPRECATE_MODEL_TOJSON,
20
19
  DEPRECATE_RECORD_LIFECYCLE_EVENT_METHODS,
21
20
  } from '@ember-data/private-build-infra/deprecations';
22
21
  import {
@@ -78,7 +77,7 @@ function findPossibleInverses(type, inverseType, name, relationshipsSoFar) {
78
77
 
79
78
  /*
80
79
  * This decorator allows us to lazily compute
81
- * an expensive getter on first-access and therafter
80
+ * an expensive getter on first-access and thereafter
82
81
  * never recompute it.
83
82
  */
84
83
  function computeOnce(target, key, desc) {
@@ -119,8 +118,10 @@ function computeOnce(target, key, desc) {
119
118
  @uses DeprecatedEvented
120
119
  */
121
120
  class Model extends EmberObject {
122
- init(...args) {
123
- super.init(...args);
121
+ init(options = {}) {
122
+ const createProps = options._createProps;
123
+ delete options._createProps;
124
+ super.init(options);
124
125
 
125
126
  if (DEBUG) {
126
127
  if (!this._internalModel) {
@@ -133,6 +134,7 @@ class Model extends EmberObject {
133
134
  if (CUSTOM_MODEL_CLASS) {
134
135
  this.___recordState = new RecordState(this);
135
136
  }
137
+ this.setProperties(createProps);
136
138
  }
137
139
 
138
140
  /**
@@ -1867,7 +1869,7 @@ class Model extends EmberObject {
1867
1869
 
1868
1870
  ```javascript
1869
1871
  import { get } from '@ember/object';
1870
- import Blog from 'app/models/blog'
1872
+ import Person from 'app/models/person'
1871
1873
 
1872
1874
  let attributes = Person.attributes
1873
1875
 
@@ -2076,6 +2078,7 @@ class Model extends EmberObject {
2076
2078
  // the values initialized during create to `setUnknownProperty`
2077
2079
  Model.prototype._internalModel = null;
2078
2080
  Model.prototype.store = null;
2081
+ Model.prototype._createProps = null;
2079
2082
 
2080
2083
  if (HAS_DEBUG_PACKAGE) {
2081
2084
  /**
@@ -2173,47 +2176,6 @@ if (DEPRECATE_EVENTED_API_USAGE) {
2173
2176
  });
2174
2177
  }
2175
2178
 
2176
- if (DEPRECATE_MODEL_TOJSON) {
2177
- /**
2178
- Use [JSONSerializer](JSONSerializer.html) to
2179
- get the JSON representation of a record.
2180
-
2181
- `toJSON` takes an optional hash as a parameter, currently
2182
- supported options are:
2183
-
2184
- - `includeId`: `true` if the record's ID should be included in the
2185
- JSON representation.
2186
-
2187
- @method toJSON
2188
- @public
2189
- @param {Object} options
2190
- @return {Object} A JSON representation of the object.
2191
- */
2192
- Model.reopen({
2193
- toJSON(options) {
2194
- // container is for lazy transform lookups
2195
- deprecate(
2196
- `Called the built-in \`toJSON\` on the record "${this.constructor.modelName}:${this.id}". The built-in \`toJSON\` method on instances of classes extending \`Model\` is deprecated. For more information see the link below.`,
2197
- false,
2198
- {
2199
- id: 'ember-data:model.toJSON',
2200
- until: '4.0',
2201
- url: 'https://deprecations.emberjs.com/ember-data/v3.x#toc_record-toJSON',
2202
- for: '@ember-data/model',
2203
- since: {
2204
- available: '3.15',
2205
- enabled: '3.15',
2206
- },
2207
- }
2208
- );
2209
- let serializer = this._internalModel.store.serializerFor('-default');
2210
- let snapshot = this._internalModel.createSnapshot();
2211
-
2212
- return serializer.serialize(snapshot, options);
2213
- },
2214
- });
2215
- }
2216
-
2217
2179
  if (DEBUG) {
2218
2180
  let lookupDescriptor = function lookupDescriptor(obj, keyName) {
2219
2181
  let current = obj;
@@ -1,3 +1,4 @@
1
+ import ArrayMixin from '@ember/array';
1
2
  import { assert } from '@ember/debug';
2
3
  import { dependentKeyCompat } from '@ember/object/compat';
3
4
  import { tracked } from '@glimmer/tracking';
@@ -16,7 +17,7 @@ import { DEPRECATE_EVENTED_API_USAGE } from '@ember-data/private-build-infra/dep
16
17
 
17
18
  A PromiseManyArray is an array-like proxy that also proxies certain method calls
18
19
  to the underlying ManyArray in addition to being "promisified".
19
-
20
+
20
21
  Right now we proxy:
21
22
 
22
23
  * `reload()`
@@ -41,6 +42,14 @@ export default class PromiseManyArray {
41
42
  this._update(promise, content);
42
43
  this.isDestroyed = false;
43
44
  this.isDestroying = false;
45
+
46
+ const meta = Ember.meta(this);
47
+ meta.hasMixin = (mixin: Object) => {
48
+ if (mixin === ArrayMixin) {
49
+ return true;
50
+ }
51
+ return false;
52
+ };
44
53
  }
45
54
 
46
55
  //---- Methods/Properties on ArrayProxy that we will keep as our API
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-data/model",
3
- "version": "4.1.0-alpha.8",
3
+ "version": "4.2.0-alpha.1",
4
4
  "description": "The default blueprint for ember-cli addons.",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -18,11 +18,12 @@
18
18
  "test:node": "mocha"
19
19
  },
20
20
  "dependencies": {
21
- "@ember-data/canary-features": "4.1.0-alpha.8",
22
- "@ember-data/private-build-infra": "4.1.0-alpha.8",
23
- "@ember-data/store": "4.1.0-alpha.8",
21
+ "@ember-data/canary-features": "4.2.0-alpha.1",
22
+ "@ember-data/private-build-infra": "4.2.0-alpha.1",
23
+ "@ember-data/store": "4.2.0-alpha.1",
24
24
  "@ember/edition-utils": "^1.2.0",
25
25
  "@ember/string": "^3.0.0",
26
+ "ember-auto-import": "^2.2.4",
26
27
  "ember-cached-decorator-polyfill": "^0.1.4",
27
28
  "ember-cli-babel": "^7.26.6",
28
29
  "ember-cli-string-utils": "^1.1.0",
@@ -32,11 +33,10 @@
32
33
  "inflection": "~1.13.1"
33
34
  },
34
35
  "devDependencies": {
35
- "@ember-data/unpublished-test-infra": "4.1.0-alpha.8",
36
+ "@ember-data/unpublished-test-infra": "4.2.0-alpha.1",
36
37
  "@ember/optional-features": "^2.0.0",
37
- "@ember/test-helpers": "^2.2.5",
38
+ "@ember/test-helpers": "^2.6.0",
38
39
  "broccoli-asset-rev": "^3.0.0",
39
- "ember-auto-import": "^2.0.0",
40
40
  "ember-cli": "~3.26.1",
41
41
  "ember-cli-blueprint-test-helpers": "^0.19.1",
42
42
  "ember-cli-dependency-checker": "^3.2.0",
@@ -48,9 +48,9 @@
48
48
  "ember-export-application-global": "^2.0.1",
49
49
  "ember-load-initializers": "^2.1.1",
50
50
  "ember-maybe-import-regenerator": "^0.1.6",
51
- "ember-qunit": "^5.1.4",
52
- "ember-resolver": "^8.0.0",
53
- "ember-source": "~3.27.1",
51
+ "ember-qunit": "^5.1.5",
52
+ "ember-resolver": "^8.0.3",
53
+ "ember-source": "~4.0.0",
54
54
  "ember-source-channel-url": "^3.0.0",
55
55
  "ember-try": "^1.4.0",
56
56
  "loader.js": "^4.7.0",