adba
Version:
Any DataBase to API
42 lines (41 loc) • 2.37 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateModels = generateModels;
const generate_sqlite_models_1 = require("./generate-sqlite-models");
const generate_postgresql_models_1 = require("./generate-postgresql-models");
const generate_mysql_models_1 = require("./generate-mysql-models");
const generate_mssql_models_1 = require("./generate-mssql-models");
/**
* Generates models based on the structure of the database specified in the Knex instance.
* @param {Knex} knexInstance - The Knex instance connected to the database.
* @param {IGenerateModelsOptions} [opts={}] - Options including parse and format functions.
* @returns {Promise<Record<string, typeof Model>>} - A promise that resolves to an object containing all generated models.
*/
function generateModels(knexInstance_1) {
return __awaiter(this, arguments, void 0, function* (knexInstance, opts = {}) {
const client = knexInstance.client.config.client;
switch (client) {
case 'sqlite':
case 'sqlite3':
return yield (0, generate_sqlite_models_1.generateSQLiteModels)(knexInstance, opts);
case 'pg':
return yield (0, generate_postgresql_models_1.generatePostgreSQLModels)(knexInstance, opts);
case 'mysql':
case 'mysql2':
return yield (0, generate_mysql_models_1.generateMySQLModels)(knexInstance, opts);
case 'mssql':
return yield (0, generate_mssql_models_1.generateMSSQLModels)(knexInstance, opts);
default:
throw new Error(`Unsupported database client: ${client}`);
}
});
}