Skip to content

Commit

Permalink
use @penx/swagger-node-runner fork (#4)
Browse files Browse the repository at this point in the history
* use @penx/swagger-node-runner fork

* readme
  • Loading branch information
penx committed Feb 9, 2018
1 parent 06b2874 commit 5a83a06
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 399 deletions.
8 changes: 4 additions & 4 deletions README.md
Expand Up @@ -6,8 +6,8 @@ Usage: openapi-mock [options] <spec>
Options:
-V, --version output the version number
-m, --mock <dir> Mock directory
-c, --config <file> Config file
-p, --port <n> Port
-m, --mock <dir> path to mock directory
-c, --config <file> path to config file
-p, --port <n> port to start the mock server on
-h, --help output usage information
```
```
30 changes: 20 additions & 10 deletions app.js
@@ -1,27 +1,37 @@
'use strict';

var SwaggerExpress = require('swagger-express-mw');
// Patched version of swagger-node-runner waiting on https://github.com/theganyo/swagger-node-runner/pull/119
var Runner = require('@penx/swagger-node-runner');
var app = require('express')();
var path = require('path');

module.exports = app; // for testing

function createApp({spec = './example/spec/petstore.json', mock, config = '.', port = process.env.PORT || 10010} = {}) {
function registerApp(runner, port) {
const swaggerExpress = runner.expressMiddleware();
swaggerExpress.register(app);
app.listen(port);
console.log('Paths:')
console.log(Object.keys(swaggerExpress.runner.swagger.paths));
console.log('Server running at http://127.0.0.1:' + port);
};

function createApp({
spec = path.join(__dirname, './example/spec/petstore.json'),
mock,
config = path.join(__dirname, '.'),
port = process.env.PORT || 10010} = {}) {
// If spec not defined, load example
// If config not defined, load default
var config = {
configDir: path.join(__dirname, config),
swaggerFile: path.join(__dirname, spec),
configDir: config,
swaggerFile: spec,
appRoot: __dirname
};

SwaggerExpress.create(config, function(err, swaggerExpress) {
Runner.create(config, function(err, runner) {
if (err) { throw err; }
swaggerExpress.register(app);
app.listen(port);
console.log('Paths:')
console.log(Object.keys(swaggerExpress.runner.swagger.paths));
console.log('Server running at http://127.0.0.1:' + port);
registerApp(runner, port);
});

return app;
Expand Down
14 changes: 10 additions & 4 deletions cli.js
@@ -1,19 +1,25 @@
#!/usr/bin/env node

var program = require('commander');
var path = require('path');
var {version} = require('./package.json');
var app = require('./app.js');

function resolvePath(relativePath) {
console.log(path.join(process.cwd(), relativePath))
return path.join(process.cwd(), relativePath);
}

program
.version(version)
.usage('[options] <spec>')
.option('-m, --mock <dir>', 'Mock directory')
.option('-c, --config <file>', 'Config file')
.option('-p, --port <n>', 'Port', parseInt);
.option('-m, --mock <dir>', 'path to mock directory', resolvePath)
.option('-c, --config <file>', 'path to config file', resolvePath)
.option('-p, --port <n>', 'port to start the mock server on', parseInt);

program.parse(process.argv);

const spec = program.args[0];
const spec = program.args[0] ? resolvePath(program.args[0]) : undefined;
const {mock, config, port} = program;

app({spec, mock, config, port})
2 changes: 1 addition & 1 deletion example/package.json
Expand Up @@ -10,7 +10,7 @@
"openapi-mock": "0.0.1"
},
"scripts": {
"start": "openapi-mock -m ./mocks -s ./spec/petstore.json"
"start": "openapi-mock -m ./mocks -p 9092 ./spec/petstore.json"
},
"devDependencies": {},
"repository": {
Expand Down

0 comments on commit 5a83a06

Please sign in to comment.