Files
pole-book/server/node_modules/@strapi/database/dist/connection.js

44 lines
1.4 KiB
JavaScript

'use strict';
var knex = require('knex');
const clientMap = {
sqlite: 'better-sqlite3',
mysql: 'mysql2',
postgres: 'pg'
};
function isClientValid(config) {
return Object.keys(clientMap).includes(config.client);
}
const createConnection = (userConfig, strapiConfig)=>{
if (!isClientValid(userConfig)) {
throw new Error(`Unsupported database client ${userConfig.client}`);
}
const knexConfig = {
...userConfig,
client: clientMap[userConfig.client]
};
// initialization code to run upon opening a new connection
if (strapiConfig?.pool?.afterCreate) {
knexConfig.pool = knexConfig.pool || {};
// if the user has set their own afterCreate in config, we will replace it and call it
const userAfterCreate = knexConfig.pool?.afterCreate;
const strapiAfterCreate = strapiConfig.pool.afterCreate;
knexConfig.pool.afterCreate = (conn, done)=>{
strapiAfterCreate(conn, (err, nativeConn)=>{
if (err) {
return done(err, nativeConn);
}
if (userAfterCreate) {
return userAfterCreate(nativeConn, done);
}
return done(null, nativeConn);
});
};
}
return knex(knexConfig);
};
exports.createConnection = createConnection;
//# sourceMappingURL=connection.js.map