diff --git a/package.json b/package.json index 28dccd1..3955cf0 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,9 @@ "method-override": "^2.1.2", "morgan": "^1.3.1", "node-uuid": "^1.4.2", + "pluralize": "^1.1.2", "underscore": "^1.5.2", "underscore-db": "^0.8.0", - "underscore.inflections": "~0.2.1", "update-notifier": "^0.2.2", "yargs": "^1.3.1" }, diff --git a/src/router.js b/src/router.js index ffbb732..7e7c924 100644 --- a/src/router.js +++ b/src/router.js @@ -3,11 +3,11 @@ var methodOverride = require('method-override') var bodyParser = require('body-parser') var _ = require('underscore') var low = require('lowdb') +var pluralize = require('pluralize') var utils = require('./utils') -// Add methods to lowdb +// Add underscore-db methods to lowdb low.mixin(require('underscore-db')) -low.mixin(require('underscore.inflections')) // Override underscore-db's createId with utils.createId // utils.createId can generate incremental id or uuid @@ -88,7 +88,8 @@ module.exports = function (source) { // Add :parentId filter in case URL is like /:parent/:parentId/:resource if (req.params.parent) { - filters[req.params.parent.slice(0, -1) + 'Id'] = +req.params.parentId + var parent = pluralize.singular(req.params.parent) + filters[parent + 'Id'] = +req.params.parentId } // Add query parameters filters diff --git a/src/utils.js b/src/utils.js index a954acf..c196ee9 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,7 +1,6 @@ var _ = require('underscore') var uuid = require('node-uuid') -var _inflections = require('underscore.inflections') -_.mixin(_inflections) +var pluralize = require('pluralize') // Turns string to native. // Example: @@ -50,7 +49,7 @@ function getRemovable (db) { _(coll).each(function (doc) { _(doc).each(function (value, key) { if (/Id$/.test(key)) { - var refName = _.pluralize(key.slice(0, -2)) + var refName = pluralize.plural(key.slice(0, -2)) // Test if table exists if (db[refName]) { // Test if references is defined in table