zing-orm
Version:
81 lines • 5.33 kB
JavaScript
;
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=