zing-orm
Version:
73 lines • 4.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DriverFactory = void 0;
const OracleDriver_1 = require("./oracle/OracleDriver");
const MssqlDriver_1 = require("./mssql/MssqlDriver");
const ArangodbDriver_1 = require("./arangodb/ArangodbDriver");
const DriverParams_1 = require("./types/DriverParams");
const JoiUtils_1 = require("../util/JoiUtils");
/**
* Helps to create drivers.
*/
class DriverFactory {
/**
* Creates a new driver depend on a given connection's driver type.
*/
static async create(options) {
let type;
try {
await JoiUtils_1.JoiUtils.checkParams(DriverParams_1.OptionsParamsSchema, options);
type = options.type;
switch (type) {
// case "mysql":
// return new MysqlDriver(connection);
// case "postgres":
// return new PostgresDriver(connection);
// case "cockroachdb":
// return new CockroachDriver(connection);
// case "sap":
// return new SapDriver(connection);
// case "mariadb":
// return new MysqlDriver(connection);
// case "sqlite":
// return new SqliteDriver(connection);
// case "better-sqlite3":
// return new BetterSqlite3Driver(connection);
// case "cordova":
// return new CordovaDriver(connection);
// case "nativescript":
// return new NativescriptDriver(connection);
// case "react-native":
// return new ReactNativeDriver(connection);
// case "sqljs":
// return new SqljsDriver(connection);
case "mssql":
return new MssqlDriver_1.MssqlDriver();
case "oracle":
return new OracleDriver_1.OracleDriver();
case "arangodb":
return new ArangodbDriver_1.ArangodbDriver();
// case "mssql":
// return new SqlServerDriver(connection);
// case "mongodb":
// return new MongoDriver(connection);
// case "expo":
// return new ExpoDriver(connection);
// case "aurora-data-api":
// return new AuroraDataApiDriver(connection);
// case "aurora-data-api-pg":
// return new AuroraDataApiPostgresDriver(connection);
// case "capacitor":
// return new CapacitorDriver(connection);
default:
throw new Error(`${type} driver is not found!`);
}
}
catch (err) {
//todo
console.error(`DriverFactory create ${type} driver 失败!!!`, err);
}
}
}
exports.DriverFactory = DriverFactory;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJpdmVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRyaXZlckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0RBQXFEO0FBQ3JELHFEQUFrRDtBQUNsRCw4REFBMkQ7QUFFM0QsdURBQTBFO0FBQzFFLCtDQUE0QztBQUU1Qzs7R0FFRztBQUNILE1BQWEsYUFBYTtJQUV0Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQXNCO1FBQ3RDLElBQUksSUFBWSxDQUFDO1FBQ2pCLElBQUk7WUFDQSxNQUFNLG1CQUFRLENBQUMsV0FBVyxDQUFDLGtDQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3pELElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3BCLFFBQVEsSUFBSSxFQUFFO2dCQUNWLGdCQUFnQjtnQkFDaEIsMENBQTBDO2dCQUMxQyxtQkFBbUI7Z0JBQ25CLDZDQUE2QztnQkFDN0Msc0JBQXNCO2dCQUN0Qiw4Q0FBOEM7Z0JBQzlDLGNBQWM7Z0JBQ2Qsd0NBQXdDO2dCQUN4QyxrQkFBa0I7Z0JBQ2xCLDBDQUEwQztnQkFDMUMsaUJBQWlCO2dCQUNqQiwyQ0FBMkM7Z0JBQzNDLHlCQUF5QjtnQkFDekIsa0RBQWtEO2dCQUNsRCxrQkFBa0I7Z0JBQ2xCLDRDQUE0QztnQkFDNUMsdUJBQXVCO2dCQUN2QixpREFBaUQ7Z0JBQ2pELHVCQUF1QjtnQkFDdkIsZ0RBQWdEO2dCQUNoRCxnQkFBZ0I7Z0JBQ2hCLDBDQUEwQztnQkFDMUMsS0FBSyxPQUFPO29CQUNSLE9BQU8sSUFBSSx5QkFBVyxFQUFFLENBQUM7Z0JBQzdCLEtBQUssUUFBUTtvQkFDVCxPQUFPLElBQUksMkJBQVksRUFBRSxDQUFDO2dCQUM5QixLQUFLLFVBQVU7b0JBQ1gsT0FBTyxJQUFJLCtCQUFjLEVBQUUsQ0FBQztnQkFDaEMsZ0JBQWdCO2dCQUNoQiw4Q0FBOEM7Z0JBQzlDLGtCQUFrQjtnQkFDbEIsMENBQTBDO2dCQUMxQyxlQUFlO2dCQUNmLHlDQUF5QztnQkFDekMsMEJBQTBCO2dCQUMxQixrREFBa0Q7Z0JBQ2xELDZCQUE2QjtnQkFDN0IsMERBQTBEO2dCQUMxRCxvQkFBb0I7Z0JBQ3BCLDhDQUE4QztnQkFDOUM7b0JBQ0ksTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksdUJBQXVCLENBQUMsQ0FBQzthQUN2RDtTQUNKO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDbkU7SUFDTCxDQUFDO0NBRUo7QUE1REQsc0NBNERDIn0=