feat(json-schema-2020-12-sample): introduce option API (#9795)
Refs #9739
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user