Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deprecation: implement helper deprecations #8093

Merged
merged 9 commits into from
Jul 31, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
add normalize-model-name deprecation
runspired committed Jul 30, 2022
commit c05a10bc1fc6f6de46f58868c36ef96a4b20d02d
4 changes: 2 additions & 2 deletions packages/model/addon/-private/relationship-meta.ts
Original file line number Diff line number Diff line change
@@ -3,15 +3,15 @@ import { DEBUG } from '@glimmer/env';
import { singularize } from 'ember-inflector';

import type Store from '@ember-data/store';
import { normalizeModelName } from '@ember-data/store/-private';
import type { RelationshipSchema } from '@ember-data/types/q/record-data-schemas';
import { dasherize } from '@ember/string';

/**
@module @ember-data/store
*/

function typeForRelationshipMeta(meta) {
let modelName = normalizeModelName(meta.type || meta.key);
let modelName = dasherize(meta.type || meta.key);

if (meta.kind === 'hasMany') {
modelName = singularize(modelName);
1 change: 1 addition & 0 deletions packages/private-build-infra/addon/current-deprecations.ts
Original file line number Diff line number Diff line change
@@ -50,4 +50,5 @@ export default {
DEPRECATE_MODEL_REOPEN: '4.8',
DEPRECATE_EARLY_STATIC: '4.8',
DEPRECATE_CLASSIC: '4.9',
DEPRECATE_HELPERS: '4.8',
};
1 change: 1 addition & 0 deletions packages/private-build-infra/addon/deprecations.ts
Original file line number Diff line number Diff line change
@@ -19,3 +19,4 @@ export const DEPRECATE_JSON_API_FALLBACK = deprecationState('DEPRECATE_JSON_API_
export const DEPRECATE_MODEL_REOPEN = deprecationState('DEPRECATE_MODEL_REOPEN');
export const DEPRECATE_EARLY_STATIC = deprecationState('DEPRECATE_EARLY_STATIC');
export const DEPRECATE_CLASSIC = deprecationState('DEPRECATE_CLASSIC');
export const DEPRECATE_HELPERS = deprecationState('DEPRECATE_HELPERS');
3 changes: 1 addition & 2 deletions packages/serializer/addon/json-api.js
Original file line number Diff line number Diff line change
@@ -9,7 +9,6 @@ import { DEBUG } from '@glimmer/env';
import { pluralize, singularize } from 'ember-inflector';

import JSONSerializer from '@ember-data/serializer/json';
import { normalizeModelName } from '@ember-data/store';

/**
Ember Data 2.0 Serializer:
@@ -361,7 +360,7 @@ const JSONAPISerializer = JSONSerializer.extend({
@return {String} the model's modelName
*/
modelNameFromPayloadKey(key) {
return singularize(normalizeModelName(key));
return singularize(dasherize(key));
},

/**
3 changes: 1 addition & 2 deletions packages/serializer/addon/json.js
Original file line number Diff line number Diff line change
@@ -7,7 +7,6 @@ import { get } from '@ember/object';
import { isNone, typeOf } from '@ember/utils';

import Serializer from '@ember-data/serializer';
import { normalizeModelName } from '@ember-data/store';
import { coerceId, errorsArrayToHash } from '@ember-data/store/-private';

import { modelHasAttributeOrRelationshipNamedType } from './-private';
@@ -795,7 +794,7 @@ const JSONSerializer = Serializer.extend({
@return {String} the model's modelName
*/
modelNameFromPayloadKey(key) {
return normalizeModelName(key);
return dasherize(key);
},

/**
7 changes: 3 additions & 4 deletions packages/serializer/addon/rest.js
Original file line number Diff line number Diff line change
@@ -3,14 +3,13 @@
*/
import { makeArray } from '@ember/array';
import { assert, warn } from '@ember/debug';
import { camelize } from '@ember/string';
import { camelize, dasherize } from '@ember/string';
import { isNone, typeOf } from '@ember/utils';
import { DEBUG } from '@glimmer/env';

import { singularize } from 'ember-inflector';

import JSONSerializer from '@ember-data/serializer/json';
import { normalizeModelName } from '@ember-data/store';
import { coerceId } from '@ember-data/store/-private';

import { modelHasAttributeOrRelationshipNamedType } from './-private';
@@ -350,7 +349,7 @@ const RESTSerializer = JSONSerializer.extend({
},

isPrimaryType(store, modelName, primaryModelClass) {
return normalizeModelName(modelName) === primaryModelClass.modelName;
return dasherize(modelName) === primaryModelClass.modelName;
},

/**
@@ -473,7 +472,7 @@ const RESTSerializer = JSONSerializer.extend({
@return {String} the model's modelName
*/
modelNameFromPayloadKey(key) {
return singularize(normalizeModelName(key));
return singularize(dasherize(key));
},

// SERIALIZE
23 changes: 22 additions & 1 deletion packages/store/addon/-private/index.ts
Original file line number Diff line number Diff line change
@@ -2,6 +2,9 @@
@module @ember-data/store
*/

import { DEPRECATE_HELPERS } from '@ember-data/private-build-infra/deprecations';
import { assert, deprecate } from '@ember/debug';

export { default as Store, storeFor } from './core-store';

export { recordIdentifierFor } from './internal-model-factory';
@@ -14,7 +17,25 @@ export {
setIdentifierResetMethod,
} from './identifier-cache';

export { default as normalizeModelName } from './normalize-model-name';

/**
@module @ember-data/store
*/

import _normalize from './normalize-model-name';
export function normalizeModelName(modelName: string) {
if (DEPRECATE_HELPERS) {
deprecate(`the helper function normalizeModelName is deprecated. You should use model names that are already normalized, or use string helpers of your own. This function is primarily an alias for dasherize from @ember/string.`, false, {
id: 'ember-data:deprecate-normalize-model-name-helper',
for: 'ember-data',
until: '5.0',
since: { available: '4.8', enabled: '4.8' }
});
return _normalize(modelName);
}
assert(`normalizeModelName support has been removed`);
}

export { default as coerceId } from './coerce-id';

export { errorsHashToArray, errorsArrayToHash } from './errors-utils';