@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
|
|
package/addon/-private/model.js
CHANGED
|
@@ -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
|
|
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(
|
|
123
|
-
|
|
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
|
|
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.
|
|
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.
|
|
22
|
-
"@ember-data/private-build-infra": "4.
|
|
23
|
-
"@ember-data/store": "4.
|
|
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.
|
|
36
|
+
"@ember-data/unpublished-test-infra": "4.2.0-alpha.1",
|
|
36
37
|
"@ember/optional-features": "^2.0.0",
|
|
37
|
-
"@ember/test-helpers": "^2.
|
|
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.
|
|
52
|
-
"ember-resolver": "^8.0.
|
|
53
|
-
"ember-source": "~
|
|
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",
|