bootprint / bootprint-openapi

Bootprint-module to render OpenAPI specifications, this repository has moved to https://github.com/bootprint/bootprint-monorepo/tree/master/packages/bootprint-openapi
MIT License
357 stars 48 forks source link

Will it work if package is locally installed ? #72

Closed acpmasquerade closed 8 years ago

acpmasquerade commented 8 years ago

├─┬ bootprint@0.8.5
│ ├─┬ clarify@1.0.5
│ │ └── stack-chain@1.3.7
│ ├─┬ commander@2.9.0
│ │ └── graceful-readlink@1.0.1
│ ├─┬ customize-engine-handlebars@0.7.0
│ │ ├─┬ handlebars@3.0.3
│ │ │ ├─┬ optimist@0.6.1
│ │ │ │ ├── minimist@0.0.10
│ │ │ │ └── wordwrap@0.0.3
│ │ │ ├─┬ source-map@0.1.43
│ │ │ │ └── amdefine@1.0.0
│ │ │ └─┬ uglify-js@2.3.6
│ │ │   ├── async@0.2.10
│ │ │   └── optimist@0.3.7
│ │ ├── promised-handlebars@1.0.3
│ │ └─┬ q-deep@1.0.3
│ │   └── deep-aplus@1.0.2
│ ├─┬ customize-engine-less@0.2.5
│ │ └─┬ less@2.7.1
│ │   ├─┬ errno@0.1.4
│ │   │ └── prr@0.0.0
│ │   ├── graceful-fs@4.1.4
│ │   ├── image-size@0.5.0
│ │   ├── mime@1.3.4
│ │   ├─┬ mkdirp@0.5.1
│ │   │ └── minimist@0.0.8
│ │   ├─┬ promise@7.1.1
│ │   │ └── asap@2.0.4
│ │   └── source-map@0.5.6
│ ├─┬ customize-watch@0.5.4
│ │ ├─┬ chokidar@1.6.0
│ │ │ ├─┬ anymatch@1.3.0
│ │ │ │ ├── arrify@1.0.1
│ │ │ │ └─┬ micromatch@2.3.10
│ │ │ │   ├─┬ arr-diff@2.0.0
│ │ │ │   │ └── arr-flatten@1.0.1
│ │ │ │   ├── array-unique@0.2.1
│ │ │ │   ├─┬ braces@1.8.5
│ │ │ │   │ ├─┬ expand-range@1.8.2
│ │ │ │   │ │ └─┬ fill-range@2.2.3
│ │ │ │   │ │   ├── is-number@2.1.0
│ │ │ │   │ │   ├── isobject@2.1.0
│ │ │ │   │ │   ├── randomatic@1.1.5
│ │ │ │   │ │   └── repeat-string@1.5.4
│ │ │ │   │ ├── preserve@0.2.0
│ │ │ │   │ └── repeat-element@1.1.2
│ │ │ │   ├─┬ expand-brackets@0.1.5
│ │ │ │   │ └── is-posix-bracket@0.1.1
│ │ │ │   ├── extglob@0.3.2
│ │ │ │   ├── filename-regex@2.0.0
│ │ │ │   ├─┬ kind-of@3.0.3
│ │ │ │   │ └── is-buffer@1.1.3
│ │ │ │   ├── normalize-path@2.0.1
│ │ │ │   ├─┬ object.omit@2.0.0
│ │ │ │   │ ├─┬ for-own@0.1.4
│ │ │ │   │ │ └── for-in@0.1.5
│ │ │ │   │ └── is-extendable@0.1.1
│ │ │ │   ├─┬ parse-glob@3.0.4
│ │ │ │   │ ├── glob-base@0.3.0
│ │ │ │   │ └── is-dotfile@1.0.2
│ │ │ │   └─┬ regex-cache@0.4.3
│ │ │ │     ├── is-equal-shallow@0.1.3
│ │ │ │     └── is-primitive@2.0.0
│ │ │ ├── async-each@1.0.0
│ │ │ ├── UNMET OPTIONAL DEPENDENCY fsevents@^1.0.0
│ │ │ ├── glob-parent@2.0.0
│ │ │ ├─┬ is-binary-path@1.0.1
│ │ │ │ └── binary-extensions@1.5.0
│ │ │ ├─┬ is-glob@2.0.1
│ │ │ │ └── is-extglob@1.0.0
│ │ │ └─┬ readdirp@2.1.0
│ │ │   ├─┬ readable-stream@2.1.4
│ │ │   │ ├── buffer-shims@1.0.0
│ │ │   │ ├── core-util-is@1.0.2
│ │ │   │ ├── isarray@1.0.0
│ │ │   │ ├── process-nextick-args@1.0.7
│ │ │   │ ├── string_decoder@0.10.31
│ │ │   │ └── util-deprecate@1.0.2
│ │ │   └── set-immediate-shim@1.0.1
│ │ ├─┬ customize@0.8.4
│ │ │ ├── jsonschema@1.1.0
│ │ │ └─┬ jsonschema-extra@1.2.0
│ │ │   ├── js-quantities@1.6.1
│ │ │   └─┬ lodash.isplainobject@2.4.1
│ │ │     ├── lodash._isnative@2.4.1
│ │ │     └─┬ lodash._shimisplainobject@2.4.1
│ │ │       ├─┬ lodash.forin@2.4.1
│ │ │       │ ├─┬ lodash._basecreatecallback@2.4.1
│ │ │       │ │ ├─┬ lodash._setbinddata@2.4.1
│ │ │       │ │ │ └── lodash.noop@2.4.1
│ │ │       │ │ ├─┬ lodash.bind@2.4.1
│ │ │       │ │ │ ├─┬ lodash._createwrapper@2.4.1
│ │ │       │ │ │ │ ├─┬ lodash._basebind@2.4.1
│ │ │       │ │ │ │ │ ├── lodash._basecreate@2.4.1
│ │ │       │ │ │ │ │ └── lodash.isobject@2.4.1
│ │ │       │ │ │ │ └── lodash._basecreatewrapper@2.4.1
│ │ │       │ │ │ └── lodash._slice@2.4.1
│ │ │       │ │ ├── lodash.identity@2.4.1
│ │ │       │ │ └── lodash.support@2.4.1
│ │ │       │ └── lodash._objecttypes@2.4.1
│ │ │       └── lodash.isfunction@2.4.1
│ │ └─┬ q-io@1.13.2
│ │   ├─┬ collections@0.2.2
│ │   │ └── weak-map@1.0.0
│ │   ├── mimeparse@0.1.4
│ │   ├── qs@1.2.2
│ │   └── url2@0.0.0
│ ├── customize-write-files@0.1.5
│ ├─┬ debug@2.2.0
│ │ └── ms@0.7.1
│ ├── get-promise@1.4.0
│ ├─┬ js-yaml@3.6.1
│ │ └── esprima@2.7.2
│ ├─┬ live-server@0.8.2
│ │ ├── colors@1.1.2
│ │ ├─┬ connect@2.30.2
│ │ │ ├── basic-auth-connect@1.0.0
│ │ │ ├─┬ body-parser@1.13.3
│ │ │ │ ├── iconv-lite@0.4.11
│ │ │ │ ├── qs@4.0.0
│ │ │ │ └─┬ raw-body@2.1.7
│ │ │ │   ├── bytes@2.4.0
│ │ │ │   └── iconv-lite@0.4.13
│ │ │ ├── bytes@2.1.0
│ │ │ ├─┬ compression@1.5.2
│ │ │ │ ├─┬ accepts@1.2.13
│ │ │ │ │ └── negotiator@0.5.3
│ │ │ │ ├─┬ compressible@2.0.8
│ │ │ │ │ └── mime-db@1.23.0
│ │ │ │ └── vary@1.0.1
│ │ │ ├── connect-timeout@1.6.2
│ │ │ ├── content-type@1.0.2
│ │ │ ├── cookie@0.1.3
│ │ │ ├── cookie-parser@1.3.5
│ │ │ ├── cookie-signature@1.0.6
│ │ │ ├─┬ csurf@1.8.3
│ │ │ │ └─┬ csrf@3.0.3
│ │ │ │   ├── base64-url@1.2.2
│ │ │ │   ├── rndm@1.2.0
│ │ │ │   ├── tsscmp@1.0.5
│ │ │ │   └─┬ uid-safe@2.1.1
│ │ │ │     └── random-bytes@1.0.0
│ │ │ ├── depd@1.0.1
│ │ │ ├─┬ errorhandler@1.4.3
│ │ │ │ └─┬ accepts@1.3.3
│ │ │ │   └── negotiator@0.6.1
│ │ │ ├─┬ express-session@1.11.3
│ │ │ │ ├── crc@3.3.0
│ │ │ │ └─┬ uid-safe@2.0.0
│ │ │ │   └── base64-url@1.2.1
│ │ │ ├─┬ finalhandler@0.4.0
│ │ │ │ ├── escape-html@1.0.2
│ │ │ │ └── unpipe@1.0.0
│ │ │ ├── fresh@0.3.0
│ │ │ ├── http-errors@1.3.1
│ │ │ ├─┬ method-override@2.3.6
│ │ │ │ ├── methods@1.1.2
│ │ │ │ └── vary@1.1.0
│ │ │ ├─┬ morgan@1.6.1
│ │ │ │ └── basic-auth@1.0.4
│ │ │ ├─┬ multiparty@3.3.2
│ │ │ │ ├─┬ readable-stream@1.1.14
│ │ │ │ │ └── isarray@0.0.1
│ │ │ │ └─┬ stream-counter@0.2.0
│ │ │ │   └─┬ readable-stream@1.1.14
│ │ │ │     └── isarray@0.0.1
│ │ │ ├── on-headers@1.0.1
│ │ │ ├── parseurl@1.3.1
│ │ │ ├── pause@0.1.0
│ │ │ ├── qs@4.0.0
│ │ │ ├── response-time@2.3.1
│ │ │ ├── serve-favicon@2.3.0
│ │ │ ├─┬ serve-index@1.7.3
│ │ │ │ ├── batch@0.5.3
│ │ │ │ └── mime-types@2.1.11
│ │ │ ├─┬ serve-static@1.10.3
│ │ │ │ └─┬ send@0.13.2
│ │ │ │   ├── depd@1.1.0
│ │ │ │   ├── range-parser@1.0.3
│ │ │ │   └── statuses@1.2.1
│ │ │ ├─┬ type-is@1.6.13
│ │ │ │ └── media-typer@0.3.0
│ │ │ ├── utils-merge@1.0.0
│ │ │ └── vhost@3.0.2
│ │ ├─┬ event-stream@3.3.3
│ │ │ ├── duplexer@0.1.1
│ │ │ ├── from@0.1.3
│ │ │ ├── map-stream@0.1.0
│ │ │ ├── pause-stream@0.0.11
│ │ │ ├── split@0.3.3
│ │ │ ├── stream-combiner@0.0.4
│ │ │ └── through@2.3.8
│ │ ├─┬ faye-websocket@0.9.4
│ │ │ └─┬ websocket-driver@0.6.5
│ │ │   └── websocket-extensions@0.1.1
│ │ ├── object-assign@2.1.1
│ │ ├─┬ opn@4.0.2
│ │ │ ├── object-assign@4.1.0
│ │ │ └─┬ pinkie-promise@2.0.1
│ │ │   └── pinkie@2.0.4
│ │ ├─┬ send@0.14.1
│ │ │ ├── depd@1.1.0
│ │ │ ├── destroy@1.0.4
│ │ │ ├── encodeurl@1.0.1
│ │ │ ├── escape-html@1.0.3
│ │ │ ├── etag@1.7.0
│ │ │ ├─┬ http-errors@1.5.0
│ │ │ │ └── setprototypeof@1.0.1
│ │ │ ├─┬ on-finished@2.3.0
│ │ │ │ └── ee-first@1.1.1
│ │ │ ├── range-parser@1.2.0
│ │ │ └── statuses@1.3.0
│ │ └─┬ watchr@2.3.10
│ │   └─┬ bal-util@1.18.0
│ │     ├── ambi@2.0.0
│ │     ├── eachr@2.0.4
│ │     ├── extendr@2.0.1
│ │     ├── getsetdeep@2.0.0
│ │     ├── safecallback@1.0.1
│ │     ├── safefs@2.0.3
│ │     ├── taskgroup@2.0.0
│ │     └── typechecker@2.0.8
│ ├── lodash@3.10.1
│ ├── q@1.4.1
│ └─┬ trace@2.3.2
│   └── async-hook@1.5.1
└─┬ yamljs@0.2.8
  ├─┬ argparse@1.0.7
  │ └── sprintf-js@1.0.3
  └─┬ glob@7.0.5
    ├── fs.realpath@1.0.0
    ├─┬ inflight@1.0.5
    │ └── wrappy@1.0.2
    ├── inherits@2.0.1
    ├─┬ minimatch@3.0.2
    │ └─┬ brace-expansion@1.1.5
    │   ├── balanced-match@0.4.1
    │   └── concat-map@0.0.1
    ├── once@1.3.3
    └── path-is-absolute@1.0.0
$./bootprint.js swagger specs/swagger.json html
module.js:328
    throw err;
    ^

Error: Cannot find module '/workfolder/apidocs/swagger'
    at Function.Module._resolveFilename (module.js:326:15)
    at Function.Module._load (module.js:277:25)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at requireTemplateModule (/workfolder/apidocs/node_modules/bootprint/bin/bootprint.js:59:24)
    at Object.<anonymous> (/workfolder/apidocs/node_modules/bootprint/bin/bootprint.js:28:9)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
$ ./bootprint.js openapi specs/swagger.json html
module.js:328
    throw err;
    ^

Error: Cannot find module '/workfolder/apidocs/openapi'
    at Function.Module._resolveFilename (module.js:326:15)
    at Function.Module._load (module.js:277:25)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at requireTemplateModule (/workfolder/apidocs/node_modules/bootprint/bin/bootprint.js:59:24)
    at Object.<anonymous> (/workfolder/apidocs/node_modules/bootprint/bin/bootprint.js:28:9)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)

What am I missing ?

nknapp commented 8 years ago

If you want to do this without using the JavaScript-API, you can do the following

# This has to be done within another project, so we create one
mkdir bp-test && cd bp-test && npm init -y

# Install bootprint and bootprint-openapi as local dependencies of the project
npm install bootprint bootprint-openapi 

# Run bootprint from within the node_modules folder
./node_modules/.bin/bootprint openapi  http://petstore.swagger.io/v2/swagger.json target

You can also specify a relative path to the location of bootprint-openapi. This code will first try to load the module using require('bootprint-openapi'). If it doesn't find anything, it will look for a directory ./openapi in the current working directory and require that.