From 6ec1c10465af5405301700a499abbb11006ceb1e Mon Sep 17 00:00:00 2001 From: Kinsi Date: Sun, 11 Aug 2019 19:19:20 +0200 Subject: [PATCH 1/3] Restore stock ability to globally set values for all models --- README.md | 3 ++- index.js | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0640a1e..d049d4f 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,8 @@ Also you can set some parameters in `config/sequelize.js` to override defaults. ``` module.exports.sequelize = { "clsNamespace": "myAppCLSNamespace", - "exposeToGlobal": true + "exposeToGlobal": true, + "mergeConfigModel": false //Restores default funcationality where you can have global / default values for all attributes }; ``` diff --git a/index.js b/index.js index 378f6c4..4775519 100644 --- a/index.js +++ b/index.js @@ -8,7 +8,8 @@ module.exports = sails => { defaults: { __configKey__: { clsNamespace: 'sails-sequelize', - exposeToGlobal: true + exposeToGlobal: true, + mergeConfigModel: false } }, configure () { @@ -82,6 +83,12 @@ module.exports = sails => { return next(err); } + if(sails.config[this.configKey].mergeConfigModel) { + Object.values(models).forEach((model) => { + model = _.defaultsDeep(model, sails.config.models); + }); + } + self.defineModels(models, connections); self.migrateSchema(next, connections, models); }); From bc04d0468b8379ddf5e924a0a05ad5c66dc8481b Mon Sep 17 00:00:00 2001 From: Kinsi Date: Sun, 11 Aug 2019 19:35:22 +0200 Subject: [PATCH 2/3] Switched to a seperate config key to retain full compatability with waterline --- README.md | 2 +- index.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d049d4f..df6756b 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Also you can set some parameters in `config/sequelize.js` to override defaults. module.exports.sequelize = { "clsNamespace": "myAppCLSNamespace", "exposeToGlobal": true, - "mergeConfigModel": false //Restores default funcationality where you can have global / default values for all attributes + "mergeConfigModel": false //If set to an Object, allows to set default options for all models (Can be overriden in the model itself). }; ``` diff --git a/index.js b/index.js index 4775519..5d31b29 100644 --- a/index.js +++ b/index.js @@ -9,7 +9,7 @@ module.exports = sails => { __configKey__: { clsNamespace: 'sails-sequelize', exposeToGlobal: true, - mergeConfigModel: false + modelDefaults: false } }, configure () { @@ -83,9 +83,9 @@ module.exports = sails => { return next(err); } - if(sails.config[this.configKey].mergeConfigModel) { + if(sails.config[this.configKey].modelDefaults) { Object.values(models).forEach((model) => { - model = _.defaultsDeep(model, sails.config.models); + model = _.defaultsDeep(model, sails.config[this.configKey].modelDefaults); }); } From 04b3ff30a74cbdd64da4daf758c0906508a71652 Mon Sep 17 00:00:00 2001 From: Kinsi Date: Sun, 11 Aug 2019 19:36:38 +0200 Subject: [PATCH 3/3] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index df6756b..203e9ab 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Also you can set some parameters in `config/sequelize.js` to override defaults. module.exports.sequelize = { "clsNamespace": "myAppCLSNamespace", "exposeToGlobal": true, - "mergeConfigModel": false //If set to an Object, allows to set default options for all models (Can be overriden in the model itself). + "modelDefaults": false //If set to an Object, allows to set default options for all models (Can be overriden in the model itself). }; ```