Skip to content

Commit

Permalink
refactor: Update dev-dependencies.
Browse files Browse the repository at this point in the history
  • Loading branch information
jwalton committed Dec 3, 2021
1 parent 27fa51b commit 9b81505
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 22 deletions.
22 changes: 11 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,27 +52,27 @@
"@types/glob": "^7.1.1",
"@types/json-schema": "^7.0.3",
"@types/lodash": "^4.14.132",
"@types/mocha": "^8.0.0",
"@types/node": "^13.1.0",
"@types/mocha": "^9.0.0",
"@types/node": "^16.11.11",
"@types/pump": "^1.0.1",
"@types/qs": "^6.5.1",
"@types/semver": "^7.1.0",
"@typescript-eslint/eslint-plugin": "^4.0.0",
"@typescript-eslint/parser": "^4.0.1",
"@typescript-eslint/eslint-plugin": "^5.5.0",
"@typescript-eslint/parser": "^5.5.0",
"chai": "^4.2.0",
"chai-as-promised": "^7.1.1",
"coveralls": "^3.0.2",
"eslint": "^7.6.0",
"husky": "^6.0.0",
"lint-staged": "^11.0.0",
"markdownlint-cli": "^0.27.0",
"mocha": "^8.0.1",
"eslint": "^8.3.0",
"husky": "^7.0.4",
"lint-staged": "^12.1.2",
"markdownlint-cli": "^0.30.0",
"mocha": "^9.1.3",
"nyc": "^15.0.0",
"prettier": "^2.0.5",
"pretty-quick": "^3.0.0",
"semantic-release": "^17.0.4",
"semantic-release": "^18.0.1",
"supertest-fetch": "^1.2.2",
"ts-node": "^9.0.0",
"ts-node": "^10.4.0",
"typescript": "^4.0.2"
},
"dependencies": {
Expand Down
2 changes: 1 addition & 1 deletion src/controllers/loadControllers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export function loadControllersSync(
result[indexFolder] = result[indexFolder] || mod;
}
} catch (err) {
throw new Error(`Could not load controller '${fullPath}': ${err.message}`);
throw new Error(`Could not load controller '${fullPath}': ${err}`);
}
return result;
}, {});
Expand Down
6 changes: 5 additions & 1 deletion src/core/ExegesisResponseImpl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,18 @@ export default class ExegesisResponseImpl implements types.ExegesisResponse {
headers: types.HttpHeaders = Object.create(null);
ended: boolean = false;
connection: net.Socket;
socket: net.Socket;
headersSent: boolean = false;
private _responseValidationEnabled: boolean;

constructor(
res: http.ServerResponse /* | http2.Http2ServerResponse */,
responseValidationEnabled: boolean
) {
this.connection = res.connection;
if (!res.socket) {
throw new Error('Response is already ended');
}
this.connection = this.socket = res.socket;
this._responseValidationEnabled = responseValidationEnabled;
}

Expand Down
10 changes: 7 additions & 3 deletions src/core/exegesisRunner.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import * as http from 'http';
import { Readable } from 'stream';
import { asError, HttpError } from '../errors';

import { invokeController } from '../controllers/invoke';
import stringToStream from '../utils/stringToStream';
Expand Down Expand Up @@ -208,8 +209,9 @@ export default async function generateExegesisRunner<T>(
context,
});
}
} catch (err) {
err.status = err.status || 500;
} catch (e) {
const err = asError(e) as HttpError;
(err as any).status = err.status || 500;
throw err;
}
}
Expand All @@ -222,7 +224,9 @@ export default async function generateExegesisRunner<T>(
}

return result;
} catch (err) {
} catch (e) {
const err = asError(e);

if (options.autoHandleHttpErrors) {
if (options.autoHandleHttpErrors instanceof Function) {
return options.autoHandleHttpErrors(err, { req });
Expand Down
15 changes: 15 additions & 0 deletions src/errors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,18 @@ export class HttpPayloadTooLargeError extends HttpError {
super(413, message);
}
}

/**
* Ensures the passed in `err` is of type Error.
*/
export function asError(err: any): Error {
if (err instanceof Error) {
return err;
} else {
const newErr = new Error(err);
if (err.status) {
(newErr as any).status = err.status;
}
return newErr;
}
}
2 changes: 1 addition & 1 deletion src/oas3/parameterParsers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ function generateMediaTypeParser(
throw new ValidationError({
message:
`Error parsing parameter ${location.name} of ` +
`type ${parameterDescriptor.contentType}: ${err.message}`,
`type ${parameterDescriptor.contentType}: ${err}`,
location,
});
}
Expand Down
1 change: 1 addition & 0 deletions src/types/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export interface ExegesisResponse {
headers: HttpHeaders;
body: Buffer | string | Readable | any;
connection: net.Socket;
socket: net.Socket;
ended: boolean;

setStatus(status: number): this;
Expand Down
6 changes: 3 additions & 3 deletions test/core/ExegesisResponseImplTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ describe('ExegesisResponseImpl', () => {
content: new StringWrapper('foo'),
};

const res = new ExegesisResponseImpl({} as any, true);
const res = new ExegesisResponseImpl({ socket: {} } as any, true);
res.json(data);

expect(res.headers['content-type']).to.equal('application/json');
Expand All @@ -44,7 +44,7 @@ describe('ExegesisResponseImpl', () => {
content: new StringWrapper('foo'),
};

const res = new ExegesisResponseImpl({} as any, false);
const res = new ExegesisResponseImpl({ socket: {} } as any, false);
res.json(data);

expect(res.headers['content-type']).to.equal('application/json');
Expand All @@ -56,7 +56,7 @@ describe('ExegesisResponseImpl', () => {
it('set the response body', () => {
const body = { content: 'foo' };

const res = new ExegesisResponseImpl({} as any, true);
const res = new ExegesisResponseImpl({ socket: {} } as any, true);
res.pureJson(body);

expect(res.headers['content-type']).to.equal('application/json');
Expand Down
2 changes: 1 addition & 1 deletion test/core/pluginTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ describe('Plugin Test', function () {
originalOptions: {},
});

await runner({} as http.IncomingMessage, {} as http.ServerResponse);
await runner({} as http.IncomingMessage, { socket: {} } as http.ServerResponse);

expect(callOrder).to.eql([
// Note: no preCompile here, because it would be called when compiling options.
Expand Down
2 changes: 1 addition & 1 deletion test/fixtures/FakeExegesisContext.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export default class FakeExegesisContext implements ExegesisContext {

constructor() {
this.req = {} as http.IncomingMessage;
this.origRes = {} as http.ServerResponse;
this.origRes = { socket: {} } as http.ServerResponse;
this.res = new ExegesisResponseImpl(this.origRes, true);
}

Expand Down

0 comments on commit 9b81505

Please sign in to comment.