feat(json-schema-2020-12-sample): introduce option API (#9795)

Refs #9739
This commit is contained in:
Vladimír Gorej
2024-04-09 14:50:47 +02:00
committed by GitHub
parent 1267c04230
commit 7db9c9879b
4 changed files with 36 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
/**
* @prettier
*/
import OptionRegistry from "../class/OptionRegistry"
const registry = new OptionRegistry()
const optionAPI = (optionName, optionValue) => {
if (typeof optionValue !== "undefined") {
registry.register(optionName, optionValue)
}
return registry.get(optionName)
}
export default optionAPI

View File

@@ -0,0 +1,16 @@
/**
* @prettier
*/
import Registry from "./Registry"
class OptionRegistry extends Registry {
#defaults = {}
data = { ...this.#defaults }
get defaults() {
return { ...this.#defaults }
}
}
export default OptionRegistry

View File

@@ -8,6 +8,7 @@ export {
memoizedSampleFromSchema,
memoizedCreateXMLExample,
} from "./main"
export { default as optionAPI } from "./api/optionAPI"
export { default as encoderAPI } from "./api/encoderAPI"
export { default as formatAPI } from "./api/formatAPI"
export { default as mediaTypeAPI } from "./api/mediaTypeAPI"

View File

@@ -7,6 +7,7 @@ import {
createXMLExample,
memoizedSampleFromSchema,
memoizedCreateXMLExample,
optionAPI,
encoderAPI,
mediaTypeAPI,
formatAPI,
@@ -28,6 +29,7 @@ const JSONSchema202012SamplesPlugin = ({ getSystem }) => {
jsonSchema202012: {
sampleFromSchema,
sampleFromSchemaGeneric,
sampleOptionAPI: optionAPI,
sampleEncoderAPI: encoderAPI,
sampleFormatAPI: formatAPI,
sampleMediaTypeAPI: mediaTypeAPI,