mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-06 15:57:13 +00:00
Merge pull request #13672 from micmro/swagger-restify-mw
Add swagger-restify-mw
This commit is contained in:
Vendored
+2
-1
@@ -34,6 +34,7 @@ import { Express, NextFunction } from "express";
|
||||
import { Spec } from "swagger-schema-official";
|
||||
import { EventEmitter } from "events";
|
||||
import * as Hapi from "hapi";
|
||||
import * as Restify from "restify";
|
||||
|
||||
/**
|
||||
* Config object for SwaggerNodeRunner
|
||||
@@ -258,7 +259,7 @@ export interface HapiMiddleware extends Middleware {
|
||||
/** Restify specific Middleware */
|
||||
export interface RestifyMiddleware extends Middleware {
|
||||
/** Register this Middleware with `app` */
|
||||
register: (app: any) => void;
|
||||
register: (app: Restify.Server) => void;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import * as SwaggerNodeRunner from "swagger-node-runner";
|
||||
import * as express from "express";
|
||||
import * as Hapi from "hapi";
|
||||
import * as restify from "restify";
|
||||
|
||||
let config: SwaggerNodeRunner.Config = {
|
||||
appRoot: __dirname
|
||||
@@ -45,6 +46,21 @@ SwaggerNodeRunner.create(config, function(err, runner) {
|
||||
});
|
||||
|
||||
|
||||
// Restify Middelware
|
||||
|
||||
let app = restify.createServer();
|
||||
SwaggerNodeRunner.create(config, function(err, runner) {
|
||||
if (err) { throw err; }
|
||||
|
||||
let restifyMiddelware = runner.restifyMiddleware()
|
||||
|
||||
restifyMiddelware.register(app);
|
||||
|
||||
let port = process.env.PORT || 10010;
|
||||
app.listen(port);
|
||||
});
|
||||
|
||||
|
||||
let swaggerSecurityHandlerCb = (err: Error) => {
|
||||
//do nothing
|
||||
};
|
||||
|
||||
Vendored
+47
@@ -0,0 +1,47 @@
|
||||
// Type definitions for swagger-restify-mw 0.7
|
||||
// Project: https://github.com/apigee-127/swagger-restify#readme
|
||||
// Definitions by: Michael Mrowetz <https://github.com/micmro/>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/* =================== USAGE ===================
|
||||
import * as SwaggerRestify from "swagger-restify-mw";
|
||||
import * as restify from "restify";
|
||||
|
||||
let app = restify.createServer();
|
||||
|
||||
let config = {
|
||||
appRoot: __dirname // required config
|
||||
} as SwaggerRestify.Config;
|
||||
|
||||
SwaggerRestify.create(config, function(err, swaggerRestify) {
|
||||
if (err) { throw err; }
|
||||
|
||||
swaggerRestify.register(app);
|
||||
|
||||
let port = process.env.PORT || 10010;
|
||||
app.listen(port);
|
||||
|
||||
if (swaggerRestify.runner.swagger.paths['/hello']) {
|
||||
console.log('try this:\ncurl http://127.0.0.1:' + port + '/hello?name=Scott');
|
||||
}
|
||||
});
|
||||
|
||||
=============================================== */
|
||||
|
||||
import { Config, RestifyMiddleware } from "swagger-node-runner";
|
||||
|
||||
/** export interfaces */
|
||||
export { Config, RestifyMiddleware } from "swagger-node-runner";
|
||||
|
||||
/**
|
||||
* Create a new instance of a Restify specific `SwaggerNodeRunner` middleware
|
||||
*
|
||||
* The `swagger-node-runner` module has the following config priority:
|
||||
* 1. `swagger_*` environment vars
|
||||
* 2. `config` passed to `create()`
|
||||
* 3. read from swagger node in `default.yaml` in config directory
|
||||
* 4. module defaults
|
||||
*
|
||||
* @see @link{https://github.com/apigee-127/swagger-express|Github}
|
||||
*/
|
||||
export function create(config: Config, cb: (err: Error | undefined, middleware: RestifyMiddleware) => void): void;
|
||||
@@ -0,0 +1,39 @@
|
||||
import * as SwaggerRestify from "swagger-restify-mw";
|
||||
import * as restify from "restify";
|
||||
|
||||
let app = restify.createServer();
|
||||
|
||||
let config = {
|
||||
appRoot: __dirname // required config
|
||||
} as SwaggerRestify.Config;
|
||||
|
||||
SwaggerRestify.create(config, function(err, swaggerRestify) {
|
||||
if (err) { throw err; }
|
||||
|
||||
swaggerRestify.register(app);
|
||||
|
||||
let port = process.env.PORT || 10010;
|
||||
app.listen(port);
|
||||
});
|
||||
|
||||
|
||||
let swaggerSecurityHandlerCb = (err: Error) => {
|
||||
//do nothing
|
||||
};
|
||||
|
||||
|
||||
let configComplex: SwaggerRestify.Config = {
|
||||
appRoot: __dirname,
|
||||
configDir: "some/directory",
|
||||
controllersDirs: ["some/directory"],
|
||||
fittingsDirs: ["some/directory"],
|
||||
mockMode: true,
|
||||
swaggerControllerPipe: 'swagger_controllers',
|
||||
swaggerSecurityHandlers: {
|
||||
// did not manage to research the typings of first 3 arguments
|
||||
someHandlerName: ({}, {}, {}, swaggerSecurityHandlerCb) => {
|
||||
//do nothing
|
||||
}
|
||||
},
|
||||
validateResponse: true
|
||||
};
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "es6",
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"swagger-restify-mw-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "../tslint.json" }
|
||||
Reference in New Issue
Block a user