mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-10 07:37:19 +02:00
fix(validation): allow non-object params to remark/rehype plugins (#6977)
Remark and Rehype plugins allow having options as a non-object type, such as a string. For instance, the official MDX docs even have an example of this: See https://mdxjs.com/docs/extending-mdx/#using-plugins The official plugin `remarkjs/remark-frontmatter` allows passing a string, e.g. `"toml"` as the options arg, instead of an object.
This commit is contained in:
parent
4b3f568b78
commit
4d2ab826b8
3 changed files with 5 additions and 6 deletions
|
@ -32,8 +32,6 @@ exports[`validation schemas rehypePluginsSchema: for value=[[]] 1`] = `"\\"[0]\\
|
|||
|
||||
exports[`validation schemas rehypePluginsSchema: for value=[[null,null]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
|
||||
|
||||
exports[`validation schemas rehypePluginsSchema: for value=[[null,true]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
|
||||
|
||||
exports[`validation schemas rehypePluginsSchema: for value=[3] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
|
||||
|
||||
exports[`validation schemas rehypePluginsSchema: for value=[false] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
|
||||
|
@ -50,8 +48,6 @@ exports[`validation schemas remarkPluginsSchema: for value=[[]] 1`] = `"\\"[0]\\
|
|||
|
||||
exports[`validation schemas remarkPluginsSchema: for value=[[null,null]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
|
||||
|
||||
exports[`validation schemas remarkPluginsSchema: for value=[[null,true]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
|
||||
|
||||
exports[`validation schemas remarkPluginsSchema: for value=[3] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
|
||||
|
||||
exports[`validation schemas remarkPluginsSchema: for value=[false] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
|
||||
|
|
|
@ -46,6 +46,10 @@ function testMarkdownPluginSchemas(schema: Joi.Schema) {
|
|||
testOK([() => {}]);
|
||||
testOK([[() => {}, {attr: 'val'}]]);
|
||||
testOK([[() => {}, {attr: 'val'}], () => {}, [() => {}, {attr: 'val'}]]);
|
||||
// cSpell:ignore remarkjs
|
||||
// official `remarkjs/remark-frontmatter` plugin accepts string options
|
||||
testOK([[() => {}, 'string-option']]);
|
||||
testOK([[() => {}, true]]);
|
||||
|
||||
testFail(null);
|
||||
testFail(false);
|
||||
|
@ -55,7 +59,6 @@ function testMarkdownPluginSchemas(schema: Joi.Schema) {
|
|||
testFail([3]);
|
||||
testFail([[]]);
|
||||
testFail([[() => {}, undefined]]);
|
||||
testFail([[() => {}, true]]);
|
||||
}
|
||||
|
||||
describe('validation schemas', () => {
|
||||
|
|
|
@ -19,7 +19,7 @@ export const PluginIdSchema = Joi.string()
|
|||
|
||||
const MarkdownPluginsSchema = Joi.array()
|
||||
.items(
|
||||
Joi.array().ordered(Joi.function().required(), Joi.object().required()),
|
||||
Joi.array().ordered(Joi.function().required(), Joi.any().required()),
|
||||
Joi.function(),
|
||||
Joi.object(),
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue