Skip to content

Commit

Permalink
Patches use Sequelize.version for version number where available (c…
Browse files Browse the repository at this point in the history
…loses #5)
  • Loading branch information
overlookmotel committed Sep 9, 2015
1 parent 27d4706 commit dcb69b9
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 27 deletions.
4 changes: 4 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,3 +183,7 @@ Breaking changes:
* Update dependency mysql in line with Sequelize v3.7.1
* Update dependency lodash
* Update dev dependencies

## Next

* Patches use `Sequelize.version` for version number where available
15 changes: 8 additions & 7 deletions lib/defineAll.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ var _ = require('lodash');

// imports
var utils = require('./utils'),
patches = require('./patches');
patchesFn = require('./patches');

// exports

Expand All @@ -19,7 +19,8 @@ var utils = require('./utils'),
module.exports = function(definitions, defineOptions) {
var sequelize = this,
Sequelize = sequelize.Sequelize,
Utils = Sequelize.Utils;
Utils = Sequelize.Utils,
patches = patchesFn(Sequelize);

var globalOptions = sequelize.options.define || {};

Expand Down Expand Up @@ -145,7 +146,7 @@ module.exports = function(definitions, defineOptions) {
primaryKeys[modelName + Utils.uppercaseFirst(key)] = primaryKeys[modelName + '_' + key] = {model: modelName, field: key};

// get table name
utils.defaultNoUndef(options, 'tableName', options.freezeTableName ? modelName : patches.underscoredIf(Utils.pluralize(modelName), options.underscoredAll, Sequelize));
utils.defaultNoUndef(options, 'tableName', options.freezeTableName ? modelName : patches.underscoredIf(Utils.pluralize(modelName), options.underscoredAll));

// return definition
return definition;
Expand Down Expand Up @@ -303,8 +304,8 @@ module.exports = function(definitions, defineOptions) {
model2 = models[modelName2],
key1 = definitions[modelName1].primaryKey,
key2 = definitions[modelName2].primaryKey,
foreignKey1 = patches.underscoredIf(modelName1 + Utils.uppercaseFirst(key1), options.underscored, Sequelize),
foreignKey2 = patches.underscoredIf(modelName2 + Utils.uppercaseFirst(key2), options.underscored, Sequelize);
foreignKey1 = patches.underscoredIf(modelName1 + Utils.uppercaseFirst(key1), options.underscored),
foreignKey2 = patches.underscoredIf(modelName2 + Utils.uppercaseFirst(key2), options.underscored);

var throughExisting = false;
if (options.through) {
Expand All @@ -320,8 +321,8 @@ module.exports = function(definitions, defineOptions) {

var modelNameAs = options.as ? Utils.singularize(options.as) : modelName2;
if (options.camel) modelNameAs = Utils.uppercaseFirst(modelNameAs);
var modelName = patches.underscoredIf(modelName1 + modelNameAs, options.underscoredAll, Sequelize);
var tableName = options.freezeTableName ? modelName : patches.underscoredIf(Utils.pluralize(modelName1) + Utils.pluralize(modelNameAs), options.underscoredAll, Sequelize);
var modelName = patches.underscoredIf(modelName1 + modelNameAs, options.underscoredAll);
var tableName = options.freezeTableName ? modelName : patches.underscoredIf(Utils.pluralize(modelName1) + Utils.pluralize(modelNameAs), options.underscoredAll);

if (models[modelName]) throw new Sequelize.SequelizeDefinerError("Through model '" + modelName + "' between '" + modelName1 + "' and '" + modelName2 + (options.as ? ' (' + options.as + ')' : '') + "' already exists");

Expand Down
40 changes: 21 additions & 19 deletions lib/patches.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,30 @@
// modules
var semverSelect = require('semver-select');

var sequelizeVersion = require('sequelize/package.json').version;
var sequelizeVersionImported = require('sequelize/package.json').version;

// exports

// define patches
module.exports = semverSelect.object(sequelizeVersion, {
setReferences: {
'<3.0.1': function(params, references) {
params.references = references.model;
params.referencesKey = references.key;
},
'*': function(params, references) {
params.references = references;
}
},
// function to define patches
module.exports = function(Sequelize) {
// get Sequelize version
var sequelizeVersion = Sequelize.version || sequelizeVersionImported;

underscoredIf: {
'<3.5.0': function(string, condition, Sequelize) {
return Sequelize.Utils._.underscoredIf(string, condition);
// define patches
return semverSelect.object(sequelizeVersion, {
setReferences: {
'<3.0.1': function(params, references) {
params.references = references.model;
params.referencesKey = references.key;
},
'*': function(params, references) {
params.references = references;
}
},
'*': function(string, condition, Sequelize) {
return Sequelize.Utils.underscoredIf(string, condition);

underscoredIf: {
'<3.5.0': Sequelize.Utils._.underscoredIf,
'*': Sequelize.Utils.underscoredIf
}
}
});
});
};
2 changes: 1 addition & 1 deletion test/all.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ var chai = require('chai'),
pathModule = require('path'),
semverSelect = require('semver-select');

var sequelizeVersion = require('sequelize/package.json').version;
var sequelizeVersion = Sequelize.version || require('sequelize/package.json').version;

// init
chai.use(promised);
Expand Down

0 comments on commit dcb69b9

Please sign in to comment.