text: const toOpenApi = require('@openapi-contrib/json-schema-to-openapi-schema');
  
  const fs = require('fs');
  
  let rawdata = fs.readFileSync('schema.json');
  
  let schema = JSON.parse(rawdata);
  
  // Generated result contains usage of "allOf" directive with a single class.
  // It breaks client generator serves no function.
  // This function should replace "allOf" directives with simple class usages
  function replaceAllOf(schema) {
      if (Array.isArray(schema)) {
          var newSchema = [];
          for (var k in schema) {
              newSchema[k] = replaceAllOf(schema[k]);
          }
          return newSchema;
      }
      if (typeof schema === 'object' && schema !== null) {
          var newSchema = {};
          for (var k in schema) {
              if (k === 'allOf' && schema[k].length === 1) {
                  newSchema = {...schema[k][0]};
                  break
              } else {
                  newSchema[k] = replaceAllOf(schema[k]);
              }
          }
          return newSchema;
      }
      return schema;
  }
  
  
  
  (async () => {
      var convertedSchema = await toOpenApi(schema);
  
      convertedSchema = replaceAllOf(convertedSchema);
  
      for (var modelName in convertedSchema['definitions']) {
          convertedSchema['definitions'][modelName]["$schema"] = schema["$schema"];
          convertedSchema['definitions'][modelName] = await toOpenApi(convertedSchema['definitions'][modelName]);
      }
  
      console.log(JSON.stringify({components: {schemas: convertedSchema['definitions']}}, null, 4));
  })();
  
  
  
  
  