From 7afbd992e72bb089ef50f748563572b08c7b2818 Mon Sep 17 00:00:00 2001 From: Eric Kelly Date: Tue, 21 Jul 2015 21:16:13 -0400 Subject: [PATCH] [BUGFIX release] Update `Ember.deprecate` & `Ember.warn` calls to include required options --- .../lib/adapters/build-url-mixin.js | 21 +++- packages/ember-data/lib/adapters/errors.js | 2 +- .../ember-data/lib/adapters/rest-adapter.js | 40 ++++-- packages/ember-data/lib/initializers/store.js | 13 +- packages/ember-data/lib/main.js | 13 +- .../lib/serializers/embedded-records-mixin.js | 6 +- .../lib/serializers/json-serializer.js | 10 +- .../lib/serializers/rest-serializer.js | 55 ++++++-- packages/ember-data/lib/system/adapter.js | 4 +- .../ember-data/lib/system/container-proxy.js | 6 +- packages/ember-data/lib/system/many-array.js | 10 +- packages/ember-data/lib/system/model/model.js | 10 +- .../lib/system/relationships/belongs-to.js | 18 ++- .../lib/system/relationships/ext.js | 8 +- .../lib/system/relationships/has-many.js | 5 +- .../relationships/state/relationship.js | 4 +- packages/ember-data/lib/system/snapshot.js | 20 ++- packages/ember-data/lib/system/store.js | 118 +++++++++++++----- .../system/store/container-instance-cache.js | 5 +- .../ember-data/lib/system/store/finders.js | 10 +- .../lib/system/store/serializer-response.js | 5 +- .../lib/system/store/serializers.js | 5 +- 22 files changed, 300 insertions(+), 88 deletions(-) diff --git a/packages/ember-data/lib/adapters/build-url-mixin.js b/packages/ember-data/lib/adapters/build-url-mixin.js index 328c224030b..adb426c2d45 100644 --- a/packages/ember-data/lib/adapters/build-url-mixin.js +++ b/packages/ember-data/lib/adapters/build-url-mixin.js @@ -128,7 +128,10 @@ var BuildURLMixin = Ember.Mixin.create({ */ urlForFindRecord: function(id, modelName, snapshot) { if (this.urlForFind !== urlForFind) { - Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.'); + Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.', false, { + id: 'ds.adapter.url-for-find-deprecated', + until: '2.0.0' + }); return this.urlForFind(id, modelName, snapshot); } return this._buildURL(modelName, id); @@ -160,7 +163,10 @@ var BuildURLMixin = Ember.Mixin.create({ */ urlForQuery: function(query, modelName) { if (this.urlForFindQuery !== urlForFindQuery) { - Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.'); + Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.', false, { + id: 'ds.adapter.url-for-find-query-deprecated', + until: '2.0.0' + }); return this.urlForFindQuery(query, modelName); } return this._buildURL(modelName); @@ -305,12 +311,19 @@ var BuildURLMixin = Ember.Mixin.create({ }); function urlForFind(id, modelName, snapshot) { - Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.'); + Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.', false, { + id: 'ds.adapter.url-for-find-deprecated', + until: '2.0.0' + }); + return this._buildURL(modelName, id); } function urlForFindQuery(query, modelName) { - Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.'); + Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.', false, { + id: 'ds.adapter.url-for-find-query-deprecated', + until: '2.0.0' + }); return this._buildURL(modelName); } diff --git a/packages/ember-data/lib/adapters/errors.js b/packages/ember-data/lib/adapters/errors.js index 6e755d1acd0..bcd55d18fd4 100644 --- a/packages/ember-data/lib/adapters/errors.js +++ b/packages/ember-data/lib/adapters/errors.js @@ -86,7 +86,7 @@ AdapterError.prototype = create(EmberError.prototype); */ export function InvalidError(errors) { if (!Ember.isArray(errors)) { - Ember.deprecate("`InvalidError` expects json-api formatted errors."); + Ember.deprecate('`InvalidError` expects json-api formatted errors.', false, { id: 'ds.errors.invalid-error-expects-json-api-format', until: '2.0.0' }); errors = errorsHashToArray(errors); } AdapterError.call(this, errors, "The adapter rejected the commit because it was invalid"); diff --git a/packages/ember-data/lib/adapters/rest-adapter.js b/packages/ember-data/lib/adapters/rest-adapter.js index 8b19a8529f3..7d5bcb25ec6 100644 --- a/packages/ember-data/lib/adapters/rest-adapter.js +++ b/packages/ember-data/lib/adapters/rest-adapter.js @@ -366,7 +366,10 @@ var RestAdapter = Adapter.extend(BuildURLMixin, { @deprecated Use [findRecord](#method_findRecord) instead */ find: function(store, type, id, snapshot) { - Ember.deprecate('RestAdapter#find has been deprecated and renamed to `findRecord`.'); + Ember.deprecate('RestAdapter#find has been deprecated and renamed to `findRecord`.', false, { + id: 'ds.adapter.find-renamed-to-find-record', + until: '2.0.0' + }); return this.ajax(this.buildURL(type.modelName, id, snapshot, 'find'), 'GET'); }, @@ -389,7 +392,10 @@ var RestAdapter = Adapter.extend(BuildURLMixin, { findRecord: function(store, type, id, snapshot) { var find = RestAdapter.prototype.find; if (find !== this.find) { - Ember.deprecate('RestAdapter#find has been deprecated and renamed to `findRecord`.'); + Ember.deprecate('RestAdapter#find has been deprecated and renamed to `findRecord`.', false, { + id: 'ds.adapter.find-renamed-to-find-record', + until: '2.0.0' + }); return this.find(store, type, id, snapshot); } return this.ajax(this.buildURL(type.modelName, id, snapshot, 'findRecord'), 'GET'); @@ -440,7 +446,10 @@ var RestAdapter = Adapter.extend(BuildURLMixin, { @deprecated Use [query](#method_query) instead */ findQuery: function(store, type, query) { - Ember.deprecate('RestAdapter#findQuery has been deprecated and renamed to `query`.'); + Ember.deprecate('RestAdapter#findQuery has been deprecated and renamed to `query`.', false, { + id: 'ds.adapter.find-query-renamed-to-query', + until: '2.0.0' + }); var url = this.buildURL(type.modelName, null, null, 'findQuery', query); if (this.sortQueryParams) { @@ -470,7 +479,10 @@ var RestAdapter = Adapter.extend(BuildURLMixin, { query: function(store, type, query) { var findQuery = RestAdapter.prototype.findQuery; if (findQuery !== this.findQuery) { - Ember.deprecate('RestAdapter#findQuery has been deprecated and renamed to `query`.'); + Ember.deprecate('RestAdapter#findQuery has been deprecated and renamed to `query`.', false, { + id: 'ds.adapter.find-query-renamed-to-query', + until: '2.0.0' + }); return this.findQuery(store, type, query); } @@ -900,7 +912,10 @@ var RestAdapter = Adapter.extend(BuildURLMixin, { let response; if (adapter.ajaxSuccess) { - Ember.deprecate("`ajaxSuccess` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead."); + Ember.deprecate("`ajaxSuccess` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead.", false, { + id: 'ds.adapter.ajax-success-deprecated', + until: '2.0.0' + }); response = adapter.ajaxSuccess(jqXHR, payload); } @@ -923,7 +938,10 @@ var RestAdapter = Adapter.extend(BuildURLMixin, { let error; if (adapter.ajaxError) { - Ember.deprecate("`ajaxError` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead."); + Ember.deprecate("`ajaxError` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead.", false, { + id: 'ds.adapter.ajax-error-deprecated', + until: '2.0.0' + }); error = adapter.ajaxError(jqXHR, textStatus, errorThrown); } @@ -1054,12 +1072,18 @@ if (Ember.platform.hasPropertyAccessors) { Ember.defineProperty(RestAdapter.prototype, 'maxUrlLength', { enumerable: false, get: function() { - Ember.deprecate('maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.'); + Ember.deprecate('maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.', false, { + id: 'ds.adapter.max-url-length-deprecated-case', + until: '2.0.0' + }); return this.maxURLLength; }, set: function(value) { - Ember.deprecate('maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.'); + Ember.deprecate('maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.', false, { + id: 'ds.adapter.max-url-length-deprecated-case', + until: '2.0.0' + }); set(this, 'maxURLLength', value); } }); diff --git a/packages/ember-data/lib/initializers/store.js b/packages/ember-data/lib/initializers/store.js index 0bdcacafd19..921f75371aa 100644 --- a/packages/ember-data/lib/initializers/store.js +++ b/packages/ember-data/lib/initializers/store.js @@ -13,7 +13,8 @@ import ContainerProxy from "ember-data/system/container-proxy"; */ export default function initializeStore(registry, application) { Ember.deprecate('Specifying a custom Store for Ember Data on your global namespace as `App.Store` ' + - 'has been deprecated. Please use `App.ApplicationStore` instead.', !(application && application.Store)); + 'has been deprecated. Please use `App.ApplicationStore` instead.', !(application && application.Store), + { id: 'ds.initializer.specifying-custom-store-on-global-namespace-deprecated', until: '2.0.0' }); registry.optionsForType('serializer', { singleton: false }); registry.optionsForType('adapter', { singleton: false }); @@ -37,7 +38,10 @@ export default function initializeStore(registry, application) { var store; if (registry.has('store:main')) { - Ember.deprecate('Registering a custom store as `store:main` or defining a store in app/store.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`'); + Ember.deprecate('Registering a custom store as `store:main` or defining a store in app/store.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`', false, { + id: 'ds.initializer.custom-store-as-store-main-deprecated', + until: '2.0.0' + }); store = registry.lookup('store:main'); } else { var storeMainProxy = new ContainerProxy(registry); @@ -47,7 +51,10 @@ export default function initializeStore(registry, application) { } if (registry.has('store:application')) { - Ember.deprecate('Registering a custom store as `store:application` or defining a store in app/stores/application.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`'); + Ember.deprecate('Registering a custom store as `store:main` or defining a store in app/store.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`', false, { + id: 'ds.initializer.custom-store-as-store-main-deprecated', + until: '2.0.0' + }); store = registry.lookup('store:application'); } else { var storeApplicationProxy = new ContainerProxy(registry); diff --git a/packages/ember-data/lib/main.js b/packages/ember-data/lib/main.js index 9cdc2cfa162..d4e963e9354 100644 --- a/packages/ember-data/lib/main.js +++ b/packages/ember-data/lib/main.js @@ -151,7 +151,9 @@ if (Ember.platform.hasPropertyAccessors) { get: function() { if (_ActiveModelSerializer === ActiveModelAdapter) { Ember.deprecate('The ActiveModelAdapter has been moved into a plugin. It will not be bundled with Ember Data in 2.0', false, { - url: 'https://github.com/ember-data/active-model-adapter' + url: 'https://github.com/ember-data/active-model-adapter', + id: 'ds.adapter.active-model-adapter-deprecated', + until: '2.0.0' }); } return _ActiveModelAdapter; @@ -164,7 +166,9 @@ if (Ember.platform.hasPropertyAccessors) { get: function() { if (_ActiveModelSerializer === ActiveModelSerializer) { Ember.deprecate('The ActiveModelSerializer has been moved into a plugin. It will not be bundled with Ember Data in 2.0', false, { - url: 'https://github.com/ember-data/active-model-adapter' + url: 'https://github.com/ember-data/active-model-adapter', + id: 'ds.serializer.active-model-serializer-deprecated', + until: '2.0.0' }); } return _ActiveModelSerializer; @@ -201,7 +205,10 @@ if (Ember.platform.hasPropertyAccessors) { Ember.defineProperty(DS, 'FixtureAdapter', { get: function() { if (_FixtureAdapter === FixtureAdapter) { - Ember.deprecate('DS.FixtureAdapter has been deprecated and moved into an unsupported addon: https://github.com/emberjs/ember-data-fixture-adapter/tree/master'); + Ember.deprecate('DS.FixtureAdapter has been deprecated and moved into an unsupported addon: https://github.com/emberjs/ember-data-fixture-adapter/tree/master', false, { + id: 'ds.adapter.fixture-adapter-deprecated', + until: '2.0.0' + }); } return _FixtureAdapter; }, diff --git a/packages/ember-data/lib/serializers/embedded-records-mixin.js b/packages/ember-data/lib/serializers/embedded-records-mixin.js index 0de58c326c3..e8476336464 100644 --- a/packages/ember-data/lib/serializers/embedded-records-mixin.js +++ b/packages/ember-data/lib/serializers/embedded-records-mixin.js @@ -316,7 +316,11 @@ var EmbeddedRecordsMixin = Ember.Mixin.create({ key = this.keyForAttribute(attr, 'serialize'); hasMany = snapshot.hasMany(attr); - Ember.warn("The embedded relationship '" + key + "' is undefined for '" + snapshot.modelName + "' with id '" + snapshot.id + "'. Please include it in your original payload.", Ember.typeOf(hasMany) !== 'undefined'); + Ember.warn( + `The embedded relationship '${key}' is undefined for '${snapshot.modelName}' with id '${snapshot.id}'. Please include it in your original payload.`, + Ember.typeOf(hasMany) !== 'undefined', + { id: 'ds.serializer.embedded-relationship-undefined' } + ); json[key] = Ember.A(hasMany).map(function(embeddedSnapshot) { var embeddedJson = embeddedSnapshot.record.serialize({ includeId: true }); diff --git a/packages/ember-data/lib/serializers/json-serializer.js b/packages/ember-data/lib/serializers/json-serializer.js index cc474e74051..f046999f374 100644 --- a/packages/ember-data/lib/serializers/json-serializer.js +++ b/packages/ember-data/lib/serializers/json-serializer.js @@ -1470,7 +1470,10 @@ var JSONSerializer = Serializer.extend({ extractSingle: function(store, typeClass, payload, id, requestType) { if (!this.get('didDeprecateNormalizePayload')) { this.set('didDeprecateNormalizePayload', true); - Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload); + Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload, { + id: 'ds.serializer.normalize-payload-deprecated', + until: '2.0.0' + }); } var normalizedPayload = this.normalizePayload(payload); return this.normalize(typeClass, normalizedPayload); @@ -1505,7 +1508,10 @@ var JSONSerializer = Serializer.extend({ extractArray: function(store, typeClass, arrayPayload, id, requestType) { if (!this.get('didDeprecateNormalizePayload')) { this.set('didDeprecateNormalizePayload', true); - Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload); + Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload, { + id: 'ds.serializer.normalize-payload-deprecated', + until: '2.0.0' + }); } var normalizedPayload = this.normalizePayload(arrayPayload); var serializer = this; diff --git a/packages/ember-data/lib/serializers/rest-serializer.js b/packages/ember-data/lib/serializers/rest-serializer.js index ab75e08833d..d8ef528a01d 100644 --- a/packages/ember-data/lib/serializers/rest-serializer.js +++ b/packages/ember-data/lib/serializers/rest-serializer.js @@ -194,7 +194,10 @@ var RESTSerializer = JSONSerializer.extend({ this.normalizeUsingDeclaredMapping(typeClass, hash); if (this.normalizeHash && this.normalizeHash[prop]) { - Ember.deprecate('`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.'); + Ember.deprecate('`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.', false, { + id: 'ds.serializer.normalize-hash-deprecated', + until: '2.0.0' + }); this.normalizeHash[prop](hash); } @@ -293,7 +296,9 @@ var RESTSerializer = JSONSerializer.extend({ var typeName = this.modelNameFromPayloadKey(modelName); if (!store.modelFactoryFor(typeName)) { - Ember.warn(this.warnMessageNoModelForKey(modelName, typeName), false); + Ember.warn(this.warnMessageNoModelForKey(modelName, typeName), false, { + id: 'ds.serializer.model-for-key-missing' + }); continue; } @@ -445,7 +450,10 @@ var RESTSerializer = JSONSerializer.extend({ @return {Object} the primary response to the original request */ extractSingle: function(store, primaryTypeClass, rawPayload, recordId) { - Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload); + Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload, { + id: 'ds.serializer.normalize-payload-deprecated', + until: '2.0.0' + }); var payload = this.normalizePayload(rawPayload); var primaryRecord; @@ -453,7 +461,9 @@ var RESTSerializer = JSONSerializer.extend({ var modelName = this.modelNameFromPayloadKey(prop); if (!store.modelFactoryFor(modelName)) { - Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false); + Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, { + id: 'ds.serializer.model-for-key-missing' + }); continue; } var isPrimary = this.isPrimaryType(store, modelName, primaryTypeClass); @@ -602,7 +612,10 @@ var RESTSerializer = JSONSerializer.extend({ to the original query. */ extractArray: function(store, primaryTypeClass, rawPayload) { - Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload); + Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload, { + id: 'ds.serializer.normalize-payload-deprecated', + until: '2.0.0' + }); var payload = this.normalizePayload(rawPayload); var primaryArray; @@ -617,7 +630,9 @@ var RESTSerializer = JSONSerializer.extend({ var typeName = this.modelNameFromPayloadKey(modelName); if (!store.modelFactoryFor(typeName)) { - Ember.warn(this.warnMessageNoModelForKey(prop, typeName), false); + Ember.warn(this.warnMessageNoModelForKey(prop, typeName), false, { + id: 'ds.serializer.model-for-key-missing' + }); continue; } var type = store.modelFor(typeName); @@ -684,13 +699,18 @@ var RESTSerializer = JSONSerializer.extend({ return; } - Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload); + Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload, { + id: 'ds.serializer.normalize-payload-deprecated', + until: '2.0.0' + }); var payload = this.normalizePayload(rawPayload); for (var prop in payload) { var modelName = this.modelNameFromPayloadKey(prop); if (!store.modelFactoryFor(modelName)) { - Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false); + Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, { + id: 'ds.serializer.model-for-key-missing' + }); continue; } var typeClass = store.modelFor(modelName); @@ -1013,7 +1033,10 @@ var RESTSerializer = JSONSerializer.extend({ @deprecated */ typeForRoot: function(modelName) { - Ember.deprecate("typeForRoot is deprecated. Use modelNameFromPayloadKey instead."); + Ember.deprecate("typeForRoot is deprecated. Use modelNameFromPayloadKey instead.", false, { + id: 'ds.serializer.type-for-root-deprecated', + until: '2.0.0' + }); return this.modelNameFromPayloadKey(modelName); }, @@ -1059,7 +1082,10 @@ export default RESTSerializer; */ function _newNormalize(modelClass, resourceHash, prop) { if (this.normalizeHash && this.normalizeHash[prop]) { - Ember.deprecate('`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.'); + Ember.deprecate('`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.', false, { + id: 'ds.serializer.normalize-hash-deprecated', + until: '2.0.0' + }); this.normalizeHash[prop](resourceHash); } } @@ -1075,13 +1101,18 @@ function _newPushPayload(store, rawPayload) { included: [] }; - Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload); + Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === JSONSerializer.prototype.normalizePayload, { + id: 'ds.serializer.normalize-payload-deprecated', + until: '2.0.0' + }); let payload = this.normalizePayload(rawPayload); for (var prop in payload) { var modelName = this.modelNameFromPayloadKey(prop); if (!store.modelFactoryFor(modelName)) { - Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false); + Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, { + id: 'ds.serializer.model-for-key-missing' + }); continue; } var type = store.modelFor(modelName); diff --git a/packages/ember-data/lib/system/adapter.js b/packages/ember-data/lib/system/adapter.js index ee66cdd9806..328c75b5faa 100644 --- a/packages/ember-data/lib/system/adapter.js +++ b/packages/ember-data/lib/system/adapter.js @@ -483,7 +483,7 @@ var Adapter = Ember.Object.extend({ */ shouldReloadAll: function(store, snapshotRecordArray) { var modelName = snapshotRecordArray.type.modelName; - Ember.deprecate(`The default behavior of shouldReloadAll will change in Ember Data 2.0 to always return false when there is at least one "${modelName}" record in the store. If you would like to preserve the current behavior please override shouldReloadAll in your adapter:application and return true.`); + Ember.deprecate(`The default behavior of shouldReloadAll will change in Ember Data 2.0 to always return false when there is at least one "${modelName}" record in the store. If you would like to preserve the current behavior please override shouldReloadAll in your adapter:application and return true.`, false, { id: 'ds.adapter.should-reload-all-default-behavior', until: '2.0.0' }); return true; }, @@ -504,7 +504,7 @@ var Adapter = Ember.Object.extend({ @return {Boolean} */ shouldBackgroundReloadRecord: function(store, snapshot) { - Ember.deprecate('The default behavior of `shouldBackgroundReloadRecord` will change in Ember Data 2.0 to always return true. If you would like to preserve the current behavior please override `shouldBackgroundReloadRecord` in your adapter:application and return false.'); + Ember.deprecate('The default behavior of `shouldBackgroundReloadRecord` will change in Ember Data 2.0 to always return true. If you would like to preserve the current behavior please override `shouldBackgroundReloadRecord` in your adapter:application and return false.', false, { id: 'ds.adapter.should-background-reload-record-default-behavior', until: '2.0.0' }); return false; }, diff --git a/packages/ember-data/lib/system/container-proxy.js b/packages/ember-data/lib/system/container-proxy.js index 577126cea4e..26ede4eebae 100644 --- a/packages/ember-data/lib/system/container-proxy.js +++ b/packages/ember-data/lib/system/container-proxy.js @@ -30,8 +30,10 @@ ContainerProxy.prototype.registerAlias = function(source, dest, preLookup) { ContainerProxy.prototype.registerDeprecation = function(deprecated, valid) { var preLookupCallback = function() { - Ember.deprecate("You tried to look up '" + deprecated + "', " + - "but this has been deprecated in favor of '" + valid + "'.", false); + Ember.deprecate(`You tried to look up '${deprecated}', but this has been deprecated in favor of '${valid}'.`, false, { + id: 'ds.store.deprecated-lookup', + until: '2.0.0' + }); }; return this.registerAlias(deprecated, valid, preLookupCallback); diff --git a/packages/ember-data/lib/system/many-array.js b/packages/ember-data/lib/system/many-array.js index 1a6f71da618..c21aeae88e1 100644 --- a/packages/ember-data/lib/system/many-array.js +++ b/packages/ember-data/lib/system/many-array.js @@ -291,7 +291,10 @@ export default Ember.Object.extend(Ember.MutableArray, Ember.Evented, { @deprecated Use `addObject()` instead */ addRecord: function(record) { - Ember.deprecate('Using manyArray.addRecord() has been deprecated. You should use manyArray.addObject() instead.'); + Ember.deprecate('Using manyArray.addRecord() has been deprecated. You should use manyArray.addObject() instead.', false, { + id: 'ds.many-array.add-record-deprecated', + until: '2.0.0' + }); this.addObject(record); }, @@ -301,7 +304,10 @@ export default Ember.Object.extend(Ember.MutableArray, Ember.Evented, { @deprecated Use `removeObject()` instead */ removeRecord: function(record) { - Ember.deprecate('Using manyArray.removeRecord() has been deprecated. You should use manyArray.removeObject() instead.'); + Ember.deprecate('Using manyArray.removeRecord() has been deprecated. You should use manyArray.removeObject() instead.', false, { + id: 'ds.many-array.remove-record-deprecated', + until: '2.0.0' + }); this.removeObject(record); } }); diff --git a/packages/ember-data/lib/system/model/model.js b/packages/ember-data/lib/system/model/model.js index 773d012822b..c6f5f158680 100644 --- a/packages/ember-data/lib/system/model/model.js +++ b/packages/ember-data/lib/system/model/model.js @@ -125,7 +125,10 @@ var Model = Ember.Object.extend(Ember.Evented, { @deprecated */ isDirty: Ember.computed('currentState.isDirty', function() { - Ember.deprecate('DS.Model#isDirty has been deprecated please use hasDirtyAttributes instead'); + Ember.deprecate('DS.Model#isDirty has been deprecated please use hasDirtyAttributes instead', false, { + id: 'ds.model.is-dirty-deprecated', + until: '2.0.0' + }); return this.get('currentState.isDirty'); }), /** @@ -695,7 +698,10 @@ var Model = Ember.Object.extend(Ember.Evented, { @deprecated Use `rollbackAttributes()` instead */ rollback: function() { - Ember.deprecate('Using model.rollback() has been deprecated. Use model.rollbackAttributes() to discard any unsaved changes to a model.'); + Ember.deprecate('Using model.rollback() has been deprecated. Use model.rollbackAttributes() to discard any unsaved changes to a model.', false, { + id: 'ds.model.rollback-deprecated', + until: '2.0.0' + }); this.rollbackAttributes(); }, diff --git a/packages/ember-data/lib/system/relationships/belongs-to.js b/packages/ember-data/lib/system/relationships/belongs-to.js index bfa3e2880f7..9dbd40986ae 100644 --- a/packages/ember-data/lib/system/relationships/belongs-to.js +++ b/packages/ember-data/lib/system/relationships/belongs-to.js @@ -108,11 +108,23 @@ function belongsTo(modelName, options) { return computedPolyfill({ get: function(key) { - Ember.warn('You provided a serialize option on the "' + key + '" property in the "' + this._internalModel.modelName + '" class, this belongs in the serializer. See DS.Serializer and it\'s implementations http://emberjs.com/api/data/classes/DS.Serializer.html', !opts.hasOwnProperty('serialize')); - Ember.warn('You provided an embedded option on the "' + key + '" property in the "' + this._internalModel.modelName + '" class, this belongs in the serializer. See DS.EmbeddedRecordsMixin http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html', !opts.hasOwnProperty('embedded')); + if (opts.hasOwnProperty('serialize')) { + Ember.warn(`You provided a serialize option on the "${key}" property in the "${this._internalModel.modelName}" class, this belongs in the serializer. See DS.Serializer and it's implementations http://emberjs.com/api/data/classes/DS.Serializer.html`, false, { + id: 'ds.model.serialize-option-in-belongs-to' + }); + } + + if (opts.hasOwnProperty('embedded')) { + Ember.warn(`You provided an embedded option on the "${key}" property in the "${this._internalModel.modelName}" class, this belongs in the serializer. See DS.EmbeddedRecordsMixin http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html`, false, { + id: 'ds.model.embedded-option-in-belongs-to' + }); + } if (meta.shouldWarnAsync) { - Ember.deprecate(`In Ember Data 2.0, relationships will be asynchronous by default. You must set \`${key}: DS.belongsTo('${modelName}', { async: false })\` if you wish for a relationship remain synchronous.`); + Ember.deprecate(`In Ember Data 2.0, relationships will be asynchronous by default. You must set \`${key}: DS.belongsTo('${modelName}', { async: false })\` if you wish for a relationship remain synchronous.`, false, { + id: 'ds.model.relationship-changing-to-asynchrounous-by-default', + until: '2.0.0' + }); meta.shouldWarnAsycn = false; } diff --git a/packages/ember-data/lib/system/relationships/ext.js b/packages/ember-data/lib/system/relationships/ext.js index 7896d94427c..38310ec3883 100644 --- a/packages/ember-data/lib/system/relationships/ext.js +++ b/packages/ember-data/lib/system/relationships/ext.js @@ -248,8 +248,6 @@ Model.reopenClass({ var inverseName, inverseKind, inverse; - Ember.warn("Detected a reflexive relationship by the name of '" + name + "' without an inverse option. Look at http://emberjs.com/guides/models/defining-models/#toc_reflexive-relation for how to explicitly specify inverses.", options.inverse || propertyMeta.type !== propertyMeta.parentType.modelName); - //If inverse is specified manually, return the inverse if (options.inverse) { inverseName = options.inverse; @@ -261,6 +259,12 @@ Model.reopenClass({ inverseKind = inverse.kind; } else { //No inverse was specified manually, we need to use a heuristic to guess one + if (propertyMeta.type === propertyMeta.parentType.modelName) { + Ember.warn(`Detected a reflexive relationship by the name of '${name}' without an inverse option. Look at http://emberjs.com/guides/models/defining-models/#toc_reflexive-relation for how to explicitly specify inverses.`, false, { + id: 'ds.model.reflexive-relationship-without-inverse' + }); + } + var possibleRelationships = findPossibleInverses(this, inverseType); if (possibleRelationships.length === 0) { return null; } diff --git a/packages/ember-data/lib/system/relationships/has-many.js b/packages/ember-data/lib/system/relationships/has-many.js index c545a2c8160..45f5fdec42c 100644 --- a/packages/ember-data/lib/system/relationships/has-many.js +++ b/packages/ember-data/lib/system/relationships/has-many.js @@ -147,7 +147,10 @@ function hasMany(type, options) { return computedPolyfill({ get: function(key) { if (meta.shouldWarnAsync) { - Ember.deprecate(`In Ember Data 2.0, relationships will be asynchronous by default. You must set \`${key}: DS.hasMany('${type}', { async: false })\` if you wish for a relationship remain synchronous.`); + Ember.deprecate(`In Ember Data 2.0, relationships will be asynchronous by default. You must set \`${key}: DS.hasMany('${type}', { async: false })\` if you wish for a relationship remain synchronous.`, false, { + id: 'ds.model.relationship-changing-to-asynchrounous-by-default', + until: '2.0.0' + }); meta.shouldWarnAsync = false; } var relationship = this._internalModel._relationships.get(key); diff --git a/packages/ember-data/lib/system/relationships/state/relationship.js b/packages/ember-data/lib/system/relationships/state/relationship.js index 20fcd352485..3eaddf6c0ed 100644 --- a/packages/ember-data/lib/system/relationships/state/relationship.js +++ b/packages/ember-data/lib/system/relationships/state/relationship.js @@ -209,7 +209,9 @@ Relationship.prototype = { }, updateLink: function(link) { - Ember.warn("You have pushed a record of type '" + this.record.type.modelName + "' with '" + this.key + "' as a link, but the association is not an async relationship.", this.isAsync); + Ember.warn(`You have pushed a record of type '${this.record.type.modelName}' with '${this.key}' as a link, but the association is not an async relationship.`, this.isAsync, { + id: 'ds.store.push-link-for-sync-relationship' + }); Ember.assert("You have pushed a record of type '" + this.record.type.modelName + "' with '" + this.key + "' as a link, but the value of that link is not a string.", typeof link === 'string' || link === null); if (link !== this.link) { this.link = link; diff --git a/packages/ember-data/lib/system/snapshot.js b/packages/ember-data/lib/system/snapshot.js index 637dbf8446c..efb51d45003 100644 --- a/packages/ember-data/lib/system/snapshot.js +++ b/packages/ember-data/lib/system/snapshot.js @@ -52,7 +52,10 @@ function Snapshot(internalModel) { // again. if (callDeprecate) { callDeprecate = false; - Ember.deprecate('Usage of `snapshot.constructor` is deprecated, use `snapshot.type` instead.'); + Ember.deprecate('Usage of `snapshot.constructor` is deprecated, use `snapshot.type` instead.', false, { + id: 'ds.snapshot.constructor-deprecator', + until: '2.0.0' + }); callDeprecate = true; } @@ -376,7 +379,10 @@ Snapshot.prototype = { @deprecated Use [attr](#method_attr), [belongsTo](#method_belongsTo) or [hasMany](#method_hasMany) instead */ get: function(keyName) { - Ember.deprecate('Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead.'); + Ember.deprecate('Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead.', false, { + id: 'ds.snapshot.get-deprecated', + until: '2.0.0' + }); if (keyName === 'id') { return this.id; @@ -422,7 +428,10 @@ Snapshot.prototype = { @private */ _createSnapshot: function() { - Ember.deprecate("You called _createSnapshot on what's already a DS.Snapshot. You shouldn't manually create snapshots in your adapter since the store passes snapshots to adapters by default."); + Ember.deprecate("You called _createSnapshot on what's already a DS.Snapshot. You shouldn't manually create snapshots in your adapter since the store passes snapshots to adapters by default.", false, { + id: 'ds.snapshot.create-snapshot-on-snapshot', + until: '2.0.0' + }); return this; } }; @@ -430,7 +439,10 @@ Snapshot.prototype = { Ember.defineProperty(Snapshot.prototype, 'typeKey', { enumerable: false, get: function() { - Ember.deprecate('Snapshot.typeKey is deprecated. Use snapshot.modelName instead.'); + Ember.deprecate('Snapshot.typeKey is deprecated. Use snapshot.modelName instead.', false, { + id: 'ds.snapshot.type-key-deprecated', + until: '2.0.0' + }); return this.modelName; }, set: function() { diff --git a/packages/ember-data/lib/system/store.js b/packages/ember-data/lib/system/store.js index 3ae60736689..cee152112bd 100644 --- a/packages/ember-data/lib/system/store.js +++ b/packages/ember-data/lib/system/store.js @@ -495,13 +495,19 @@ Store = Service.extend({ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of '+ Ember.inspect(modelName), typeof modelName === 'string'); if (arguments.length === 1) { - Ember.deprecate('Using store.find(type) has been deprecated. Use store.findAll(type) to retrieve all records for a given type.'); + Ember.deprecate('Using store.find(type) has been deprecated. Use store.findAll(type) to retrieve all records for a given type.', false, { + id: 'ds.store.find-with-type-deprecated', + until: '2.0.0' + }); return this.findAll(modelName); } // We are passed a query instead of an id. if (Ember.typeOf(id) === 'object') { - Ember.deprecate('Calling store.find() with a query object is deprecated. Use store.query() instead.'); + Ember.deprecate('Calling store.find() with a query object is deprecated. Use store.query() instead.', false, { + id: 'ds.store.find-with-type-deprecated', + until: '2.0.0' + }); return this.query(modelName, id); } var options = deprecatePreload(preload, this.modelFor(modelName), 'find'); @@ -521,7 +527,10 @@ Store = Service.extend({ fetchById: function(modelName, id, preload) { Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of '+ Ember.inspect(modelName), typeof modelName === 'string'); var options = deprecatePreload(preload, this.modelFor(modelName), 'fetchById'); - Ember.deprecate('Using store.fetchById(type, id) has been deprecated. Use store.findRecord(type, id, { reload: true }) to reload a record for a given type.'); + Ember.deprecate('Using store.fetchById(type, id) has been deprecated. Use store.findRecord(type, id, { reload: true }) to reload a record for a given type.', false, { + id: 'ds.store.fetch-by-id-deprecated', + until: '2.0.0' + }); if (this.hasRecordForId(modelName, id)) { return this.peekRecord(modelName, id).reload(); } else { @@ -539,7 +548,10 @@ Store = Service.extend({ @return {Promise} promise */ fetchAll: function(modelName) { - Ember.deprecate('Using store.fetchAll(type) has been deprecated. Use store.findAll(type, { reload: true }) to retrieve all records for a given type.'); + Ember.deprecate('Using store.fetchAll(type) has been deprecated. Use store.findAll(type, { reload: true }) to retrieve all records for a given type.', false, { + id: 'ds.store.fetch-all-deprecated', + until: '2.0.0' + }); return this.findAll(modelName, { reload: true }); }, @@ -553,7 +565,10 @@ Store = Service.extend({ */ fetch: function(modelName, id, preload) { Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of '+ Ember.inspect(modelName), typeof modelName === 'string'); - Ember.deprecate('Using store.fetch() has been deprecated. Use store.findRecord for fetching individual records or store.findAll for collections'); + Ember.deprecate('Using store.fetch() has been deprecated. Use store.findRecord for fetching individual records or store.findAll for collections', false, { + id: 'ds.store.fetch-deprecated', + until: '2.0.0' + }); return this.findRecord(modelName, id, { reload: true, preload: preload }); }, @@ -568,7 +583,10 @@ Store = Service.extend({ @return {Promise} promise */ findById: function(modelName, id, preload) { - Ember.deprecate('Using store.findById() has been deprecated. Use store.findRecord() to return a record for a given type and id combination.'); + Ember.deprecate('Using store.findById() has been deprecated. Use store.findRecord() to return a record for a given type and id combination.', false, { + id: 'ds.store.find-by-id-deprecated', + until: '2.0.0' + }); var options = deprecatePreload(preload, this.modelFor(modelName), 'findById'); return this.findRecord(modelName, id, options); }, @@ -788,7 +806,9 @@ Store = Service.extend({ return resolvedRecords.contains(record); }); if (missingRecords.length) { - Ember.warn('Ember Data expected to find records with the following ids in the adapter response but they were missing: ' + Ember.inspect(Ember.A(missingRecords).mapBy('id')), false); + Ember.warn('Ember Data expected to find records with the following ids in the adapter response but they were missing: ' + Ember.inspect(Ember.A(missingRecords).mapBy('id')), false, { + id: 'ds.store.missing-records-from-adapter' + }); } rejectRecords(missingRecords); }; @@ -869,7 +889,10 @@ Store = Service.extend({ @return {DS.Model|null} record */ getById: function(modelName, id) { - Ember.deprecate('Using store.getById() has been deprecated. Use store.peekRecord to get a record by a given type and ID without triggering a fetch.'); + Ember.deprecate('Using store.getById() has been deprecated. Use store.peekRecord to get a record by a given type and ID without triggering a fetch.', false, { + id: 'ds.store.get-by-id-deprecated', + until: '2.0.0' + }); return this.peekRecord(modelName, id); }, @@ -1140,7 +1163,10 @@ Store = Service.extend({ @deprecated Use `store.query instead` */ findQuery: function(modelName, query) { - Ember.deprecate('store#findQuery is deprecated. You should use store#query instead.'); + Ember.deprecate('store#findQuery is deprecated. You should use store#query instead.', false, { + id: 'ds.store.find-query-deprecated', + until: '2.0.0' + }); return this.query(modelName, query); }, @@ -1236,7 +1262,10 @@ Store = Service.extend({ @return {DS.RecordArray} */ all: function(modelName) { - Ember.deprecate('Using store.all() has been deprecated. Use store.peekAll() to get all records by a given type without triggering a fetch.'); + Ember.deprecate('Using store.all() has been deprecated. Use store.peekAll() to get all records by a given type without triggering a fetch.', false, { + id: 'ds.store.all-renamed-deprecated', + until: '2.0.0' + }); return this.peekAll(modelName); }, @@ -1372,7 +1401,9 @@ Store = Service.extend({ if (!Ember.ENV.ENABLE_DS_FILTER) { Ember.deprecate('The filter API will be moved into a plugin soon. To enable store.filter using an environment flag, or to use an alternative, you can visit the ember-data-filter addon page', false, { - url: 'https://github.com/ember-data/ember-data-filter' + url: 'https://github.com/ember-data/ember-data-filter', + id: 'ds.store.filter-deprecated', + until: '2.0.0' }); } @@ -1436,7 +1467,10 @@ Store = Service.extend({ @deprecated */ metadataFor: function(modelName) { - Ember.deprecate("`store.metadataFor()` has been deprecated. You can use `.get('meta')` on relationships and arrays returned from `store.query()`."); + Ember.deprecate("`store.metadataFor()` has been deprecated. You can use `.get('meta')` on relationships and arrays returned from `store.query()`.", false, { + id: 'ds.store.metadata-for-deprecated', + until: '2.0.0' + }); return this._metadataFor(modelName); }, @@ -1462,7 +1496,10 @@ Store = Service.extend({ @deprecated */ setMetadataFor: function(modelName, metadata) { - Ember.deprecate("`store.setMetadataFor()` has been deprecated. Please return meta from your serializer's `extractMeta` hook."); + Ember.deprecate("`store.setMetadataFor()` has been deprecated. Please return meta from your serializer's `extractMeta` hook.", false, { + id: 'ds.store.set-metadata-for-deprecated', + until: '2.0.0' + }); this._setMetadataFor(modelName, metadata); }, @@ -1745,7 +1782,10 @@ Store = Service.extend({ enumerable: true, configurable: false, get: function() { - Ember.deprecate('Usage of `typeKey` has been deprecated and will be removed in Ember Data 1.0. It has been replaced by `modelName` on the model class.'); + Ember.deprecate('Usage of `typeKey` has been deprecated and will be removed in Ember Data 2.0. It has been replaced by `modelName` on the model class.', false, { + id: 'ds.model.type-key-replace-by-model-name', + until: '2.0.0' + }); var typeKey = this.modelName; if (typeKey) { typeKey = Ember.String.camelize(this.modelName); @@ -1842,7 +1882,10 @@ Store = Service.extend({ if (Ember.typeOf(modelNameArg) === 'object' && Ember.typeOf(dataArg) === 'undefined') { data = modelNameArg; } else { - Ember.deprecate('store.push(type, data) has been deprecated. Please provide a JSON-API document object as the first and only argument to store.push.'); + Ember.deprecate('store.push(type, data) has been deprecated. Please provide a JSON-API document object as the first and only argument to store.push.', false, { + id: 'ds.store.push-with-type-and-data-deprecated', + until: '2.0.0' + }); Ember.assert("Expected an object as `data` in a call to `push` for " + modelNameArg + " , but was " + Ember.typeOf(dataArg), Ember.typeOf(dataArg) === 'object'); Ember.assert("You must include an `id` for " + modelNameArg + " in an object passed to `push`", dataArg.id != null && dataArg.id !== ''); data = _normalizeSerializerPayload(this.modelFor(modelNameArg), dataArg); @@ -1891,7 +1934,8 @@ Store = Service.extend({ })) + ". Make sure they've been defined in your model.", filter.call(keysFunc(data), function(key) { return !(key === 'id' || key === 'links' || get(type, 'fields').has(key) || key.match(/Type$/)); - }).length === 0 + }).length === 0, + { id: 'ds.store.unknown-keys-in-payload' } ); } @@ -2033,7 +2077,10 @@ Store = Service.extend({ */ update: function(modelName, data) { Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of '+ Ember.inspect(modelName), typeof modelName === 'string'); - Ember.deprecate('Using store.update() has been deprecated since store.push() now handles partial updates. You should use store.push() instead.'); + Ember.deprecate('Using store.update() has been deprecated since store.push() now handles partial updates. You should use store.push() instead.', false, { + id: 'ds.store.update-deprecated', + until: '2.0.0' + }); return this.push(modelName, data); }, @@ -2049,7 +2096,10 @@ Store = Service.extend({ */ pushMany: function(modelName, datas) { Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of '+ Ember.inspect(modelName), typeof modelName === 'string'); - Ember.deprecate('Using store.pushMany() has been deprecated since store.push() now handles multiple items. You should use store.push() instead.'); + Ember.deprecate('Using store.pushMany() has been deprecated since store.push() now handles multiple items. You should use store.push() instead.', false, { + id: 'ds.store.push-many-deprecated', + until: '2.0.0' + }); var length = datas.length; var result = new Array(length); @@ -2068,7 +2118,10 @@ Store = Service.extend({ */ metaForType: function(modelName, metadata) { Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of '+ Ember.inspect(modelName), typeof modelName === 'string'); - Ember.deprecate('Using store.metaForType() has been deprecated. Use store.setMetadataFor() to set metadata for a specific type.'); + Ember.deprecate('Using store.metaForType() has been deprecated. Use store.setMetadataFor() to set metadata for a specific type.', false, { + id: 'ds.store.meta-for-type-deprecated', + until: '2.0.0' + }); this.setMetadataFor(modelName, metadata); }, @@ -2121,7 +2174,10 @@ Store = Service.extend({ @deprecated Use [unloadRecord](#method_unloadRecord) instead */ dematerializeRecord: function(record) { - Ember.deprecate('Using store.dematerializeRecord() has been deprecated since it was intended for private use only. You should use store.unloadRecord() instead.'); + Ember.deprecate('Using store.dematerializeRecord() has been deprecated since it was intended for private use only. You should use store.unloadRecord() instead.', false, { + id: 'ds.store.dematerialize-record-deprecated', + until: '2.0.0' + }); this._dematerializeRecord(record); }, @@ -2172,12 +2228,11 @@ Store = Service.extend({ adapterFor: function(modelOrClass) { var modelName; - Ember.deprecate('Passing classes to store methods has been removed. Please pass a dasherized string instead of '+ Ember.inspect(modelName), typeof modelOrClass === 'string'); - - if (typeof modelOrClass !== 'string') { - modelName = modelOrClass.modelName; - } else { + if (typeof modelOrClass === 'string') { modelName = modelOrClass; + } else { + Ember.deprecate(`Passing classes to store methods has been removed. Please pass a dasherized string instead of ${Ember.inspect(modelName)}`, false, { id: 'ds.store.passing-classes-deprecated', until: '2.0.0' }); + modelName = modelOrClass.modelName; } return this.lookupAdapter(modelName); @@ -2215,11 +2270,11 @@ Store = Service.extend({ serializerFor: function(modelOrClass) { var modelName; - Ember.deprecate('Passing classes to store methods has been removed. Please pass a dasherized string instead of '+ Ember.inspect(modelOrClass), typeof modelOrClass === 'string'); - if (typeof modelOrClass !== 'string') { - modelName = modelOrClass.modelName; - } else { + if (typeof modelOrClass === 'string') { modelName = modelOrClass; + } else { + Ember.deprecate(`Passing classes to store methods has been removed. Please pass a dasherized string instead of ${Ember.inspect(modelName)}`, false, { id: 'ds.store.passing-classes-deprecated', until: '2.0.0' }); + modelName = modelOrClass.modelName; } var fallbacks = [ @@ -2425,7 +2480,10 @@ function deprecatePreload(preloadOrOptions, type, methodName) { } if (preloadDetected) { - Ember.deprecate(`Passing a preload argument to \`store.${methodName}\` is deprecated. Please move it to the preload key on the ${methodName} \`options\` argument.`); + Ember.deprecate(`Passing a preload argument to \`store.${methodName}\` is deprecated. Please move it to the preload key on the ${methodName} \`options\` argument.`, false, { + id: 'ds.store.preload-outside-options', + until: '2.0.0' + }); var preload = preloadOrOptions; return { preload: preload diff --git a/packages/ember-data/lib/system/store/container-instance-cache.js b/packages/ember-data/lib/system/store/container-instance-cache.js index 5d102a937c2..551efb1ed7b 100644 --- a/packages/ember-data/lib/system/store/container-instance-cache.js +++ b/packages/ember-data/lib/system/store/container-instance-cache.js @@ -58,7 +58,10 @@ Ember.merge(ContainerInstanceCache.prototype, { instanceFor: function(key) { if (key === 'adapter:-rest') { - Ember.deprecate('You are currently using the default DS.RESTAdapter adapter. For Ember 2.0 the default adapter will be DS.JSONAPIAdapter. If you would like to continue using DS.RESTAdapter please create an application adapter that extends DS.RESTAdapter.'); + Ember.deprecate('You are currently using the default DS.RESTAdapter adapter. For Ember 2.0 the default adapter will be DS.JSONAPIAdapter. If you would like to continue using DS.RESTAdapter please create an application adapter that extends DS.RESTAdapter.', false, { + id: 'ds.adapter.default-adapter-changing-to-json-api', + until: '2.0.0' + }); } let cache = this._cache; diff --git a/packages/ember-data/lib/system/store/finders.js b/packages/ember-data/lib/system/store/finders.js index c2f8ebc154c..31a48c1fe3f 100644 --- a/packages/ember-data/lib/system/store/finders.js +++ b/packages/ember-data/lib/system/store/finders.js @@ -21,7 +21,10 @@ export function _find(adapter, store, typeClass, id, internalModel, options) { var snapshot = internalModel.createSnapshot(options); var promise; if (!adapter.findRecord) { - Ember.deprecate('Adapter#find has been deprecated and renamed to `findRecord`.'); + Ember.deprecate('Adapter#find has been deprecated and renamed to `findRecord`.', false, { + id: 'ds.adapter.find-renamed-to-find-record', + until: '2.0.0' + }); promise = adapter.find(store, typeClass, id, snapshot); } else { promise = adapter.findRecord(store, typeClass, id, snapshot); @@ -154,7 +157,10 @@ export function _query(adapter, store, typeClass, query, recordArray) { var promise; if (!adapter.query) { - Ember.deprecate('Adapter#findQuery has been deprecated and renamed to `query`.'); + Ember.deprecate('Adapter#findQuery has been deprecated and renamed to `query`.', false, { + id: 'ds.adapter.find-query-renamed-to-query', + until: '2.0.0' + }); promise = adapter.findQuery(store, typeClass, query, recordArray); } else { promise = adapter.query(store, typeClass, query, recordArray); diff --git a/packages/ember-data/lib/system/store/serializer-response.js b/packages/ember-data/lib/system/store/serializer-response.js index 84a13d15caf..48b2840db65 100644 --- a/packages/ember-data/lib/system/store/serializer-response.js +++ b/packages/ember-data/lib/system/store/serializer-response.js @@ -35,7 +35,10 @@ export function normalizeResponseHelper(serializer, store, modelClass, payload, } return normalizedResponse; } else { - Ember.deprecate('Your custom serializer uses the old version of the Serializer API, with `extract` hooks. Please upgrade your serializers to the new Serializer API using `normalizeResponse` hooks instead.'); + Ember.deprecate('Your custom serializer uses the old version of the Serializer API, with `extract` hooks. Please upgrade your serializers to the new Serializer API using `normalizeResponse` hooks instead.', false, { + id: 'ds.serializer.extract-hooks-deprecated', + until: '2.0.0' + }); let serializerPayload = serializer.extract(store, modelClass, payload, id, requestType); return _normalizeSerializerPayload(modelClass, serializerPayload); } diff --git a/packages/ember-data/lib/system/store/serializers.js b/packages/ember-data/lib/system/store/serializers.js index 3c29e729fff..c77a63e6f69 100644 --- a/packages/ember-data/lib/system/store/serializers.js +++ b/packages/ember-data/lib/system/store/serializers.js @@ -6,7 +6,10 @@ export function serializerForAdapter(store, adapter, type) { } if (serializer === null || serializer === undefined) { - Ember.deprecate('Ember Data 2.0 will no longer support adapters with a null serializer property. Please define `defaultSerializer: "-default"` your adapter and make sure the `serializer` property is not null.'); + Ember.deprecate('Ember Data 2.0 will no longer support adapters with a null serializer property. Please define `defaultSerializer: "-default"` your adapter and make sure the `serializer` property is not null.', false, { + id: 'ds.adapter.null-serializer-property', + until: '2.0.0' + }); serializer = { extract: function(store, type, payload) { return payload; } };