Skip to content

Commit

Permalink
Fix incoherent usage of ember-inflector (#175)
Browse files Browse the repository at this point in the history
Problem
We're using ember-inflector incorrectly in two
[deprecated](emberjs/ember-inflector#131) ways:
- via `Ember.Inflector`
- via `Ember.String.singularize` and `Ember.String.pluralize`

and `ember-inflector` is not even listed as a dependency.

Solution
- Declares `ember-inflector` as an explicit dependency.
- Fixes usage of `singularize` and `pluralize`.
- Fixes usage of `Ember.Inflector` as prescribed in the [ember
guides](https://guides.emberjs.com/v2.16.0/models/customizing-adapters/#toc_pluralization-customization)
  • Loading branch information
delkopiso committed Nov 29, 2017
1 parent 6e69c9d commit d854379
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 12 deletions.
7 changes: 4 additions & 3 deletions addon/adapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import DS from 'ember-data';
import Ember from 'ember';
import Compiler from './compiler';
import request from 'ember-ajax/request';
import { pluralize } from 'ember-inflector';

export default DS.Adapter.extend({
endpoint: null,
Expand Down Expand Up @@ -59,7 +60,7 @@ export default DS.Adapter.extend({
@return {Promise} promise
*/
findAll: function(store, type) {
let operationName = this.normalizeCase(Ember.String.pluralize(type.modelName));
let operationName = this.normalizeCase(pluralize(type.modelName));

return this.request(store, type, {
'operationName': operationName,
Expand Down Expand Up @@ -87,7 +88,7 @@ export default DS.Adapter.extend({
@return {Promise} promise
*/
query: function(store, type, query) {
let operationName = this.normalizeCase(Ember.String.pluralize(type.modelName));
let operationName = this.normalizeCase(pluralize(type.modelName));

return this.request(store, type, {
'operationName': operationName,
Expand Down Expand Up @@ -137,7 +138,7 @@ export default DS.Adapter.extend({
@return {Promise} promise
*/
findMany(store, type, ids) {
let operationName = this.normalizeCase(Ember.String.pluralize(type.modelName));
let operationName = this.normalizeCase(pluralize(type.modelName));

return this.request(store, type, {
'operationName': operationName,
Expand Down
4 changes: 2 additions & 2 deletions addon/parser.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as Type from 'ember-graphql-adapter/types';
import Ember from 'ember';
import { singularize } from 'ember-inflector';

class Parser {
constructor({normalizeCaseFn, parseSelectionSet}) {
Expand Down Expand Up @@ -66,7 +66,7 @@ class Parser {

_buildAsyncRelationship(relName, { kind }) {
let suffix = kind === 'hasMany' ? 'Ids' : 'Id';
return this._buildField(Ember.String.singularize(relName) + suffix);
return this._buildField(singularize(relName) + suffix);
}
}

Expand Down
9 changes: 2 additions & 7 deletions addon/serializer.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
import DS from 'ember-data';
import Ember from 'ember';
import { pluralize, singularize } from 'ember-inflector';

const {
String: {
camelize,
pluralize,
singularize
}
} = Ember;
const { String: { camelize } } = Ember;

export default DS.JSONSerializer.extend(DS.EmbeddedRecordsMixin, {
isNewSerializerAPI: true,
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
"ember-data": "~2.16.2",
"ember-disable-prototype-extensions": "^1.1.2",
"ember-export-application-global": "^2.0.0",
"ember-inflector": "^2.1.0",
"ember-load-initializers": "^1.0.0",
"ember-resolver": "^4.0.0",
"ember-source": "~2.16.0",
Expand Down
6 changes: 6 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2319,6 +2319,12 @@ ember-inflector@^2.0.0:
dependencies:
ember-cli-babel "^6.0.0"

ember-inflector@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ember-inflector/-/ember-inflector-2.1.0.tgz#afcb92d022a4eab58f08ff4578eafc3a1de2d09b"
dependencies:
ember-cli-babel "^6.0.0"

ember-load-initializers@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ember-load-initializers/-/ember-load-initializers-1.0.0.tgz#4919eaf06f6dfeca7e134633d8c05a6c9921e6e7"
Expand Down

0 comments on commit d854379

Please sign in to comment.