UNPKG

zing-orm

Version:
81 lines 5.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RepositoryFactory = void 0; /** * Factory used to create different types of repositories. */ const OracleRepository_1 = require("./oracle/OracleRepository"); const MssqlRepository_1 = require("./mssql/MssqlRepository"); const ArangodbRepository_1 = require("./arangodb/ArangodbRepository"); const DriverParams_1 = require("../driver/types/DriverParams"); const JoiUtils_1 = require("../util/JoiUtils"); /** * Helps to create drivers. */ class RepositoryFactory { /** * Creates a new repository. */ static async create(options, connection, entity) { let type; let repository; 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": repository = await new MssqlRepository_1.MssqlRepository(connection, entity); break; case "oracle": repository = await new OracleRepository_1.OracleRepository(connection, entity); break; case "arangodb": repository = await new ArangodbRepository_1.ArangodbRepository(connection, entity); break; // 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} repository is not found!`); } return repository; } catch (err) { //todo console.error(`RepositoryFactory create ${type} repository 失败!!!`, err); } } } exports.RepositoryFactory = RepositoryFactory; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJSZXBvc2l0b3J5RmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILGdFQUE2RDtBQUM3RCw2REFBMEQ7QUFDMUQsc0VBQW1FO0FBRW5FLCtEQUFrRjtBQUNsRiwrQ0FBNEM7QUFFNUM7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjtJQUUxQjs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQXNCLEVBQUUsVUFBZSxFQUFFLE1BQVc7UUFDcEUsSUFBSSxJQUFZLENBQUM7UUFDakIsSUFBSSxVQUFlLENBQUM7UUFDcEIsSUFBSTtZQUNBLE1BQU0sbUJBQVEsQ0FBQyxXQUFXLENBQUMsa0NBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDekQsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDcEIsUUFBUSxJQUFJLEVBQUU7Z0JBQ1YsZ0JBQWdCO2dCQUNoQiwwQ0FBMEM7Z0JBQzFDLG1CQUFtQjtnQkFDbkIsNkNBQTZDO2dCQUM3QyxzQkFBc0I7Z0JBQ3RCLDhDQUE4QztnQkFDOUMsY0FBYztnQkFDZCx3Q0FBd0M7Z0JBQ3hDLGtCQUFrQjtnQkFDbEIsMENBQTBDO2dCQUMxQyxpQkFBaUI7Z0JBQ2pCLDJDQUEyQztnQkFDM0MseUJBQXlCO2dCQUN6QixrREFBa0Q7Z0JBQ2xELGtCQUFrQjtnQkFDbEIsNENBQTRDO2dCQUM1Qyx1QkFBdUI7Z0JBQ3ZCLGlEQUFpRDtnQkFDakQsdUJBQXVCO2dCQUN2QixnREFBZ0Q7Z0JBQ2hELGdCQUFnQjtnQkFDaEIsMENBQTBDO2dCQUMxQyxLQUFLLE9BQU87b0JBQ1IsVUFBVSxHQUFHLE1BQU0sSUFBSSxpQ0FBZSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFBQyxNQUFNO2dCQUN0RSxLQUFLLFFBQVE7b0JBQ1QsVUFBVSxHQUFHLE1BQU0sSUFBSSxtQ0FBZ0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQUMsTUFBTTtnQkFDdkUsS0FBSyxVQUFVO29CQUNYLFVBQVUsR0FBRyxNQUFNLElBQUksdUNBQWtCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUFDLE1BQU07Z0JBQ3pFLGdCQUFnQjtnQkFDaEIsOENBQThDO2dCQUM5QyxrQkFBa0I7Z0JBQ2xCLDBDQUEwQztnQkFDMUMsZUFBZTtnQkFDZix5Q0FBeUM7Z0JBQ3pDLDBCQUEwQjtnQkFDMUIsa0RBQWtEO2dCQUNsRCw2QkFBNkI7Z0JBQzdCLDBEQUEwRDtnQkFDMUQsb0JBQW9CO2dCQUNwQiw4Q0FBOEM7Z0JBQzlDO29CQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLDJCQUEyQixDQUFDLENBQUM7YUFDM0Q7WUFDRCxPQUFPLFVBQVUsQ0FBQztTQUNyQjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1YsTUFBTTtZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLElBQUksbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDM0U7SUFDTCxDQUFDO0NBRUo7QUE5REQsOENBOERDIn0=