不要怂,就是干,撸起袖子干!

Commit 2391d082 by Davide Mauri Committed by GitHub

feat(sequelize): allow passing dialectOptions.options from url (#12412)

1 parent 8477b071
......@@ -212,10 +212,20 @@ class Sequelize {
}
if (urlParts.query) {
if (options.dialectOptions)
if (options.dialectOptions) {
Object.assign(options.dialectOptions, urlParts.query);
else
} else {
options.dialectOptions = urlParts.query;
if (urlParts.query.options) {
try {
const o = JSON.parse(urlParts.query.options);
options.dialectOptions.options = o;
} catch (e) {
// Nothing to do, string is not a valid JSON
// an thus does not need any further processing
}
}
}
}
} else {
// new Sequelize(database, username, password, { ... options })
......
......@@ -179,5 +179,11 @@ describe('Sequelize', () => {
expect(dialectOptions.application_name).to.equal('client');
expect(dialectOptions.ssl).to.equal('true');
});
it('should handle JSON options', () => {
const sequelizeWithOptions = new Sequelize('mysql://example.com:9821/dbname?options={"encrypt":true}&anotherOption=1');
expect(sequelizeWithOptions.options.dialectOptions.options.encrypt).to.be.true;
expect(sequelizeWithOptions.options.dialectOptions.anotherOption).to.equal('1');
});
});
});
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!