Socket
Socket
Sign inDemoInstall

swagger-spec-to-pdf

Package Overview
Dependencies
146
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    swagger-spec-to-pdf

Dump swagger json spec into pdf document.


Version published
Weekly downloads
46
increased by21.05%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

swagger-spec-to-pdf

NPM version NPM downloads License

Install:

npm install -g swagger-spec-to-pdf

Usage:

usage: swagger2pdf [-h] [-v] [-s SRC] [-j] [-y] [-o OUTPUT]

Optional arguments:
  -h, --help            Show this help message and exit.
  -v, --version         Show program's version number and exit.
  -s SRC, --src SRC     Swagger spec JSON file.
  -j, --json            Spec file in JSON format (default).
  -y, --yaml            Spec file in YAML format.
  -o OUTPUT, --output OUTPUT
                        Output path of the pdf file.

Exec:

For JSON files:

swagger2pdf -j -s ./swagger-spec-sample.json -o ./dump/

For YAML files:

swagger2pdf -y -s ./swagger-spec-sample.yaml -o ./dump/

In either case, the execution will take several seconds to complete.

Sample:

See: ./dump/swagger-spec-sample.pdf

Change log:

1.1.0: Support swagger spec files in YAML format, see: PR#13.

Appendix:

Working Theory

In the case of a JSON input file:

  1. Read source swagger json spec
  2. Convert it into yaml format
  3. Dump yaml into the spec dir of swagger editor
  4. Use electron to render swagger editor page (nicely formatted api page)
  5. Dump the page into pdf

In the case of a YAML input file, steps 1-2 are bypassed.

Swagger Editor

Version of swagger editor embedded is: 2.9.9
You can get it from: here
If you want to use some other version:

  • clone the repo
  • replace the editor in ./swagger-editor
  • Add codes below into the bottom of file swagger-editor/index.html
  • npm install .
<script type="text/javascript">
    $("document").ready(function() {
        setTimeout(function() {
            var fileMenuTimer = setInterval(function() {
                // open file menu
                var fileMenu = $("#fileMenu");
                if (fileMenu.length) {
                    clearInterval(fileMenuTimer);
                    fileMenu.click();

                    // open example selector
                    var exampleButton = $("#open-example");
                    var exampleButtonTimer = setInterval(function() {
                        if (exampleButton.length) {
                            clearInterval(exampleButtonTimer);
                            exampleButton.click();

                            // click open button
                            setTimeout(function() {
                                $(".modal-large .btn-primary").click();
                            }, 1000);
                        }
                    }, 300);
                }
            }, 300);
        }, 1000);
    });
</script>

Done, just use it.

FAQs

Last updated on 06 Jan 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc