diff --git a/packages/-ember-data/addon/-private/index.ts b/packages/-ember-data/addon/-private/index.ts index 3c664280d25..e99fc140498 100644 --- a/packages/-ember-data/addon/-private/index.ts +++ b/packages/-ember-data/addon/-private/index.ts @@ -1,70 +1,25 @@ // public import ArrayProxy from '@ember/array/proxy'; +import { deprecate } from '@ember/debug'; import PromiseProxyMixin from '@ember/object/promise-proxy-mixin'; import ObjectProxy from '@ember/object/proxy'; -import { graphFor } from '@ember-data/graph/-private'; -import JSONAPICache from '@ember-data/json-api'; -import { LegacyNetworkHandler } from '@ember-data/legacy-compat'; -import { FetchManager } from '@ember-data/legacy-compat/-private'; -import type Model from '@ember-data/model'; -import type { ModelStore } from '@ember-data/model/-private/model'; -import { buildSchema, instantiateRecord, modelFor, teardownRecord } from '@ember-data/model/hooks'; -import RequestManager from '@ember-data/request'; -import Fetch from '@ember-data/request/fetch'; -import BaseStore, { CacheHandler, recordIdentifierFor } from '@ember-data/store'; -import type { Cache } from '@ember-data/types/cache/cache'; -import type { CacheCapabilitiesManager } from '@ember-data/types/q/cache-store-wrapper'; -import type { ModelSchema } from '@ember-data/types/q/ds-model'; -import type { StableRecordIdentifier } from '@ember-data/types/q/identifier'; -import type { RecordInstance } from '@ember-data/types/q/record-instance'; +deprecate('Importing from `ember-data/-private` is deprecated without replacement.', false, { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, +}); -export class Store extends BaseStore { - constructor(args: Record) { - super(args); - this.requestManager = new RequestManager(); - this.requestManager.use([LegacyNetworkHandler, Fetch]); - this.requestManager.useCache(CacheHandler); - this.registerSchema(buildSchema(this)); - graphFor(this); - } - - createCache(storeWrapper: CacheCapabilitiesManager): Cache { - return new JSONAPICache(storeWrapper); - } - - instantiateRecord( - this: ModelStore, - identifier: StableRecordIdentifier, - createRecordArgs: Record - ): Model { - return instantiateRecord.call(this, identifier, createRecordArgs); - } - - teardownRecord(record: RecordInstance): void { - teardownRecord.call(this, record as Model); - } - - modelFor(type: string): ModelSchema { - return modelFor.call(this, type) || super.modelFor(type); - } - - // TODO @runspired @deprecate records should implement their own serialization if desired - serializeRecord(record: RecordInstance, options?: Record): unknown { - // TODO we used to check if the record was destroyed here - if (!this._fetchManager) { - this._fetchManager = new FetchManager(this); - } - - return this._fetchManager.createSnapshot(recordIdentifierFor(record)).serialize(options); - } -} +export { default as Store } from '../store'; export { default as DS } from './core'; export { Errors } from '@ember-data/model/-private'; export { Snapshot } from '@ember-data/legacy-compat/-private'; -// `ember-data-model-fragments' and `ember-data-change-tracker` rely on `normalizeModelName` export { RecordArrayManager, coerceId } from '@ember-data/store/-private'; export { ManyArray, PromiseManyArray } from '@ember-data/model/-private'; export { SnapshotRecordArray } from '@ember-data/legacy-compat/-private'; diff --git a/packages/-ember-data/addon/adapter.ts b/packages/-ember-data/addon/adapter.ts index 60b5bac58f7..5aa91ed7bce 100644 --- a/packages/-ember-data/addon/adapter.ts +++ b/packages/-ember-data/addon/adapter.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { default } from '@ember-data/adapter'; + +deprecate( + 'Importing from `ember-data/adapter` is deprecated. Please import from `@ember-data/adapter` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/adapters/errors.ts b/packages/-ember-data/addon/adapters/errors.ts index dadfecf41ee..03ac0bf76bd 100644 --- a/packages/-ember-data/addon/adapters/errors.ts +++ b/packages/-ember-data/addon/adapters/errors.ts @@ -1,3 +1,5 @@ +import { deprecate } from '@ember/debug'; + export { AbortError, default as AdapterError, @@ -9,3 +11,17 @@ export { TimeoutError, UnauthorizedError, } from '@ember-data/adapter/error'; + +deprecate( + 'Importing from `ember-data/adapters/errors` is deprecated. Please import from `@ember-data/adapter` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/adapters/json-api.ts b/packages/-ember-data/addon/adapters/json-api.ts index 2cbb7cd7057..89e1c7851bc 100644 --- a/packages/-ember-data/addon/adapters/json-api.ts +++ b/packages/-ember-data/addon/adapters/json-api.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { default } from '@ember-data/adapter/json-api'; + +deprecate( + 'Importing from `ember-data/adapters/json-api` is deprecated. Please import from `@ember-data/adapter/json-api` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/adapters/rest.ts b/packages/-ember-data/addon/adapters/rest.ts index 0eb4bcda72e..2d583404756 100644 --- a/packages/-ember-data/addon/adapters/rest.ts +++ b/packages/-ember-data/addon/adapters/rest.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { default } from '@ember-data/adapter/rest'; + +deprecate( + 'Importing from `ember-data/adapters/rest` is deprecated. Please import from `@ember-data/adapter/rest` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/attr.ts b/packages/-ember-data/addon/attr.ts index 2a5ab0ad58f..dd1b99804da 100644 --- a/packages/-ember-data/addon/attr.ts +++ b/packages/-ember-data/addon/attr.ts @@ -1 +1,13 @@ +import { deprecate } from '@ember/debug'; + export { attr as default } from '@ember-data/model'; + +deprecate('Importing from `ember-data/attr` is deprecated. Please import from `@ember-data/model` instead.', false, { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, +}); diff --git a/packages/-ember-data/addon/index.js b/packages/-ember-data/addon/index.js index f5bbb8214f5..2dd6e547696 100644 --- a/packages/-ember-data/addon/index.js +++ b/packages/-ember-data/addon/index.js @@ -163,6 +163,8 @@ that has not explicitly activated it. To activate it set the appropriate flag to */ import 'ember-inflector'; +import { deprecate } from '@ember/debug'; + import { dependencySatisfies, importSync, macroCondition } from '@embroider/macros'; import Adapter, { BuildURLMixin } from '@ember-data/adapter'; @@ -199,6 +201,20 @@ import { } from './-private'; import setupContainer from './setup-container'; +deprecate( + 'Importing from `ember-data` is deprecated. Please import from the appropriate `@ember-data/*` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); + DS.Store = Store; DS.PromiseArray = PromiseArray; DS.PromiseObject = PromiseObject; diff --git a/packages/-ember-data/addon/model.ts b/packages/-ember-data/addon/model.ts index 6d699c4be8e..9141c92c2fc 100644 --- a/packages/-ember-data/addon/model.ts +++ b/packages/-ember-data/addon/model.ts @@ -1 +1,13 @@ +import { deprecate } from '@ember/debug'; + export { default } from '@ember-data/model'; + +deprecate('Importing from `ember-data/model` is deprecated. Please import from `@ember-data/model` instead.', false, { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, +}); diff --git a/packages/-ember-data/addon/relationships.ts b/packages/-ember-data/addon/relationships.ts index c6616b398c9..e61c9d496e2 100644 --- a/packages/-ember-data/addon/relationships.ts +++ b/packages/-ember-data/addon/relationships.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { belongsTo, hasMany } from '@ember-data/model'; + +deprecate( + 'Importing from `ember-data/relationships` is deprecated. Please import from `@ember-data/model` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/serializer.ts b/packages/-ember-data/addon/serializer.ts index f6a6fcfde6b..7f9651be841 100644 --- a/packages/-ember-data/addon/serializer.ts +++ b/packages/-ember-data/addon/serializer.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { default } from '@ember-data/serializer'; + +deprecate( + 'Importing from `ember-data/serializer` is deprecated. Please import from `@ember-data/serializer` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/serializers/embedded-records-mixin.ts b/packages/-ember-data/addon/serializers/embedded-records-mixin.ts index eae37e315e2..d7b5cac32bc 100644 --- a/packages/-ember-data/addon/serializers/embedded-records-mixin.ts +++ b/packages/-ember-data/addon/serializers/embedded-records-mixin.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { EmbeddedRecordsMixin as default } from '@ember-data/serializer/rest'; + +deprecate( + 'Importing from `ember-data/serializers/embedded-records-mixin` is deprecated. Please import from `@ember-data/serializer/rest` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/serializers/json-api.ts b/packages/-ember-data/addon/serializers/json-api.ts index 59723c5ab2a..dc6981a2481 100644 --- a/packages/-ember-data/addon/serializers/json-api.ts +++ b/packages/-ember-data/addon/serializers/json-api.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { default } from '@ember-data/serializer/json-api'; + +deprecate( + 'Importing from `ember-data/serializers/json-api` is deprecated. Please import from `@ember-data/serializer/json-api` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/serializers/json.ts b/packages/-ember-data/addon/serializers/json.ts index d617bfb1824..1412f361066 100644 --- a/packages/-ember-data/addon/serializers/json.ts +++ b/packages/-ember-data/addon/serializers/json.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { default } from '@ember-data/serializer/json'; + +deprecate( + 'Importing from `ember-data/serializers/json` is deprecated. Please import from `@ember-data/serializer/json` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/serializers/rest.ts b/packages/-ember-data/addon/serializers/rest.ts index d6878ba3c3e..5003c3095d9 100644 --- a/packages/-ember-data/addon/serializers/rest.ts +++ b/packages/-ember-data/addon/serializers/rest.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { default } from '@ember-data/serializer/rest'; + +deprecate( + 'Importing from `ember-data/serializers/rest` is deprecated. Please import from `@ember-data/serializer/rest` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/addon/setup-container.ts b/packages/-ember-data/addon/setup-container.ts index 262862c3d47..6c555571cab 100644 --- a/packages/-ember-data/addon/setup-container.ts +++ b/packages/-ember-data/addon/setup-container.ts @@ -1,4 +1,5 @@ import type Application from '@ember/application'; +import { deprecate } from '@ember/debug'; function initializeStore(application: Application) { application.registerOptionsForType('serializer', { singleton: false }); @@ -8,3 +9,13 @@ function initializeStore(application: Application) { export default function setupContainer(application: Application) { initializeStore(application); } + +deprecate('Importing from `ember-data/setup-container` is deprecated without replacement', false, { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, +}); diff --git a/packages/-ember-data/addon/store.ts b/packages/-ember-data/addon/store.ts index ae380a10821..1159e854bd6 100644 --- a/packages/-ember-data/addon/store.ts +++ b/packages/-ember-data/addon/store.ts @@ -1 +1,55 @@ -export { Store as default } from './-private'; +import { graphFor } from '@ember-data/graph/-private'; +import JSONAPICache from '@ember-data/json-api'; +import { LegacyNetworkHandler } from '@ember-data/legacy-compat'; +import { FetchManager } from '@ember-data/legacy-compat/-private'; +import type Model from '@ember-data/model'; +import type { ModelStore } from '@ember-data/model/-private/model'; +import { buildSchema, instantiateRecord, modelFor, teardownRecord } from '@ember-data/model/hooks'; +import RequestManager from '@ember-data/request'; +import Fetch from '@ember-data/request/fetch'; +import BaseStore, { CacheHandler, recordIdentifierFor } from '@ember-data/store'; +import type { Cache } from '@ember-data/types/cache/cache'; +import type { CacheCapabilitiesManager } from '@ember-data/types/q/cache-store-wrapper'; +import type { ModelSchema } from '@ember-data/types/q/ds-model'; +import type { StableRecordIdentifier } from '@ember-data/types/q/identifier'; + +export default class Store extends BaseStore { + constructor(args: Record) { + super(args); + this.requestManager = new RequestManager(); + this.requestManager.use([LegacyNetworkHandler, Fetch]); + this.requestManager.useCache(CacheHandler); + this.registerSchema(buildSchema(this)); + graphFor(this); + } + + createCache(storeWrapper: CacheCapabilitiesManager): Cache { + return new JSONAPICache(storeWrapper); + } + + instantiateRecord( + this: ModelStore, + identifier: StableRecordIdentifier, + createRecordArgs: Record + ): Model { + return instantiateRecord.call(this, identifier, createRecordArgs); + } + + teardownRecord(record: Model): void { + teardownRecord.call(this, record as Model); + } + + modelFor(type: string): ModelSchema { + return modelFor.call(this, type) || super.modelFor(type); + } + + // TODO @runspired @deprecate records should implement their own serialization if desired + serializeRecord(record: unknown, options?: Record): unknown { + // TODO we used to check if the record was destroyed here + if (!this._fetchManager) { + this._fetchManager = new FetchManager(this); + } + + return this._fetchManager.createSnapshot(recordIdentifierFor(record)).serialize(options); + } +} diff --git a/packages/-ember-data/addon/transform.ts b/packages/-ember-data/addon/transform.ts index 410a62f0275..e80e7e3ef4c 100644 --- a/packages/-ember-data/addon/transform.ts +++ b/packages/-ember-data/addon/transform.ts @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { default } from '@ember-data/serializer/transform'; + +deprecate( + 'Importing from `ember-data/transform` is deprecated. Please import from `@ember-data/serializer/transform` instead.', + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/app/adapters/-json-api.js b/packages/-ember-data/app/adapters/-json-api.js deleted file mode 100644 index 2cbb7cd7057..00000000000 --- a/packages/-ember-data/app/adapters/-json-api.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@ember-data/adapter/json-api'; diff --git a/packages/-ember-data/app/initializers/ember-data.js b/packages/-ember-data/app/initializers/ember-data.js index a3dd9a3a6f5..d5fd925bcea 100644 --- a/packages/-ember-data/app/initializers/ember-data.js +++ b/packages/-ember-data/app/initializers/ember-data.js @@ -1,11 +1,10 @@ -import 'ember-data'; - -import setupContainer from 'ember-data/setup-container'; - /* This code initializes EmberData in an Ember application. */ export default { name: 'ember-data', - initialize: setupContainer, + initialize(application) { + application.registerOptionsForType('serializer', { singleton: false }); + application.registerOptionsForType('adapter', { singleton: false }); + }, }; diff --git a/packages/-ember-data/app/instance-initializers/ember-data.js b/packages/-ember-data/app/instance-initializers/ember-data.js deleted file mode 100644 index b48556a316c..00000000000 --- a/packages/-ember-data/app/instance-initializers/ember-data.js +++ /dev/null @@ -1,5 +0,0 @@ -/* exists only for things that historically used "after" or "before" */ -export default { - name: 'ember-data', - initialize() {}, -}; diff --git a/packages/-ember-data/app/serializers/-default.js b/packages/-ember-data/app/serializers/-default.js deleted file mode 100644 index d617bfb1824..00000000000 --- a/packages/-ember-data/app/serializers/-default.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@ember-data/serializer/json'; diff --git a/packages/-ember-data/app/serializers/-json-api.js b/packages/-ember-data/app/serializers/-json-api.js deleted file mode 100644 index 59723c5ab2a..00000000000 --- a/packages/-ember-data/app/serializers/-json-api.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@ember-data/serializer/json-api'; diff --git a/packages/-ember-data/app/serializers/-rest.js b/packages/-ember-data/app/serializers/-rest.js deleted file mode 100644 index d6878ba3c3e..00000000000 --- a/packages/-ember-data/app/serializers/-rest.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@ember-data/serializer/rest'; diff --git a/packages/-ember-data/app/services/store.js b/packages/-ember-data/app/services/store.js index f41e1d3d9a3..ab39672c4be 100644 --- a/packages/-ember-data/app/services/store.js +++ b/packages/-ember-data/app/services/store.js @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { default } from 'ember-data/store'; + +deprecate( + "You are relying on ember-data auto-magically installing the store service. Use `export { default } from 'ember-data/store';` in app/services/store.js instead", + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/app/transforms/boolean.js b/packages/-ember-data/app/transforms/boolean.js index f32800a7157..634c613a7c8 100644 --- a/packages/-ember-data/app/transforms/boolean.js +++ b/packages/-ember-data/app/transforms/boolean.js @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { BooleanTransform as default } from '@ember-data/serializer/-private'; + +deprecate( + "You are relying on ember-data auto-magically installing the BooleanTransform. Use `export { BooleanTransform as default } from 'ember-data/serializer/transform';` in app/transforms/boolean.js instead", + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/app/transforms/date.js b/packages/-ember-data/app/transforms/date.js index d5a3eff02da..8457a471dc1 100644 --- a/packages/-ember-data/app/transforms/date.js +++ b/packages/-ember-data/app/transforms/date.js @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { DateTransform as default } from '@ember-data/serializer/-private'; + +deprecate( + "You are relying on ember-data auto-magically installing the DateTransform. Use `export { DateTransform as default } from 'ember-data/serializer/transform';` in app/transforms/date.js instead", + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/app/transforms/number.js b/packages/-ember-data/app/transforms/number.js index dedc67a0ed6..7b8b049b3ee 100644 --- a/packages/-ember-data/app/transforms/number.js +++ b/packages/-ember-data/app/transforms/number.js @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { NumberTransform as default } from '@ember-data/serializer/-private'; + +deprecate( + "You are relying on ember-data auto-magically installing the NumberTransform. Use `export { NumberTransform as default } from 'ember-data/serializer/transform';` in app/transforms/number.js instead", + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/app/transforms/string.js b/packages/-ember-data/app/transforms/string.js index 974d19693c9..19531231e8c 100644 --- a/packages/-ember-data/app/transforms/string.js +++ b/packages/-ember-data/app/transforms/string.js @@ -1 +1,17 @@ +import { deprecate } from '@ember/debug'; + export { StringTransform as default } from '@ember-data/serializer/-private'; + +deprecate( + "You are relying on ember-data auto-magically installing the StringTransform. Use `export { StringTransform as default } from 'ember-data/serializer/transform';` in app/transforms/string.js instead", + false, + { + id: 'ember-data:deprecate-legacy-imports', + for: 'ember-data', + until: '6.0', + since: { + enabled: '5.2', + available: '5.2', + }, + } +); diff --git a/packages/-ember-data/index.js b/packages/-ember-data/index.js index 9269b73e218..1054eb88901 100644 --- a/packages/-ember-data/index.js +++ b/packages/-ember-data/index.js @@ -6,7 +6,7 @@ const version = require('@ember-data/private-build-infra/src/create-version-modu const addonBaseConfig = addonBuildConfigForDataPackage(require('./package.json')); module.exports = Object.assign({}, addonBaseConfig, { - shouldRollupPrivate: true, + shouldRollupPrivate: false, externalDependenciesForPrivateModule() { return [ 'ember', diff --git a/packages/adapter/src/rest.ts b/packages/adapter/src/rest.ts index 575859b2d10..8d12a6e590a 100644 --- a/packages/adapter/src/rest.ts +++ b/packages/adapter/src/rest.ts @@ -1124,8 +1124,8 @@ class RESTAdapter extends Adapter.extend(BuildURLMixin) { @param {Object} options jQuery ajax options to be used for the ajax request */ _ajaxRequest(options: JQueryRequestInit): void { - // TODO add assertion that jquery is there rather then equality check - typeof jQuery !== 'undefined' && jQuery.ajax(options); + assert('You must install jQuery globally when `useFetch` is false', typeof jQuery !== 'undefined'); + jQuery.ajax(options); } _fetchRequest(options: FetchRequestInit): Promise { diff --git a/packages/graph/src/-private/graph/operations/update-relationship.ts b/packages/graph/src/-private/graph/operations/update-relationship.ts index 6018198ab9e..a7fda31e9f9 100644 --- a/packages/graph/src/-private/graph/operations/update-relationship.ts +++ b/packages/graph/src/-private/graph/operations/update-relationship.ts @@ -36,7 +36,6 @@ export default function updateRelationshipOperation(graph: Graph, op: UpdateRela } assert(`Expected an array`, Array.isArray(payload.data)); const cache = graph.store.identifierCache; - // TODO may not need to cast to stable identifiers here since update likely does this too graph.update( { op: 'replaceRelatedRecords', @@ -47,7 +46,6 @@ export default function updateRelationshipOperation(graph: Graph, op: UpdateRela true ); } else { - // TODO may not need to cast to stable identifiers here since update likely does this too graph.update( { op: 'replaceRelatedRecord', diff --git a/packages/private-build-infra/virtual-packages/deprecations.d.ts b/packages/private-build-infra/virtual-packages/deprecations.d.ts index fecd404f55b..6d4d3e3f17f 100644 --- a/packages/private-build-infra/virtual-packages/deprecations.d.ts +++ b/packages/private-build-infra/virtual-packages/deprecations.d.ts @@ -3,3 +3,4 @@ export const DEPRECATE_CATCH_ALL: boolean; export const DEPRECATE_COMPUTED_CHAINS: boolean; export const DEPRECATE_NON_STRICT_TYPES: boolean; export const DEPRECATE_NON_STRICT_ID: boolean; +export const DEPRECATE_LEGACY_IMPORTS: boolean; diff --git a/packages/private-build-infra/virtual-packages/deprecations.js b/packages/private-build-infra/virtual-packages/deprecations.js index f81a6ba91d4..0eb3d6bc3ae 100644 --- a/packages/private-build-infra/virtual-packages/deprecations.js +++ b/packages/private-build-infra/virtual-packages/deprecations.js @@ -97,10 +97,12 @@ export const DEPRECATE_3_12 = '3.12'; * * e.g. `app/models/foo/bar-bem.js` must have a type of `foo/bar-bem` * - * @class CurrentDeprecations + * @property DEPRECATE_NON_STRICT_TYPES + * @since 5.2 + * @until 6.0 * @public */ -export const DEPRECATE_NON_STRICT_TYPES = '5.3'; +export const DEPRECATE_NON_STRICT_TYPES = '5.2'; /** * **id: ember-data:deprecate-non-strict-id** @@ -119,10 +121,12 @@ export const DEPRECATE_NON_STRICT_TYPES = '5.3'; * However, for identifiers we will always use string IDs and so any * custom identifier configuration should provide a string ID. * - * @class CurrentDeprecations + * @property DEPRECATE_NON_STRICT_ID + * @since 5.2 + * @until 6.0 * @public */ -export const DEPRECATE_NON_STRICT_ID = '5.3'; +export const DEPRECATE_NON_STRICT_ID = '5.2'; /** * **id: ** @@ -140,3 +144,22 @@ export const DEPRECATE_NON_STRICT_ID = '5.3'; * @public */ export const DEPRECATE_COMPUTED_CHAINS = '5.0'; + +/** + * **id: ember-data:deprecate-legacy-imports** + * + * Deprecates when importing from `ember-data/*` instead of `@ember-data/*` + * in order to prepare for the eventual removal of the legacy `ember-data/*` + * + * All imports from `ember-data/*` should be updated to `@ember-data/*` + * except for `ember-data/store`. When you are using `ember-data` (as opposed to + * installing the indivudal packages) you should import from `ember-data/store` + * instead of `@ember-data/store` in order to receive the appropriate configuration + * of defaults. + * + * @property DEPRECATE_LEGACY_IMPORTS + * @since 5.2 + * @until 6.0 + * @public + */ +export const DEPRECATE_LEGACY_IMPORTS = '5.2'; diff --git a/packages/serializer/src/transform.js b/packages/serializer/src/transform.js deleted file mode 100644 index 5b25c64d096..00000000000 --- a/packages/serializer/src/transform.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - @module @ember-data/serializer -*/ -import { Transform } from './-private'; - -export default Transform; diff --git a/packages/serializer/src/transform.ts b/packages/serializer/src/transform.ts new file mode 100644 index 00000000000..c661aae21cc --- /dev/null +++ b/packages/serializer/src/transform.ts @@ -0,0 +1,4 @@ +/** + @module @ember-data/serializer +*/ +export { Transform as default, BooleanTransform, DateTransform, NumberTransform, StringTransform } from './-private'; diff --git a/tests/docs/fixtures/expected.js b/tests/docs/fixtures/expected.js index 9a9aa9ea5fe..0b09bc16f2c 100644 --- a/tests/docs/fixtures/expected.js +++ b/tests/docs/fixtures/expected.js @@ -53,6 +53,9 @@ module.exports = { '(private) @ember-data/debug InspectorDataAdapter#watchModelTypes', '(private) @ember-data/debug InspectorDataAdapter#watchTypeIfUnseen', '(public) @ember-data/deprecations CurrentDeprecations#DEPRECATE_COMPUTED_CHAINS', + '(public) @ember-data/deprecations CurrentDeprecations#DEPRECATE_LEGACY_IMPORTS', + '(public) @ember-data/deprecations CurrentDeprecations#DEPRECATE_NON_STRICT_ID', + '(public) @ember-data/deprecations CurrentDeprecations#DEPRECATE_NON_STRICT_TYPES', '(private) @ember-data/legacy-compat SnapshotRecordArray#_recordArray', '(private) @ember-data/legacy-compat SnapshotRecordArray#_snapshots', '(private) @ember-data/legacy-compat SnapshotRecordArray#constructor', diff --git a/tests/main/app/services/store.ts b/tests/main/app/services/store.js similarity index 100% rename from tests/main/app/services/store.ts rename to tests/main/app/services/store.js diff --git a/tests/main/app/transforms/boolean.js b/tests/main/app/transforms/boolean.js new file mode 100644 index 00000000000..b4d4471fa7f --- /dev/null +++ b/tests/main/app/transforms/boolean.js @@ -0,0 +1 @@ +export { BooleanTransform as default } from '@ember-data/serializer/transform'; diff --git a/tests/main/app/transforms/date.js b/tests/main/app/transforms/date.js new file mode 100644 index 00000000000..4aa235dc618 --- /dev/null +++ b/tests/main/app/transforms/date.js @@ -0,0 +1 @@ +export { DateTransform as default } from '@ember-data/serializer/transform'; diff --git a/tests/main/app/transforms/number.js b/tests/main/app/transforms/number.js new file mode 100644 index 00000000000..47e4c0731a7 --- /dev/null +++ b/tests/main/app/transforms/number.js @@ -0,0 +1 @@ +export { NumberTransform as default } from '@ember-data/serializer/transform'; diff --git a/tests/main/app/transforms/string.js b/tests/main/app/transforms/string.js new file mode 100644 index 00000000000..ba881680d44 --- /dev/null +++ b/tests/main/app/transforms/string.js @@ -0,0 +1 @@ +export { StringTransform as default } from '@ember-data/serializer/transform';