@redocly/asyncapi-docs
Version:
Async API docs for Redocly Realm
2 lines (1 loc) • 2.26 kB
JavaScript
var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},b=(n,e,t,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of f(e))!d.call(n,r)&&r!==t&&o(n,r,{get:()=>e[r],enumerable:!(u=a(e,r))||u.enumerable});return n};var y=n=>b(o({},"__esModule",{value:!0}),n);var O={};p(O,{avroToJsonSchema:()=>A});module.exports=y(O);function c(n){switch(n){case"null":return{type:"null"};case"boolean":return{type:"boolean"};case"int":case"long":return{type:"integer"};case"float":case"double":return{type:"number"};case"bytes":return{type:"string",contentEncoding:"base64"};case"string":return{type:"string"};default:throw new Error(`Unknown primitive type: ${n}`)}}function m(n){return{type:"string",enum:n.symbols,title:n.name,description:n.doc}}function g(n){var e;const t={},u=[];return(e=n.fields)===null||e===void 0||e.forEach(r=>{t[r.name]=i(r.type),r.doc&&(t[r.name].description=r.doc),r.default!==void 0&&(t[r.name].default=r.default),r.default===void 0&&!j(r.type)&&u.push(r.name)}),{type:"object",title:n.name,description:n.doc,properties:t,required:u.length>0?u:void 0,additionalProperties:!1}}function j(n){return Array.isArray(n)?n.some(e=>e==="null"||typeof e=="object"&&e.type==="null"):!1}function s(n){return{type:"array",items:i(n.items),description:n.doc}}function l(n){return{type:"object",additionalProperties:i(n.values),description:n.doc}}function w(n){const e=n.findIndex(t=>t==="null"||typeof t=="object"&&t.type==="null");if(e!==-1){const t=[...n];return t.splice(e,1),t.length===1?Object.assign(Object.assign({},i(t[0])),{nullable:!0}):{oneOf:t.map(i),nullable:!0}}return{oneOf:n.map(i)}}function i(n){if(typeof n=="string")return c(n);if(Array.isArray(n))return w(n);if(typeof n=="object"&&typeof n.type=="string")switch(n.type){case"record":return g(n);case"enum":return m(n);case"array":return s(n);case"map":return l(n);default:return c(n.type)}if(typeof n=="object"&&n.items)return s(n);if(typeof n=="object"&&n.values)return l(n);throw new Error(`Invalid Avro schema type: ${JSON.stringify(n)}`)}function A(n){const e=i(n);return Object.assign({},e)}0&&(module.exports={avroToJsonSchema});