nodejs-schema-rules
Version:
The CLI tool automatically generates basic validation rules for popular libraries such as JOI, ValidatorJS and @vinejs/vine based on your database table schema!
24 lines (21 loc) • 1 kB
text/typescript
import { ConnectionConfig as MySQLConnectionConfig } from 'mysql2/promise';
import { IDatabaseBaseClassMap, IDatabaseConfig } from "../contacts/Database";
import { databaseClassMap } from "../utils/constants";
import { ClientConfig as PostgresClientConfig } from 'pg';
export class Database{
private databaseType:(keyof IDatabaseBaseClassMap);
private databaseConfig:MySQLConnectionConfig|PostgresClientConfig|any;
constructor(databaeTpe:(keyof IDatabaseBaseClassMap),databaseConfig: IDatabaseConfig) {
this.databaseType=databaeTpe;
this.databaseConfig = databaseConfig;
}
// Function to initialize a class based on the request validation type
public init(): InstanceType<IDatabaseBaseClassMap[keyof IDatabaseBaseClassMap]> {
const DatabaseClass = databaseClassMap[this.databaseType]
if (DatabaseClass) {
return new DatabaseClass(this.databaseConfig)
} else {
throw new Error(`Unsupported database: ${String(this.databaseType)}`)
}
}
}