title: Generate JSON schema from typescript
body: <p>I am trying to create a typescript doc-generator, but to do so, i need to parse a typescript file into something more easily readable</p>
  
  <p>EX:</p>
  
  <pre><code>"Command": {
      "description": "A command object for the command handler",
      "constructor": [
        {
          "name": "name",
          "type": "string",
          "optional": false,
          "default": null,
          "description": "Name of the command"
        },
        {
          "name": "callback",
          "type": "(event: CommandContext) =&gt; void",
          "optional": false,
          "default": null,
          "description": "Callback for the command"
        }
      ],
      "properties": [
        {
          "name": "name",
          "description": "Name of the command",
          "type": "string"
        },
        {
          "name": "fullname",
          "description": "Fullname of the command",
          "type": "string"
        }
      ],
      "methods": [
        {
          "name": "canRun",
          "description": "Checks all permission checks and verifies if a command can be run",
          "parameters": [
            {
              "name": "context",
              "type": "CommandContext",
              "optional": false,
              "default": null,
              "description": "The context for the command",
              "returns": "PermissionCheckResult"
            }
          ]
        }
      ],
      "events": null
    }
  </code></pre>
  
  <p>would come from something like this</p>
  
  <pre><code>export declare class Command {
      /**
       * Name of the command
       */
      name: string;
      /**
       * Fullname of the command
       */
      fullname: string;
      /**
       * Create a command
       * @param name - Name of the command
       * @param callback - Callback for the command
       */
      constructor(name: string, callback: (event: CommandContext) =&gt; void);
      /**
       * Checks all permission checks and verifies if a command can be run
       * @param context - The context for the command
       */
      canRun(context: CommandContext): boolean;
  }
  </code></pre>
  
  <p>how would I accomplish this, preferably in the browser, but if that is not possible I could also do it using node.js</p>