From 1de8ae463808c26e0ac1c7dabac443d574baa1b6 Mon Sep 17 00:00:00 2001 From: Martin Fernandez Date: Thu, 31 Aug 2017 15:14:36 -0300 Subject: [PATCH] Fix constructor to support all Sequelize options --- lib/models/v3/Sequelize.ts | 27 +++++++++++++-------------- lib/models/v4/Sequelize.ts | 24 +++++++++++------------- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/lib/models/v3/Sequelize.ts b/lib/models/v3/Sequelize.ts index ec1dc526..087b5ce6 100644 --- a/lib/models/v3/Sequelize.ts +++ b/lib/models/v3/Sequelize.ts @@ -11,28 +11,27 @@ import {ISequelizeAssociation} from "../../interfaces/ISequelizeAssociation"; export class Sequelize extends SequelizeOrigin implements BaseSequelize { // to fix "$1" called with something that's not an instance of Sequelize.Model - Model: any = Function; + Model: any; - throughMap: { [through: string]: any } = {}; - _: { [modelName: string]: typeof Model } = {}; + throughMap: { [through: string]: any }; + _: { [modelName: string]: typeof Model }; init: (config: SequelizeConfig) => void; addModels: (models: Array | string[]) => void; associateModels: (models: Array) => void; constructor(config: SequelizeConfig | string) { - - super( - (typeof config === "string") ? - config : // URI string - BaseSequelize.isISequelizeUriConfig(config) ? - config.uri : // URI string from ISequelizeUriConfig - BaseSequelize.prepareConfig(config) // Config object (ISequelizeConfig) - ); - - if (BaseSequelize.isISequelizeUriConfig(config)) { - this.options = {...this.options, ...config}; + if (typeof config === "string") { + super(config) + } else if(BaseSequelize.isISequelizeUriConfig(config)) { + super(config.uri, config) + } else { + super(BaseSequelize.prepareConfig(config)) } + this.throughMap = {} + this._ = {} + this.Model = Function + if (typeof config !== "string") { this.init(config); } diff --git a/lib/models/v4/Sequelize.ts b/lib/models/v4/Sequelize.ts index dad83015..fe53fe14 100644 --- a/lib/models/v4/Sequelize.ts +++ b/lib/models/v4/Sequelize.ts @@ -9,26 +9,24 @@ import {ISequelizeAssociation} from "../../interfaces/ISequelizeAssociation"; export class Sequelize extends OriginSequelize implements BaseSequelize { - throughMap: {[through: string]: any} = {}; - _: {[modelName: string]: typeof Model} = {}; + throughMap: {[through: string]: any}; + _: {[modelName: string]: typeof Model}; init: (config: SequelizeConfig) => void; addModels: (models: Array | string[]) => void; associateModels: (models: Array) => void; constructor(config: SequelizeConfig | string) { - - super( - (typeof config === "string") ? - config : // URI string - BaseSequelize.isISequelizeUriConfig(config) ? - config.uri : // URI string from ISequelizeUriConfig - BaseSequelize.prepareConfig(config) // Config object (ISequelizeConfig) - ); - - if (BaseSequelize.isISequelizeUriConfig(config)) { - this.options = {...this.options, ...config}; + if (typeof config === "string") { + super(config) + } else if(BaseSequelize.isISequelizeUriConfig(config)) { + super(config.uri, config) + } else { + super(BaseSequelize.prepareConfig(config)) } + this.throughMap = {} + this._ = {} + if (typeof config !== "string") { this.init(config); }