@asyncapi/react-component 3.0.2 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/index.js +1 -1
- package/browser/standalone/index.js +1 -1
- package/browser/standalone/without-parser.js +1 -1
- package/browser/without-parser.js +1 -1
- package/lib/cjs/components/Schema.js +9 -9
- package/lib/cjs/components/Schema.js.map +1 -1
- package/lib/esm/components/Schema.js +9 -9
- package/lib/esm/components/Schema.js.map +1 -1
- package/package.json +1 -1
|
@@ -160,22 +160,22 @@ var Schema = function (_a) {
|
|
|
160
160
|
};
|
|
161
161
|
exports.Schema = Schema;
|
|
162
162
|
var SchemaProperties = function (_a) {
|
|
163
|
-
var _b;
|
|
163
|
+
var _b, _c, _d;
|
|
164
164
|
var schema = _a.schema;
|
|
165
|
-
var properties = schema.properties();
|
|
166
|
-
|
|
165
|
+
var properties = Object.entries((_b = schema.properties()) !== null && _b !== void 0 ? _b : {});
|
|
166
|
+
var patternProperties = Object.entries((_c = schema.patternProperties()) !== null && _c !== void 0 ? _c : {});
|
|
167
|
+
if (!properties.length && !patternProperties.length) {
|
|
167
168
|
return null;
|
|
168
169
|
}
|
|
169
|
-
var required = (
|
|
170
|
-
var patternProperties = schema.patternProperties();
|
|
170
|
+
var required = (_d = schema.required()) !== null && _d !== void 0 ? _d : [];
|
|
171
171
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
172
|
-
|
|
172
|
+
properties.map(function (_a) {
|
|
173
173
|
var propertyName = _a[0], property = _a[1];
|
|
174
|
-
return (react_1.default.createElement(exports.Schema, { schema: property, schemaName: propertyName, required: required.includes(propertyName), isProperty: true, isCircular: property.isCircular(), dependentRequired: helpers_1.SchemaHelpers.getDependentRequired(propertyName, schema)
|
|
174
|
+
return (react_1.default.createElement(exports.Schema, { key: propertyName, schema: property, schemaName: propertyName, required: required.includes(propertyName), isProperty: true, isCircular: property.isCircular(), dependentRequired: helpers_1.SchemaHelpers.getDependentRequired(propertyName, schema) }));
|
|
175
175
|
}),
|
|
176
|
-
|
|
176
|
+
patternProperties.map(function (_a) {
|
|
177
177
|
var propertyName = _a[0], property = _a[1];
|
|
178
|
-
return (react_1.default.createElement(exports.Schema, { schema: property, schemaName: propertyName, isPatternProperty: true, isProperty: true, isCircular: property.isCircular()
|
|
178
|
+
return (react_1.default.createElement(exports.Schema, { key: propertyName, schema: property, schemaName: propertyName, isPatternProperty: true, isProperty: true, isCircular: property.isCircular() }));
|
|
179
179
|
})));
|
|
180
180
|
};
|
|
181
181
|
var AdditionalProperties = function (_a) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useContext } from 'react';\nimport { SchemaInterface } from '@asyncapi/parser';\n\nimport { Href, CollapseButton, Markdown, Extensions } from './index';\nimport { SchemaHelpers } from '../helpers';\n\ninterface Props {\n schemaName?: React.ReactNode;\n schema?: SchemaInterface;\n required?: boolean;\n isPatternProperty?: boolean;\n isProperty?: boolean;\n isCircular?: boolean;\n dependentRequired?: string[];\n expanded?: boolean;\n onlyTitle?: boolean;\n isArray?: boolean;\n}\n\nconst SchemaContext = React.createContext({\n reverse: false,\n deepExpanded: false,\n});\n\nexport const Schema: React.FunctionComponent<Props> = ({\n schemaName,\n schema,\n required = false,\n isPatternProperty = false,\n isProperty = false,\n isCircular = false,\n dependentRequired,\n expanded: propExpanded = false,\n onlyTitle = false,\n isArray = false,\n // eslint-disable-next-line sonarjs/cognitive-complexity\n}) => {\n const { reverse, deepExpanded } = useContext(SchemaContext);\n const [expanded, setExpanded] = useState(propExpanded || isArray);\n const [deepExpand, setDeepExpand] = useState(false);\n\n useEffect(() => {\n if (!isArray) {\n setDeepExpand(deepExpanded);\n }\n }, [isArray, deepExpanded, setDeepExpand]);\n\n useEffect(() => {\n if (!isArray) {\n setExpanded(deepExpand);\n }\n }, [isArray, deepExpand, setExpanded]);\n\n if (\n !schema ||\n (typeof schemaName === 'string' &&\n (schemaName?.startsWith('x-parser-') ||\n schemaName?.startsWith('x-schema-private-')))\n ) {\n return null;\n }\n\n const dependentSchemas = SchemaHelpers.getDependentSchemas(schema);\n\n const constraints = SchemaHelpers.humanizeConstraints(schema);\n const externalDocs = schema.externalDocs();\n\n const rawValueExt = schema.extensions().get(SchemaHelpers.extRawValue);\n const rawValue = rawValueExt?.value() === true;\n\n const parameterLocationExt = schema\n .extensions()\n .get(SchemaHelpers.extParameterLocation);\n const parameterLocation = parameterLocationExt?.value() === true;\n\n const schemaType = SchemaHelpers.toSchemaType(schema);\n const isExpandable = SchemaHelpers.isExpandable(schema) || dependentSchemas;\n\n isCircular = isCircular || schema.isCircular() || false;\n const uid = schema.$id();\n const styledSchemaName = isProperty ? 'italic' : '';\n const renderedSchemaName =\n typeof schemaName === 'string' ? (\n <span className={`break-anywhere text-sm ${styledSchemaName}`}>\n {schemaName}\n </span>\n ) : (\n schemaName\n );\n\n return (\n <SchemaContext.Provider\n value={{ reverse: !reverse, deepExpanded: deepExpand }}\n >\n <div>\n <div className=\"flex py-2\">\n <div className={`${onlyTitle ? '' : 'min-w-1/4'} mr-2`}>\n {isExpandable && !isCircular && !isArray ? (\n <>\n <CollapseButton\n onClick={() => setExpanded((prev) => !prev)}\n expanded={expanded}\n >\n {renderedSchemaName}\n </CollapseButton>\n <button\n type=\"button\"\n onClick={() => setDeepExpand((prev) => !prev)}\n className=\"ml-1 text-sm text-gray-500\"\n >\n {deepExpand ? 'Collapse all' : 'Expand all'}\n </button>\n </>\n ) : (\n <span\n className={`break-anywhere text-sm ${\n isProperty ? 'italic' : ''\n }`}\n >\n {schemaName}\n </span>\n )}\n {isPatternProperty && (\n <div className=\"text-gray-500 text-xs italic\">\n (pattern property)\n </div>\n )}\n {required && <div className=\"text-red-600 text-xs\">required</div>}\n {dependentRequired && (\n <>\n <div className=\"text-gray-500 text-xs\">\n required when defined:\n </div>\n <div className=\"text-red-600 text-xs\">\n {dependentRequired.join(', ')}\n </div>\n </>\n )}\n {schema.deprecated() && (\n <div className=\"text-red-600 text-xs\">deprecated</div>\n )}\n {schema.writeOnly() && (\n <div className=\"text-gray-500 text-xs\">write-only</div>\n )}\n {schema.readOnly() && (\n <div className=\"text-gray-500 text-xs\">read-only</div>\n )}\n </div>\n {rawValue ? (\n <div>\n <div className=\"text-sm\">\n {SchemaHelpers.prettifyValue(schema.const(), false)}\n </div>\n </div>\n ) : (\n <div>\n <div>\n <div className=\"capitalize text-sm text-teal-500 font-bold inline-block mr-2\">\n {isCircular ? `${schemaType} [CIRCULAR]` : schemaType}\n </div>\n <div className=\"inline-block\">\n {schema.format() && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n format: {schema.format()}\n </strong>\n )}\n\n {/* related to string */}\n {schema.pattern() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded mr-2 p-1 text-xs\">\n must match: {schema.pattern()}\n </strong>\n )}\n {schema.contentMediaType() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n media type: {schema.contentMediaType()}\n </strong>\n )}\n {schema.contentEncoding() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n encoding: {schema.contentEncoding()}\n </strong>\n )}\n\n {/* constraints */}\n {!!constraints.length &&\n constraints.map((c) => (\n <strong\n className=\"bg-purple-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\"\n key={c}\n >\n {c}\n </strong>\n ))}\n\n {uid && !uid.startsWith('<anonymous-') && (\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n uid: {uid}\n </span>\n )}\n </div>\n\n {schema.description() !== undefined && (\n <div>\n <Markdown>{schema.description()}</Markdown>\n </div>\n )}\n\n {schema.default() !== undefined && (\n <div className=\"text-xs\">\n Default value:\n <span className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.default())}\n </span>\n </div>\n )}\n {schema.const() !== undefined && (\n <div className=\"text-xs\">\n Const:\n <span className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.const())}\n </span>\n </div>\n )}\n {schema.enum() && (\n <ul className=\"text-xs\">\n Allowed values:{' '}\n {schema.enum()?.map((e, idx) => (\n <li\n key={idx}\n className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n {parameterLocation && (\n <div className=\"text-xs\">\n Parameter location:{' '}\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n {parameterLocation}\n </span>\n </div>\n )}\n {externalDocs && (\n <strong className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 no-underline text-xs uppercase rounded px-2 py-0\">\n <Href\n href={externalDocs.url()}\n title={externalDocs.description() ?? ''}\n >\n Documentation\n </Href>\n </strong>\n )}\n {schema.examples() && (\n <ul className=\"text-xs\">\n Examples values:{' '}\n {schema.examples()?.map((e, idx) => (\n <li\n key={idx}\n className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2 break-all\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n )}\n </div>\n\n {isCircular || !isExpandable ? null : (\n <div\n className={`rounded p-4 py-2 border bg-gray-100 ${\n reverse ? 'bg-gray-200' : ''\n } ${expanded ? 'block' : 'hidden'}`}\n >\n <SchemaProperties schema={schema} />\n <SchemaItems schema={schema} />\n\n {schema\n .oneOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Adheres to',\n 'Or to',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema\n .anyOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Can adhere to',\n 'Or to',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema\n .allOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Consists of',\n 'And of',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema.not() && (\n <Schema schema={schema.not()} schemaName=\"Cannot adhere to:\" />\n )}\n\n {schema.propertyNames() && (\n <Schema\n schema={schema.propertyNames()}\n schemaName=\"Property names must adhere to:\"\n />\n )}\n {schema.contains() && (\n <Schema\n schema={schema.contains()}\n schemaName=\"Array must contain at least one of:\"\n />\n )}\n\n {schema.if() && (\n <Schema schema={schema.if()} schemaName=\"If schema adheres to:\" />\n )}\n {schema.then() && (\n <Schema\n schema={schema.then()}\n schemaName=\"Then must adhere to:\"\n />\n )}\n {schema.else() && (\n <Schema schema={schema.else()} schemaName=\"Otherwise:\" />\n )}\n\n {dependentSchemas && (\n <Schema\n schema={dependentSchemas}\n schemaName=\"Dependent schemas:\"\n />\n )}\n\n <Extensions item={schema} />\n\n <AdditionalProperties schema={schema} />\n <AdditionalItems schema={schema} />\n </div>\n )}\n </div>\n </SchemaContext.Provider>\n );\n};\n\ninterface SchemaPropertiesProps {\n schema: SchemaInterface;\n}\n\nconst SchemaProperties: React.FunctionComponent<SchemaPropertiesProps> = ({\n schema,\n}) => {\n const properties = schema.properties();\n if (properties === undefined || !Object.keys(properties)) {\n return null;\n }\n\n const required = schema.required() ?? [];\n const patternProperties = schema.patternProperties();\n\n return (\n <>\n {Object.entries(properties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n required={required.includes(propertyName)}\n isProperty\n isCircular={property.isCircular()}\n dependentRequired={SchemaHelpers.getDependentRequired(\n propertyName,\n schema,\n )}\n key={propertyName}\n />\n ))}\n {Object.entries(patternProperties ?? {}).map(\n ([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n isPatternProperty\n isProperty\n isCircular={property.isCircular()}\n key={propertyName}\n />\n ),\n )}\n </>\n );\n};\n\ninterface AdditionalPropertiesProps {\n schema: SchemaInterface;\n}\n\nconst AdditionalProperties: React.FunctionComponent<\n AdditionalPropertiesProps\n> = ({ schema }) => {\n if (\n schema.extensions().get(SchemaHelpers.extRenderAdditionalInfo)?.value() ===\n false\n ) {\n return null;\n }\n\n const type = schema.type();\n if (!type?.includes('object')) {\n return null;\n }\n\n const additionalProperties = schema.additionalProperties();\n if (additionalProperties === true || additionalProperties === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are allowed.\n </p>\n );\n }\n if (additionalProperties === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return (\n <Schema schemaName=\"Additional properties:\" schema={additionalProperties} />\n );\n};\n\ninterface SchemaItemsProps {\n schema: SchemaInterface;\n}\n\nconst SchemaItems: React.FunctionComponent<SchemaItemsProps> = ({ schema }) => {\n const type = schema.type();\n if (!type?.includes('array')) {\n return null;\n }\n const items = schema.items();\n\n // object in items\n if (\n items &&\n !Array.isArray(items) &&\n Object.keys(items.properties() ?? {}).length\n ) {\n return <Schema schema={items} isArray />;\n } else if (Array.isArray(items)) {\n return (\n <>\n {items.map((item, idx) => (\n <Schema\n schema={item}\n isArray\n schemaName={`${idx + 1} item:`}\n key={idx}\n />\n ))}\n </>\n );\n }\n return <Schema schema={items} isArray schemaName=\"Items:\" />;\n};\n\ninterface AdditionalItemsProps {\n schema: SchemaInterface;\n}\n\nconst AdditionalItems: React.FunctionComponent<AdditionalItemsProps> = ({\n schema,\n}) => {\n if (\n schema.extensions().get(SchemaHelpers.extRenderAdditionalInfo)?.value() ===\n false\n ) {\n return null;\n }\n\n const type = schema.type();\n if (!type?.includes('array')) {\n return null;\n }\n if (!Array.isArray(schema.items())) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === true || additionalItems === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are allowed.\n </p>\n );\n }\n if (additionalItems === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are <strong>NOT</strong> allowed.\n </p>\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n return <Schema schemaName=\"Additional items:\" schema={additionalItems} />;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useContext } from 'react';\nimport { SchemaInterface } from '@asyncapi/parser';\n\nimport { Href, CollapseButton, Markdown, Extensions } from './index';\nimport { SchemaHelpers } from '../helpers';\n\ninterface Props {\n schemaName?: React.ReactNode;\n schema?: SchemaInterface;\n required?: boolean;\n isPatternProperty?: boolean;\n isProperty?: boolean;\n isCircular?: boolean;\n dependentRequired?: string[];\n expanded?: boolean;\n onlyTitle?: boolean;\n isArray?: boolean;\n}\n\nconst SchemaContext = React.createContext({\n reverse: false,\n deepExpanded: false,\n});\n\nexport const Schema: React.FunctionComponent<Props> = ({\n schemaName,\n schema,\n required = false,\n isPatternProperty = false,\n isProperty = false,\n isCircular = false,\n dependentRequired,\n expanded: propExpanded = false,\n onlyTitle = false,\n isArray = false,\n // eslint-disable-next-line sonarjs/cognitive-complexity\n}) => {\n const { reverse, deepExpanded } = useContext(SchemaContext);\n const [expanded, setExpanded] = useState(propExpanded || isArray);\n const [deepExpand, setDeepExpand] = useState(false);\n\n useEffect(() => {\n if (!isArray) {\n setDeepExpand(deepExpanded);\n }\n }, [isArray, deepExpanded, setDeepExpand]);\n\n useEffect(() => {\n if (!isArray) {\n setExpanded(deepExpand);\n }\n }, [isArray, deepExpand, setExpanded]);\n\n if (\n !schema ||\n (typeof schemaName === 'string' &&\n (schemaName?.startsWith('x-parser-') ||\n schemaName?.startsWith('x-schema-private-')))\n ) {\n return null;\n }\n\n const dependentSchemas = SchemaHelpers.getDependentSchemas(schema);\n\n const constraints = SchemaHelpers.humanizeConstraints(schema);\n const externalDocs = schema.externalDocs();\n\n const rawValueExt = schema.extensions().get(SchemaHelpers.extRawValue);\n const rawValue = rawValueExt?.value() === true;\n\n const parameterLocationExt = schema\n .extensions()\n .get(SchemaHelpers.extParameterLocation);\n const parameterLocation = parameterLocationExt?.value() === true;\n\n const schemaType = SchemaHelpers.toSchemaType(schema);\n const isExpandable = SchemaHelpers.isExpandable(schema) || dependentSchemas;\n\n isCircular = isCircular || schema.isCircular() || false;\n const uid = schema.$id();\n const styledSchemaName = isProperty ? 'italic' : '';\n const renderedSchemaName =\n typeof schemaName === 'string' ? (\n <span className={`break-anywhere text-sm ${styledSchemaName}`}>\n {schemaName}\n </span>\n ) : (\n schemaName\n );\n\n return (\n <SchemaContext.Provider\n value={{ reverse: !reverse, deepExpanded: deepExpand }}\n >\n <div>\n <div className=\"flex py-2\">\n <div className={`${onlyTitle ? '' : 'min-w-1/4'} mr-2`}>\n {isExpandable && !isCircular && !isArray ? (\n <>\n <CollapseButton\n onClick={() => setExpanded((prev) => !prev)}\n expanded={expanded}\n >\n {renderedSchemaName}\n </CollapseButton>\n <button\n type=\"button\"\n onClick={() => setDeepExpand((prev) => !prev)}\n className=\"ml-1 text-sm text-gray-500\"\n >\n {deepExpand ? 'Collapse all' : 'Expand all'}\n </button>\n </>\n ) : (\n <span\n className={`break-anywhere text-sm ${\n isProperty ? 'italic' : ''\n }`}\n >\n {schemaName}\n </span>\n )}\n {isPatternProperty && (\n <div className=\"text-gray-500 text-xs italic\">\n (pattern property)\n </div>\n )}\n {required && <div className=\"text-red-600 text-xs\">required</div>}\n {dependentRequired && (\n <>\n <div className=\"text-gray-500 text-xs\">\n required when defined:\n </div>\n <div className=\"text-red-600 text-xs\">\n {dependentRequired.join(', ')}\n </div>\n </>\n )}\n {schema.deprecated() && (\n <div className=\"text-red-600 text-xs\">deprecated</div>\n )}\n {schema.writeOnly() && (\n <div className=\"text-gray-500 text-xs\">write-only</div>\n )}\n {schema.readOnly() && (\n <div className=\"text-gray-500 text-xs\">read-only</div>\n )}\n </div>\n {rawValue ? (\n <div>\n <div className=\"text-sm\">\n {SchemaHelpers.prettifyValue(schema.const(), false)}\n </div>\n </div>\n ) : (\n <div>\n <div>\n <div className=\"capitalize text-sm text-teal-500 font-bold inline-block mr-2\">\n {isCircular ? `${schemaType} [CIRCULAR]` : schemaType}\n </div>\n <div className=\"inline-block\">\n {schema.format() && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n format: {schema.format()}\n </strong>\n )}\n\n {/* related to string */}\n {schema.pattern() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded mr-2 p-1 text-xs\">\n must match: {schema.pattern()}\n </strong>\n )}\n {schema.contentMediaType() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n media type: {schema.contentMediaType()}\n </strong>\n )}\n {schema.contentEncoding() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n encoding: {schema.contentEncoding()}\n </strong>\n )}\n\n {/* constraints */}\n {!!constraints.length &&\n constraints.map((c) => (\n <strong\n className=\"bg-purple-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\"\n key={c}\n >\n {c}\n </strong>\n ))}\n\n {uid && !uid.startsWith('<anonymous-') && (\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n uid: {uid}\n </span>\n )}\n </div>\n\n {schema.description() !== undefined && (\n <div>\n <Markdown>{schema.description()}</Markdown>\n </div>\n )}\n\n {schema.default() !== undefined && (\n <div className=\"text-xs\">\n Default value:\n <span className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.default())}\n </span>\n </div>\n )}\n {schema.const() !== undefined && (\n <div className=\"text-xs\">\n Const:\n <span className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.const())}\n </span>\n </div>\n )}\n {schema.enum() && (\n <ul className=\"text-xs\">\n Allowed values:{' '}\n {schema.enum()?.map((e, idx) => (\n <li\n key={idx}\n className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n {parameterLocation && (\n <div className=\"text-xs\">\n Parameter location:{' '}\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n {parameterLocation}\n </span>\n </div>\n )}\n {externalDocs && (\n <strong className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 no-underline text-xs uppercase rounded px-2 py-0\">\n <Href\n href={externalDocs.url()}\n title={externalDocs.description() ?? ''}\n >\n Documentation\n </Href>\n </strong>\n )}\n {schema.examples() && (\n <ul className=\"text-xs\">\n Examples values:{' '}\n {schema.examples()?.map((e, idx) => (\n <li\n key={idx}\n className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2 break-all\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n )}\n </div>\n\n {isCircular || !isExpandable ? null : (\n <div\n className={`rounded p-4 py-2 border bg-gray-100 ${\n reverse ? 'bg-gray-200' : ''\n } ${expanded ? 'block' : 'hidden'}`}\n >\n <SchemaProperties schema={schema} />\n <SchemaItems schema={schema} />\n\n {schema\n .oneOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Adheres to',\n 'Or to',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema\n .anyOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Can adhere to',\n 'Or to',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema\n .allOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Consists of',\n 'And of',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema.not() && (\n <Schema schema={schema.not()} schemaName=\"Cannot adhere to:\" />\n )}\n\n {schema.propertyNames() && (\n <Schema\n schema={schema.propertyNames()}\n schemaName=\"Property names must adhere to:\"\n />\n )}\n {schema.contains() && (\n <Schema\n schema={schema.contains()}\n schemaName=\"Array must contain at least one of:\"\n />\n )}\n\n {schema.if() && (\n <Schema schema={schema.if()} schemaName=\"If schema adheres to:\" />\n )}\n {schema.then() && (\n <Schema\n schema={schema.then()}\n schemaName=\"Then must adhere to:\"\n />\n )}\n {schema.else() && (\n <Schema schema={schema.else()} schemaName=\"Otherwise:\" />\n )}\n\n {dependentSchemas && (\n <Schema\n schema={dependentSchemas}\n schemaName=\"Dependent schemas:\"\n />\n )}\n\n <Extensions item={schema} />\n\n <AdditionalProperties schema={schema} />\n <AdditionalItems schema={schema} />\n </div>\n )}\n </div>\n </SchemaContext.Provider>\n );\n};\n\ninterface SchemaPropertiesProps {\n schema: SchemaInterface;\n}\n\nconst SchemaProperties: React.FunctionComponent<SchemaPropertiesProps> = ({\n schema,\n}) => {\n const properties = Object.entries(schema.properties() ?? {});\n const patternProperties = Object.entries(schema.patternProperties() ?? {});\n\n if (!properties.length && !patternProperties.length) {\n return null;\n }\n\n const required = schema.required() ?? [];\n\n return (\n <>\n {properties.map(([propertyName, property]) => (\n <Schema\n key={propertyName}\n schema={property}\n schemaName={propertyName}\n required={required.includes(propertyName)}\n isProperty\n isCircular={property.isCircular()}\n dependentRequired={SchemaHelpers.getDependentRequired(\n propertyName,\n schema,\n )}\n />\n ))}\n\n {patternProperties.map(([propertyName, property]) => (\n <Schema\n key={propertyName}\n schema={property}\n schemaName={propertyName}\n isPatternProperty\n isProperty\n isCircular={property.isCircular()}\n />\n ))}\n </>\n );\n};\n\ninterface AdditionalPropertiesProps {\n schema: SchemaInterface;\n}\n\nconst AdditionalProperties: React.FunctionComponent<\n AdditionalPropertiesProps\n> = ({ schema }) => {\n if (\n schema.extensions().get(SchemaHelpers.extRenderAdditionalInfo)?.value() ===\n false\n ) {\n return null;\n }\n\n const type = schema.type();\n if (!type?.includes('object')) {\n return null;\n }\n\n const additionalProperties = schema.additionalProperties();\n if (additionalProperties === true || additionalProperties === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are allowed.\n </p>\n );\n }\n if (additionalProperties === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return (\n <Schema schemaName=\"Additional properties:\" schema={additionalProperties} />\n );\n};\n\ninterface SchemaItemsProps {\n schema: SchemaInterface;\n}\n\nconst SchemaItems: React.FunctionComponent<SchemaItemsProps> = ({ schema }) => {\n const type = schema.type();\n if (!type?.includes('array')) {\n return null;\n }\n const items = schema.items();\n\n // object in items\n if (\n items &&\n !Array.isArray(items) &&\n Object.keys(items.properties() ?? {}).length\n ) {\n return <Schema schema={items} isArray />;\n } else if (Array.isArray(items)) {\n return (\n <>\n {items.map((item, idx) => (\n <Schema\n schema={item}\n isArray\n schemaName={`${idx + 1} item:`}\n key={idx}\n />\n ))}\n </>\n );\n }\n return <Schema schema={items} isArray schemaName=\"Items:\" />;\n};\n\ninterface AdditionalItemsProps {\n schema: SchemaInterface;\n}\n\nconst AdditionalItems: React.FunctionComponent<AdditionalItemsProps> = ({\n schema,\n}) => {\n if (\n schema.extensions().get(SchemaHelpers.extRenderAdditionalInfo)?.value() ===\n false\n ) {\n return null;\n }\n\n const type = schema.type();\n if (!type?.includes('array')) {\n return null;\n }\n if (!Array.isArray(schema.items())) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === true || additionalItems === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are allowed.\n </p>\n );\n }\n if (additionalItems === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are <strong>NOT</strong> allowed.\n </p>\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n return <Schema schemaName=\"Additional items:\" schema={additionalItems} />;\n};\n"]}
|
|
@@ -133,22 +133,22 @@ export var Schema = function (_a) {
|
|
|
133
133
|
React.createElement(AdditionalItems, { schema: schema }))))));
|
|
134
134
|
};
|
|
135
135
|
var SchemaProperties = function (_a) {
|
|
136
|
-
var _b;
|
|
136
|
+
var _b, _c, _d;
|
|
137
137
|
var schema = _a.schema;
|
|
138
|
-
var properties = schema.properties();
|
|
139
|
-
|
|
138
|
+
var properties = Object.entries((_b = schema.properties()) !== null && _b !== void 0 ? _b : {});
|
|
139
|
+
var patternProperties = Object.entries((_c = schema.patternProperties()) !== null && _c !== void 0 ? _c : {});
|
|
140
|
+
if (!properties.length && !patternProperties.length) {
|
|
140
141
|
return null;
|
|
141
142
|
}
|
|
142
|
-
var required = (
|
|
143
|
-
var patternProperties = schema.patternProperties();
|
|
143
|
+
var required = (_d = schema.required()) !== null && _d !== void 0 ? _d : [];
|
|
144
144
|
return (React.createElement(React.Fragment, null,
|
|
145
|
-
|
|
145
|
+
properties.map(function (_a) {
|
|
146
146
|
var propertyName = _a[0], property = _a[1];
|
|
147
|
-
return (React.createElement(Schema, { schema: property, schemaName: propertyName, required: required.includes(propertyName), isProperty: true, isCircular: property.isCircular(), dependentRequired: SchemaHelpers.getDependentRequired(propertyName, schema)
|
|
147
|
+
return (React.createElement(Schema, { key: propertyName, schema: property, schemaName: propertyName, required: required.includes(propertyName), isProperty: true, isCircular: property.isCircular(), dependentRequired: SchemaHelpers.getDependentRequired(propertyName, schema) }));
|
|
148
148
|
}),
|
|
149
|
-
|
|
149
|
+
patternProperties.map(function (_a) {
|
|
150
150
|
var propertyName = _a[0], property = _a[1];
|
|
151
|
-
return (React.createElement(Schema, { schema: property, schemaName: propertyName, isPatternProperty: true, isProperty: true, isCircular: property.isCircular()
|
|
151
|
+
return (React.createElement(Schema, { key: propertyName, schema: property, schemaName: propertyName, isPatternProperty: true, isProperty: true, isCircular: property.isCircular() }));
|
|
152
152
|
})));
|
|
153
153
|
};
|
|
154
154
|
var AdditionalProperties = function (_a) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useContext } from 'react';\nimport { SchemaInterface } from '@asyncapi/parser';\n\nimport { Href, CollapseButton, Markdown, Extensions } from './index';\nimport { SchemaHelpers } from '../helpers';\n\ninterface Props {\n schemaName?: React.ReactNode;\n schema?: SchemaInterface;\n required?: boolean;\n isPatternProperty?: boolean;\n isProperty?: boolean;\n isCircular?: boolean;\n dependentRequired?: string[];\n expanded?: boolean;\n onlyTitle?: boolean;\n isArray?: boolean;\n}\n\nconst SchemaContext = React.createContext({\n reverse: false,\n deepExpanded: false,\n});\n\nexport const Schema: React.FunctionComponent<Props> = ({\n schemaName,\n schema,\n required = false,\n isPatternProperty = false,\n isProperty = false,\n isCircular = false,\n dependentRequired,\n expanded: propExpanded = false,\n onlyTitle = false,\n isArray = false,\n // eslint-disable-next-line sonarjs/cognitive-complexity\n}) => {\n const { reverse, deepExpanded } = useContext(SchemaContext);\n const [expanded, setExpanded] = useState(propExpanded || isArray);\n const [deepExpand, setDeepExpand] = useState(false);\n\n useEffect(() => {\n if (!isArray) {\n setDeepExpand(deepExpanded);\n }\n }, [isArray, deepExpanded, setDeepExpand]);\n\n useEffect(() => {\n if (!isArray) {\n setExpanded(deepExpand);\n }\n }, [isArray, deepExpand, setExpanded]);\n\n if (\n !schema ||\n (typeof schemaName === 'string' &&\n (schemaName?.startsWith('x-parser-') ||\n schemaName?.startsWith('x-schema-private-')))\n ) {\n return null;\n }\n\n const dependentSchemas = SchemaHelpers.getDependentSchemas(schema);\n\n const constraints = SchemaHelpers.humanizeConstraints(schema);\n const externalDocs = schema.externalDocs();\n\n const rawValueExt = schema.extensions().get(SchemaHelpers.extRawValue);\n const rawValue = rawValueExt?.value() === true;\n\n const parameterLocationExt = schema\n .extensions()\n .get(SchemaHelpers.extParameterLocation);\n const parameterLocation = parameterLocationExt?.value() === true;\n\n const schemaType = SchemaHelpers.toSchemaType(schema);\n const isExpandable = SchemaHelpers.isExpandable(schema) || dependentSchemas;\n\n isCircular = isCircular || schema.isCircular() || false;\n const uid = schema.$id();\n const styledSchemaName = isProperty ? 'italic' : '';\n const renderedSchemaName =\n typeof schemaName === 'string' ? (\n <span className={`break-anywhere text-sm ${styledSchemaName}`}>\n {schemaName}\n </span>\n ) : (\n schemaName\n );\n\n return (\n <SchemaContext.Provider\n value={{ reverse: !reverse, deepExpanded: deepExpand }}\n >\n <div>\n <div className=\"flex py-2\">\n <div className={`${onlyTitle ? '' : 'min-w-1/4'} mr-2`}>\n {isExpandable && !isCircular && !isArray ? (\n <>\n <CollapseButton\n onClick={() => setExpanded((prev) => !prev)}\n expanded={expanded}\n >\n {renderedSchemaName}\n </CollapseButton>\n <button\n type=\"button\"\n onClick={() => setDeepExpand((prev) => !prev)}\n className=\"ml-1 text-sm text-gray-500\"\n >\n {deepExpand ? 'Collapse all' : 'Expand all'}\n </button>\n </>\n ) : (\n <span\n className={`break-anywhere text-sm ${\n isProperty ? 'italic' : ''\n }`}\n >\n {schemaName}\n </span>\n )}\n {isPatternProperty && (\n <div className=\"text-gray-500 text-xs italic\">\n (pattern property)\n </div>\n )}\n {required && <div className=\"text-red-600 text-xs\">required</div>}\n {dependentRequired && (\n <>\n <div className=\"text-gray-500 text-xs\">\n required when defined:\n </div>\n <div className=\"text-red-600 text-xs\">\n {dependentRequired.join(', ')}\n </div>\n </>\n )}\n {schema.deprecated() && (\n <div className=\"text-red-600 text-xs\">deprecated</div>\n )}\n {schema.writeOnly() && (\n <div className=\"text-gray-500 text-xs\">write-only</div>\n )}\n {schema.readOnly() && (\n <div className=\"text-gray-500 text-xs\">read-only</div>\n )}\n </div>\n {rawValue ? (\n <div>\n <div className=\"text-sm\">\n {SchemaHelpers.prettifyValue(schema.const(), false)}\n </div>\n </div>\n ) : (\n <div>\n <div>\n <div className=\"capitalize text-sm text-teal-500 font-bold inline-block mr-2\">\n {isCircular ? `${schemaType} [CIRCULAR]` : schemaType}\n </div>\n <div className=\"inline-block\">\n {schema.format() && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n format: {schema.format()}\n </strong>\n )}\n\n {/* related to string */}\n {schema.pattern() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded mr-2 p-1 text-xs\">\n must match: {schema.pattern()}\n </strong>\n )}\n {schema.contentMediaType() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n media type: {schema.contentMediaType()}\n </strong>\n )}\n {schema.contentEncoding() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n encoding: {schema.contentEncoding()}\n </strong>\n )}\n\n {/* constraints */}\n {!!constraints.length &&\n constraints.map((c) => (\n <strong\n className=\"bg-purple-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\"\n key={c}\n >\n {c}\n </strong>\n ))}\n\n {uid && !uid.startsWith('<anonymous-') && (\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n uid: {uid}\n </span>\n )}\n </div>\n\n {schema.description() !== undefined && (\n <div>\n <Markdown>{schema.description()}</Markdown>\n </div>\n )}\n\n {schema.default() !== undefined && (\n <div className=\"text-xs\">\n Default value:\n <span className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.default())}\n </span>\n </div>\n )}\n {schema.const() !== undefined && (\n <div className=\"text-xs\">\n Const:\n <span className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.const())}\n </span>\n </div>\n )}\n {schema.enum() && (\n <ul className=\"text-xs\">\n Allowed values:{' '}\n {schema.enum()?.map((e, idx) => (\n <li\n key={idx}\n className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n {parameterLocation && (\n <div className=\"text-xs\">\n Parameter location:{' '}\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n {parameterLocation}\n </span>\n </div>\n )}\n {externalDocs && (\n <strong className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 no-underline text-xs uppercase rounded px-2 py-0\">\n <Href\n href={externalDocs.url()}\n title={externalDocs.description() ?? ''}\n >\n Documentation\n </Href>\n </strong>\n )}\n {schema.examples() && (\n <ul className=\"text-xs\">\n Examples values:{' '}\n {schema.examples()?.map((e, idx) => (\n <li\n key={idx}\n className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2 break-all\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n )}\n </div>\n\n {isCircular || !isExpandable ? null : (\n <div\n className={`rounded p-4 py-2 border bg-gray-100 ${\n reverse ? 'bg-gray-200' : ''\n } ${expanded ? 'block' : 'hidden'}`}\n >\n <SchemaProperties schema={schema} />\n <SchemaItems schema={schema} />\n\n {schema\n .oneOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Adheres to',\n 'Or to',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema\n .anyOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Can adhere to',\n 'Or to',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema\n .allOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Consists of',\n 'And of',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema.not() && (\n <Schema schema={schema.not()} schemaName=\"Cannot adhere to:\" />\n )}\n\n {schema.propertyNames() && (\n <Schema\n schema={schema.propertyNames()}\n schemaName=\"Property names must adhere to:\"\n />\n )}\n {schema.contains() && (\n <Schema\n schema={schema.contains()}\n schemaName=\"Array must contain at least one of:\"\n />\n )}\n\n {schema.if() && (\n <Schema schema={schema.if()} schemaName=\"If schema adheres to:\" />\n )}\n {schema.then() && (\n <Schema\n schema={schema.then()}\n schemaName=\"Then must adhere to:\"\n />\n )}\n {schema.else() && (\n <Schema schema={schema.else()} schemaName=\"Otherwise:\" />\n )}\n\n {dependentSchemas && (\n <Schema\n schema={dependentSchemas}\n schemaName=\"Dependent schemas:\"\n />\n )}\n\n <Extensions item={schema} />\n\n <AdditionalProperties schema={schema} />\n <AdditionalItems schema={schema} />\n </div>\n )}\n </div>\n </SchemaContext.Provider>\n );\n};\n\ninterface SchemaPropertiesProps {\n schema: SchemaInterface;\n}\n\nconst SchemaProperties: React.FunctionComponent<SchemaPropertiesProps> = ({\n schema,\n}) => {\n const properties = schema.properties();\n if (properties === undefined || !Object.keys(properties)) {\n return null;\n }\n\n const required = schema.required() ?? [];\n const patternProperties = schema.patternProperties();\n\n return (\n <>\n {Object.entries(properties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n required={required.includes(propertyName)}\n isProperty\n isCircular={property.isCircular()}\n dependentRequired={SchemaHelpers.getDependentRequired(\n propertyName,\n schema,\n )}\n key={propertyName}\n />\n ))}\n {Object.entries(patternProperties ?? {}).map(\n ([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n isPatternProperty\n isProperty\n isCircular={property.isCircular()}\n key={propertyName}\n />\n ),\n )}\n </>\n );\n};\n\ninterface AdditionalPropertiesProps {\n schema: SchemaInterface;\n}\n\nconst AdditionalProperties: React.FunctionComponent<\n AdditionalPropertiesProps\n> = ({ schema }) => {\n if (\n schema.extensions().get(SchemaHelpers.extRenderAdditionalInfo)?.value() ===\n false\n ) {\n return null;\n }\n\n const type = schema.type();\n if (!type?.includes('object')) {\n return null;\n }\n\n const additionalProperties = schema.additionalProperties();\n if (additionalProperties === true || additionalProperties === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are allowed.\n </p>\n );\n }\n if (additionalProperties === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return (\n <Schema schemaName=\"Additional properties:\" schema={additionalProperties} />\n );\n};\n\ninterface SchemaItemsProps {\n schema: SchemaInterface;\n}\n\nconst SchemaItems: React.FunctionComponent<SchemaItemsProps> = ({ schema }) => {\n const type = schema.type();\n if (!type?.includes('array')) {\n return null;\n }\n const items = schema.items();\n\n // object in items\n if (\n items &&\n !Array.isArray(items) &&\n Object.keys(items.properties() ?? {}).length\n ) {\n return <Schema schema={items} isArray />;\n } else if (Array.isArray(items)) {\n return (\n <>\n {items.map((item, idx) => (\n <Schema\n schema={item}\n isArray\n schemaName={`${idx + 1} item:`}\n key={idx}\n />\n ))}\n </>\n );\n }\n return <Schema schema={items} isArray schemaName=\"Items:\" />;\n};\n\ninterface AdditionalItemsProps {\n schema: SchemaInterface;\n}\n\nconst AdditionalItems: React.FunctionComponent<AdditionalItemsProps> = ({\n schema,\n}) => {\n if (\n schema.extensions().get(SchemaHelpers.extRenderAdditionalInfo)?.value() ===\n false\n ) {\n return null;\n }\n\n const type = schema.type();\n if (!type?.includes('array')) {\n return null;\n }\n if (!Array.isArray(schema.items())) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === true || additionalItems === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are allowed.\n </p>\n );\n }\n if (additionalItems === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are <strong>NOT</strong> allowed.\n </p>\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n return <Schema schemaName=\"Additional items:\" schema={additionalItems} />;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useContext } from 'react';\nimport { SchemaInterface } from '@asyncapi/parser';\n\nimport { Href, CollapseButton, Markdown, Extensions } from './index';\nimport { SchemaHelpers } from '../helpers';\n\ninterface Props {\n schemaName?: React.ReactNode;\n schema?: SchemaInterface;\n required?: boolean;\n isPatternProperty?: boolean;\n isProperty?: boolean;\n isCircular?: boolean;\n dependentRequired?: string[];\n expanded?: boolean;\n onlyTitle?: boolean;\n isArray?: boolean;\n}\n\nconst SchemaContext = React.createContext({\n reverse: false,\n deepExpanded: false,\n});\n\nexport const Schema: React.FunctionComponent<Props> = ({\n schemaName,\n schema,\n required = false,\n isPatternProperty = false,\n isProperty = false,\n isCircular = false,\n dependentRequired,\n expanded: propExpanded = false,\n onlyTitle = false,\n isArray = false,\n // eslint-disable-next-line sonarjs/cognitive-complexity\n}) => {\n const { reverse, deepExpanded } = useContext(SchemaContext);\n const [expanded, setExpanded] = useState(propExpanded || isArray);\n const [deepExpand, setDeepExpand] = useState(false);\n\n useEffect(() => {\n if (!isArray) {\n setDeepExpand(deepExpanded);\n }\n }, [isArray, deepExpanded, setDeepExpand]);\n\n useEffect(() => {\n if (!isArray) {\n setExpanded(deepExpand);\n }\n }, [isArray, deepExpand, setExpanded]);\n\n if (\n !schema ||\n (typeof schemaName === 'string' &&\n (schemaName?.startsWith('x-parser-') ||\n schemaName?.startsWith('x-schema-private-')))\n ) {\n return null;\n }\n\n const dependentSchemas = SchemaHelpers.getDependentSchemas(schema);\n\n const constraints = SchemaHelpers.humanizeConstraints(schema);\n const externalDocs = schema.externalDocs();\n\n const rawValueExt = schema.extensions().get(SchemaHelpers.extRawValue);\n const rawValue = rawValueExt?.value() === true;\n\n const parameterLocationExt = schema\n .extensions()\n .get(SchemaHelpers.extParameterLocation);\n const parameterLocation = parameterLocationExt?.value() === true;\n\n const schemaType = SchemaHelpers.toSchemaType(schema);\n const isExpandable = SchemaHelpers.isExpandable(schema) || dependentSchemas;\n\n isCircular = isCircular || schema.isCircular() || false;\n const uid = schema.$id();\n const styledSchemaName = isProperty ? 'italic' : '';\n const renderedSchemaName =\n typeof schemaName === 'string' ? (\n <span className={`break-anywhere text-sm ${styledSchemaName}`}>\n {schemaName}\n </span>\n ) : (\n schemaName\n );\n\n return (\n <SchemaContext.Provider\n value={{ reverse: !reverse, deepExpanded: deepExpand }}\n >\n <div>\n <div className=\"flex py-2\">\n <div className={`${onlyTitle ? '' : 'min-w-1/4'} mr-2`}>\n {isExpandable && !isCircular && !isArray ? (\n <>\n <CollapseButton\n onClick={() => setExpanded((prev) => !prev)}\n expanded={expanded}\n >\n {renderedSchemaName}\n </CollapseButton>\n <button\n type=\"button\"\n onClick={() => setDeepExpand((prev) => !prev)}\n className=\"ml-1 text-sm text-gray-500\"\n >\n {deepExpand ? 'Collapse all' : 'Expand all'}\n </button>\n </>\n ) : (\n <span\n className={`break-anywhere text-sm ${\n isProperty ? 'italic' : ''\n }`}\n >\n {schemaName}\n </span>\n )}\n {isPatternProperty && (\n <div className=\"text-gray-500 text-xs italic\">\n (pattern property)\n </div>\n )}\n {required && <div className=\"text-red-600 text-xs\">required</div>}\n {dependentRequired && (\n <>\n <div className=\"text-gray-500 text-xs\">\n required when defined:\n </div>\n <div className=\"text-red-600 text-xs\">\n {dependentRequired.join(', ')}\n </div>\n </>\n )}\n {schema.deprecated() && (\n <div className=\"text-red-600 text-xs\">deprecated</div>\n )}\n {schema.writeOnly() && (\n <div className=\"text-gray-500 text-xs\">write-only</div>\n )}\n {schema.readOnly() && (\n <div className=\"text-gray-500 text-xs\">read-only</div>\n )}\n </div>\n {rawValue ? (\n <div>\n <div className=\"text-sm\">\n {SchemaHelpers.prettifyValue(schema.const(), false)}\n </div>\n </div>\n ) : (\n <div>\n <div>\n <div className=\"capitalize text-sm text-teal-500 font-bold inline-block mr-2\">\n {isCircular ? `${schemaType} [CIRCULAR]` : schemaType}\n </div>\n <div className=\"inline-block\">\n {schema.format() && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n format: {schema.format()}\n </strong>\n )}\n\n {/* related to string */}\n {schema.pattern() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded mr-2 p-1 text-xs\">\n must match: {schema.pattern()}\n </strong>\n )}\n {schema.contentMediaType() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n media type: {schema.contentMediaType()}\n </strong>\n )}\n {schema.contentEncoding() !== undefined && (\n <strong className=\"bg-yellow-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n encoding: {schema.contentEncoding()}\n </strong>\n )}\n\n {/* constraints */}\n {!!constraints.length &&\n constraints.map((c) => (\n <strong\n className=\"bg-purple-600 no-underline text-white rounded lowercase mr-2 p-1 text-xs\"\n key={c}\n >\n {c}\n </strong>\n ))}\n\n {uid && !uid.startsWith('<anonymous-') && (\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n uid: {uid}\n </span>\n )}\n </div>\n\n {schema.description() !== undefined && (\n <div>\n <Markdown>{schema.description()}</Markdown>\n </div>\n )}\n\n {schema.default() !== undefined && (\n <div className=\"text-xs\">\n Default value:\n <span className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.default())}\n </span>\n </div>\n )}\n {schema.const() !== undefined && (\n <div className=\"text-xs\">\n Const:\n <span className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.const())}\n </span>\n </div>\n )}\n {schema.enum() && (\n <ul className=\"text-xs\">\n Allowed values:{' '}\n {schema.enum()?.map((e, idx) => (\n <li\n key={idx}\n className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n {parameterLocation && (\n <div className=\"text-xs\">\n Parameter location:{' '}\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n {parameterLocation}\n </span>\n </div>\n )}\n {externalDocs && (\n <strong className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 no-underline text-xs uppercase rounded px-2 py-0\">\n <Href\n href={externalDocs.url()}\n title={externalDocs.description() ?? ''}\n >\n Documentation\n </Href>\n </strong>\n )}\n {schema.examples() && (\n <ul className=\"text-xs\">\n Examples values:{' '}\n {schema.examples()?.map((e, idx) => (\n <li\n key={idx}\n className=\"inline-block bg-orange-600 text-white rounded ml-1 py-0 px-2 break-all\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n )}\n </div>\n\n {isCircular || !isExpandable ? null : (\n <div\n className={`rounded p-4 py-2 border bg-gray-100 ${\n reverse ? 'bg-gray-200' : ''\n } ${expanded ? 'block' : 'hidden'}`}\n >\n <SchemaProperties schema={schema} />\n <SchemaItems schema={schema} />\n\n {schema\n .oneOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Adheres to',\n 'Or to',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema\n .anyOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Can adhere to',\n 'Or to',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema\n .allOf()\n ?.map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={SchemaHelpers.applicatorSchemaName(\n idx,\n 'Consists of',\n 'And of',\n s.title() ?? s.id(),\n )}\n />\n ))}\n {schema.not() && (\n <Schema schema={schema.not()} schemaName=\"Cannot adhere to:\" />\n )}\n\n {schema.propertyNames() && (\n <Schema\n schema={schema.propertyNames()}\n schemaName=\"Property names must adhere to:\"\n />\n )}\n {schema.contains() && (\n <Schema\n schema={schema.contains()}\n schemaName=\"Array must contain at least one of:\"\n />\n )}\n\n {schema.if() && (\n <Schema schema={schema.if()} schemaName=\"If schema adheres to:\" />\n )}\n {schema.then() && (\n <Schema\n schema={schema.then()}\n schemaName=\"Then must adhere to:\"\n />\n )}\n {schema.else() && (\n <Schema schema={schema.else()} schemaName=\"Otherwise:\" />\n )}\n\n {dependentSchemas && (\n <Schema\n schema={dependentSchemas}\n schemaName=\"Dependent schemas:\"\n />\n )}\n\n <Extensions item={schema} />\n\n <AdditionalProperties schema={schema} />\n <AdditionalItems schema={schema} />\n </div>\n )}\n </div>\n </SchemaContext.Provider>\n );\n};\n\ninterface SchemaPropertiesProps {\n schema: SchemaInterface;\n}\n\nconst SchemaProperties: React.FunctionComponent<SchemaPropertiesProps> = ({\n schema,\n}) => {\n const properties = Object.entries(schema.properties() ?? {});\n const patternProperties = Object.entries(schema.patternProperties() ?? {});\n\n if (!properties.length && !patternProperties.length) {\n return null;\n }\n\n const required = schema.required() ?? [];\n\n return (\n <>\n {properties.map(([propertyName, property]) => (\n <Schema\n key={propertyName}\n schema={property}\n schemaName={propertyName}\n required={required.includes(propertyName)}\n isProperty\n isCircular={property.isCircular()}\n dependentRequired={SchemaHelpers.getDependentRequired(\n propertyName,\n schema,\n )}\n />\n ))}\n\n {patternProperties.map(([propertyName, property]) => (\n <Schema\n key={propertyName}\n schema={property}\n schemaName={propertyName}\n isPatternProperty\n isProperty\n isCircular={property.isCircular()}\n />\n ))}\n </>\n );\n};\n\ninterface AdditionalPropertiesProps {\n schema: SchemaInterface;\n}\n\nconst AdditionalProperties: React.FunctionComponent<\n AdditionalPropertiesProps\n> = ({ schema }) => {\n if (\n schema.extensions().get(SchemaHelpers.extRenderAdditionalInfo)?.value() ===\n false\n ) {\n return null;\n }\n\n const type = schema.type();\n if (!type?.includes('object')) {\n return null;\n }\n\n const additionalProperties = schema.additionalProperties();\n if (additionalProperties === true || additionalProperties === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are allowed.\n </p>\n );\n }\n if (additionalProperties === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return (\n <Schema schemaName=\"Additional properties:\" schema={additionalProperties} />\n );\n};\n\ninterface SchemaItemsProps {\n schema: SchemaInterface;\n}\n\nconst SchemaItems: React.FunctionComponent<SchemaItemsProps> = ({ schema }) => {\n const type = schema.type();\n if (!type?.includes('array')) {\n return null;\n }\n const items = schema.items();\n\n // object in items\n if (\n items &&\n !Array.isArray(items) &&\n Object.keys(items.properties() ?? {}).length\n ) {\n return <Schema schema={items} isArray />;\n } else if (Array.isArray(items)) {\n return (\n <>\n {items.map((item, idx) => (\n <Schema\n schema={item}\n isArray\n schemaName={`${idx + 1} item:`}\n key={idx}\n />\n ))}\n </>\n );\n }\n return <Schema schema={items} isArray schemaName=\"Items:\" />;\n};\n\ninterface AdditionalItemsProps {\n schema: SchemaInterface;\n}\n\nconst AdditionalItems: React.FunctionComponent<AdditionalItemsProps> = ({\n schema,\n}) => {\n if (\n schema.extensions().get(SchemaHelpers.extRenderAdditionalInfo)?.value() ===\n false\n ) {\n return null;\n }\n\n const type = schema.type();\n if (!type?.includes('array')) {\n return null;\n }\n if (!Array.isArray(schema.items())) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === true || additionalItems === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are allowed.\n </p>\n );\n }\n if (additionalItems === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are <strong>NOT</strong> allowed.\n </p>\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n return <Schema schemaName=\"Additional items:\" schema={additionalItems} />;\n};\n"]}
|