🔨 Infer typings for config schema (#2656)

* 🚚 Move schema to standalone file

*  Add assertions to string literal arrays

*  Infer typings for convict schema

* 🔥 Remove unneeded assertions

* 🔨 Fix errors surfaced by typings

*  Type nodes.include/exclude per docs

*  Account for types for exception paths

*  Set method alias to flag incorrect paths

*  Replace original with alias

*  Make allowance for nodes.include

*  Adjust leftover calls

* 🔀 Fix conflicts

* 🔥 Remove unneeded castings

* 📘 Simplify exception path type

* 📦 Update package-lock.json

* 🔥 Remove unneeded imports

* 🔥 Remove unrelated file

*  Update schema

*  Update interface

* 📦 Update package-lock.json

* 📦 Update package-lock.json

* 🔥 Remove leftover assertions

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
This commit is contained in:
Iván Ovejero
2022-04-08 19:37:27 +02:00
committed by GitHub
parent 23f0501f4c
commit 37a6e329af
82 changed files with 1393 additions and 1256 deletions

View File

@@ -22,7 +22,7 @@ import type { CollectionName, CredentialPayload } from './types';
* Initialize one test DB per suite run, with bootstrap connection if needed.
*/
export async function init() {
const dbType = config.get('database.type') as DatabaseType;
const dbType = config.getEnv('database.type');
if (dbType === 'sqlite') {
// no bootstrap connection required
@@ -73,7 +73,7 @@ export async function init() {
* Drop test DB, closing bootstrap connection if existing.
*/
export async function terminate(testDbName: string) {
const dbType = config.get('database.type') as DatabaseType;
const dbType = config.getEnv('database.type');
if (dbType === 'sqlite') {
await getConnection(testDbName).close();
@@ -103,7 +103,7 @@ export async function terminate(testDbName: string) {
* @param testDbName Name of the test DB to truncate tables in.
*/
export async function truncate(collections: CollectionName[], testDbName: string) {
const dbType = config.get('database.type');
const dbType = config.getEnv('database.type');
const testDb = getConnection(testDbName);
@@ -295,11 +295,11 @@ export const getSqliteOptions = ({ name }: { name: string }): ConnectionOptions
* to create and drop test Postgres databases.
*/
export const getBootstrapPostgresOptions = () => {
const username = config.get('database.postgresdb.user');
const password = config.get('database.postgresdb.password');
const host = config.get('database.postgresdb.host');
const port = config.get('database.postgresdb.port');
const schema = config.get('database.postgresdb.schema');
const username = config.getEnv('database.postgresdb.user');
const password = config.getEnv('database.postgresdb.password');
const host = config.getEnv('database.postgresdb.host');
const port = config.getEnv('database.postgresdb.port');
const schema = config.getEnv('database.postgresdb.schema');
return {
name: BOOTSTRAP_POSTGRES_CONNECTION_NAME,
@@ -314,11 +314,11 @@ export const getBootstrapPostgresOptions = () => {
};
export const getPostgresOptions = ({ name }: { name: string }): ConnectionOptions => {
const username = config.get('database.postgresdb.user');
const password = config.get('database.postgresdb.password');
const host = config.get('database.postgresdb.host');
const port = config.get('database.postgresdb.port');
const schema = config.get('database.postgresdb.schema');
const username = config.getEnv('database.postgresdb.user');
const password = config.getEnv('database.postgresdb.password');
const host = config.getEnv('database.postgresdb.host');
const port = config.getEnv('database.postgresdb.port');
const schema = config.getEnv('database.postgresdb.schema');
return {
name,
@@ -345,10 +345,10 @@ export const getPostgresOptions = ({ name }: { name: string }): ConnectionOption
* to create and drop test MySQL databases.
*/
export const getBootstrapMySqlOptions = (): ConnectionOptions => {
const username = config.get('database.mysqldb.user');
const password = config.get('database.mysqldb.password');
const host = config.get('database.mysqldb.host');
const port = config.get('database.mysqldb.port');
const username = config.getEnv('database.mysqldb.user');
const password = config.getEnv('database.mysqldb.password');
const host = config.getEnv('database.mysqldb.host');
const port = config.getEnv('database.mysqldb.port');
return {
name: BOOTSTRAP_MYSQL_CONNECTION_NAME,
@@ -366,10 +366,10 @@ export const getBootstrapMySqlOptions = (): ConnectionOptions => {
* one per test suite run.
*/
export const getMySqlOptions = ({ name }: { name: string }): ConnectionOptions => {
const username = config.get('database.mysqldb.user');
const password = config.get('database.mysqldb.password');
const host = config.get('database.mysqldb.host');
const port = config.get('database.mysqldb.port');
const username = config.getEnv('database.mysqldb.user');
const password = config.getEnv('database.mysqldb.password');
const host = config.getEnv('database.mysqldb.host');
const port = config.getEnv('database.mysqldb.port');
return {
name,