refactor: unify how validateOptions is handled (#6961)

* refactor: unify how validateOptions is handled

* fix types

* fix again
This commit is contained in:
Joshua Chen 2022-03-22 19:40:56 +08:00 committed by GitHub
parent 44107fb879
commit 6e2eb44964
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
43 changed files with 542 additions and 540 deletions

View file

@ -24,6 +24,9 @@ describe('normalizePluginOptions', () => {
options,
),
).toEqual(options);
expect(
normalizePluginOptions(Joi.object({foo: Joi.string()}), undefined),
).toEqual({id: 'default'});
});
it('normalizes plugin options', () => {

View file

@ -20,7 +20,8 @@ export function printWarning(warning?: Joi.ValidationError): void {
export function normalizePluginOptions<T extends {id?: string}>(
schema: Joi.ObjectSchema<T>,
options: Partial<T>,
// This allows us to automatically normalize undefined to {id: 'default'}
options: Partial<T> = {},
): T {
// All plugins can be provided an "id" option (multi-instance support)
// we add schema validation automatically