Helper func to parse validation error
This commit is contained in:
parent
5eacb93966
commit
ea31ace0eb
@ -277,12 +277,15 @@ class MariaDB
|
||||
}
|
||||
return new Promise<void>(resolve =>
|
||||
{
|
||||
this.#logger?.info('Closing pool');
|
||||
if (!this.#pool)
|
||||
{
|
||||
this.#logger?.debug('Pool was already closed');
|
||||
resolve(); return;
|
||||
}
|
||||
this.#pool.end(() =>
|
||||
{
|
||||
this.#logger?.status('Pool closed');
|
||||
this.#pool?.removeAllListeners();
|
||||
resolve();
|
||||
});
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { inspect } from 'node:util';
|
||||
import { MongoClient, MongoClientOptions, Db, Document, WithId, ObjectId, Filter, IndexSpecification, CreateIndexesOptions, FindOptions, ModifyResult, DistinctOptions } from 'mongodb';
|
||||
import { MongoClient, MongoClientOptions, Db, Document, WithId, ObjectId, Filter, IndexSpecification, CreateIndexesOptions, FindOptions, ModifyResult, DistinctOptions, MongoServerError } from 'mongodb';
|
||||
import { IServer, ILogger } from './interfaces/index.js';
|
||||
|
||||
interface Credentials {
|
||||
@ -40,6 +40,16 @@ const objIsSubset = (superObj: StringIndexable, subObj: StringIndexable): boolea
|
||||
});
|
||||
};
|
||||
|
||||
export const parseValidationError = (error: MongoServerError) =>
|
||||
{
|
||||
if (error.code !== 121 || !error.errInfo)
|
||||
throw new Error('Not a validation error');
|
||||
const rule = error.errInfo.details.schemaRulesNotSatisfied;
|
||||
const missing = rule.missingProperties as string[];
|
||||
const required = rule.specifiedAs.required as string[];
|
||||
return { missing, required };
|
||||
};
|
||||
|
||||
/**
|
||||
* A dedicated class to locally wrap the mongodb API wrapper
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user