From 2b4726260840ebde1f54123d8e28e91214e943e9 Mon Sep 17 00:00:00 2001 From: Nicolas Froidure Date: Fri, 31 Jan 2020 18:54:48 +0100 Subject: [PATCH] fix(types): fix handlers generic types ordering --- package-lock.json | 80 ++++++++++++++----- package.json | 2 +- packages/whook-authorization/package.json | 3 +- packages/whook-authorization/src/index.ts | 2 +- packages/whook-cli/package.json | 3 +- packages/whook-cors/package.json | 3 +- packages/whook-cors/src/index.ts | 2 +- packages/whook-create/package.json | 3 +- packages/whook-example/package.json | 3 +- .../__snapshots__/putEcho.test.ts.snap | 6 +- .../whook-example/src/handlers/getDelay.ts | 11 ++- .../src/handlers/getDiagnostic.ts | 7 +- .../whook-example/src/handlers/getOpenAPI.ts | 7 +- .../whook-example/src/handlers/getTime.ts | 2 +- .../src/handlers/putEcho.test.ts | 2 +- .../whook-example/src/handlers/putEcho.ts | 9 ++- packages/whook-http-router/package.json | 3 +- packages/whook-http-server/package.json | 3 +- packages/whook-http-transaction/package.json | 3 +- packages/whook-http-transaction/src/index.ts | 15 ++-- packages/whook-method-override/package.json | 3 +- packages/whook-swagger-ui/package.json | 4 +- .../__snapshots__/getOpenAPI.test.ts.snap | 6 +- .../src/handlers/getOpenAPI.test.ts | 6 +- .../src/handlers/getOpenAPI.ts | 12 ++- packages/whook-versions/package.json | 5 +- packages/whook-versions/src/index.ts | 2 +- packages/whook/package.json | 3 +- packages/whook/src/handlers/getPing.ts | 2 +- 29 files changed, 144 insertions(+), 68 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8bd93c83..4d565836 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1161,9 +1161,9 @@ } }, "@octokit/endpoint": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", - "integrity": "sha512-nBFhRUb5YzVTCX/iAK1MgQ4uWo89Gu0TH00qQHoYRCsE12dWcG1OiLd7v2EIo2+tpUKPMOQ62QFy9hy9Vg2ULg==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.2.tgz", + "integrity": "sha512-ICDcRA0C2vtTZZGud1nXRrBLXZqFayodXAKZfo3dkdcLNqcHsgaz3YSTupbURusYeucSVRjjG+RTcQhx6HPPcg==", "dev": true, "requires": { "@octokit/types": "^2.0.0", @@ -1194,6 +1194,31 @@ "integrity": "sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA==", "dev": true }, + "@octokit/plugin-paginate-rest": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.1.tgz", + "integrity": "sha512-Kf0bnNoOXK9EQLkc3rtXfPnu/bwiiUJ1nH3l7tmXYwdDJ7tk/Od2auFU9b86xxKZunPkV9SO1oeojT707q1l7A==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.1" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz", + "integrity": "sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==", + "dev": true + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.1.3.tgz", + "integrity": "sha512-YtP757n6UIyVhd4YJ0aerx7CuO4+VJJ5BYlvD2aPnUPhCoNbINSxVS1p7UEBRzMOrPfEGDYEcs/tjADB1NOCyg==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.1", + "deprecation": "^2.3.1" + } + }, "@octokit/request": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz", @@ -1228,9 +1253,9 @@ } }, "@octokit/request-error": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.0.tgz", - "integrity": "sha512-DNBhROBYjjV/I9n7A8kVkmQNkqFAMem90dSxqvPq57e2hBr7mNTX98y3R2zDpqMQHVRpBDjsvsfIGgBzy+4PAg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz", + "integrity": "sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==", "dev": true, "requires": { "@octokit/types": "^2.0.0", @@ -1239,12 +1264,15 @@ } }, "@octokit/rest": { - "version": "16.38.1", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.38.1.tgz", - "integrity": "sha512-zyNFx+/Bd1EXt7LQjfrc6H4wryBQ/oDuZeZhGMBSFr1eMPFDmpEweFQR3R25zjKwBQpDY7L5GQO6A3XSaOfV1w==", + "version": "16.41.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.41.0.tgz", + "integrity": "sha512-qdXSdoI7RI+u04KR5FEv2UAo8kuCLH1l48mLCQu3gpMoCapmIXL0dGDjzhAbuQHRxkGz2zuvCKhskdMhy66Nww==", "dev": true, "requires": { "@octokit/auth-token": "^2.4.0", + "@octokit/plugin-paginate-rest": "^1.1.1", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "2.1.3", "@octokit/request": "^5.2.0", "@octokit/request-error": "^1.0.2", "atob-lite": "^2.0.0", @@ -1292,9 +1320,9 @@ "dev": true }, "@types/node": { - "version": "13.1.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.8.tgz", - "integrity": "sha512-6XzyyNM9EKQW4HKuzbo/CkOIjn/evtCmsU+MUM1xDfJ+3/rNjBttM1NgN7AOQvN6tP1Sl1D1PIKMreTArnxM9A==", + "version": "13.5.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.5.3.tgz", + "integrity": "sha512-ZPnWX9PW992w6DUsz3JIXHaSb5v7qmKCVzC3km6SxcDGxk7zmLfYaCJTbktIa5NeywJkkZDhGldKqDIvC5DRrA==", "dev": true }, "@zkochan/cmd-shim": { @@ -2517,19 +2545,27 @@ "dev": true }, "cz-conventional-changelog": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.0.2.tgz", - "integrity": "sha512-MPxERbtQyVp0nnpCBiwzKGKmMBSswmCV3Jpef3Axqd5f3c/SOc6VFiSUlclOyZXBn3Xtf4snzt4O15hBTRb2gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.1.0.tgz", + "integrity": "sha512-SCwPPOF+7qMh1DZkJhrwaxCvZzPaz2E9BwQzcZwBuHlpcJj9zzz7K5vADQRhHuxStaHZFSLbDlZEdcls4bKu7Q==", "dev": true, "requires": { "@commitlint/load": ">6.1.1", "chalk": "^2.4.1", "commitizen": "^4.0.3", - "conventional-commit-types": "^2.0.0", + "conventional-commit-types": "^3.0.0", "lodash.map": "^4.5.1", "longest": "^2.0.1", "right-pad": "^1.0.1", "word-wrap": "^1.0.3" + }, + "dependencies": { + "conventional-commit-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true + } } }, "dargs": { @@ -4936,9 +4972,9 @@ } }, "metapak-nfroidure": { - "version": "9.8.1", - "resolved": "https://registry.npmjs.org/metapak-nfroidure/-/metapak-nfroidure-9.8.1.tgz", - "integrity": "sha512-+r/vMq7RNoiDqZi4OjI54eF5gq5Xj6/OcxHxfdMFSHv0DwMqeiyeV/sTY8vE68JUtNy4CEJvWqZMG8mnV/OT3A==", + "version": "9.8.2", + "resolved": "https://registry.npmjs.org/metapak-nfroidure/-/metapak-nfroidure-9.8.2.tgz", + "integrity": "sha512-xH+3OaEVUy5Jv7JHXSdluXmaTyuccepJQPwHhjf4zsgRrxUI0FBhQJ1yr3KpPmThPrK3GuF5efGK2171Gb0vqA==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0", @@ -4953,9 +4989,9 @@ "dev": true }, "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.1.tgz", + "integrity": "sha512-IQ4ikL8SjBiEDZfk+DFVwqRK8md24RWMEJkdSlgNLkyyAImcjf8SWvU1qFMDOb4igBClbTQ/ugPqXcRwdFTxZw==", "dev": true, "requires": { "glob": "^7.1.3" diff --git a/package.json b/package.json index 1754a979..bf57da4e 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "cz-conventional-changelog": "^3.0.2", "lerna": "^3.19.0", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1" + "metapak-nfroidure": "9.8.2" }, "contributors": [], "engines": { diff --git a/packages/whook-authorization/package.json b/packages/whook-authorization/package.json index a96d3052..5ad61075 100644 --- a/packages/whook-authorization/package.json +++ b/packages/whook-authorization/package.json @@ -65,8 +65,9 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "contributors": [], diff --git a/packages/whook-authorization/src/index.ts b/packages/whook-authorization/src/index.ts index d881226e..fb26948d 100644 --- a/packages/whook-authorization/src/index.ts +++ b/packages/whook-authorization/src/index.ts @@ -86,7 +86,7 @@ async function handleWithAuthorization

( authentication, log, }: WhookAuthorizationDependencies, - handler: WhookHandler, + handler: WhookHandler, parameters: P, operation: WhookOperation, ): Promise { diff --git a/packages/whook-cli/package.json b/packages/whook-cli/package.json index 9e344890..cc058b60 100644 --- a/packages/whook-cli/package.json +++ b/packages/whook-cli/package.json @@ -85,8 +85,9 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "contributors": [], diff --git a/packages/whook-cors/package.json b/packages/whook-cors/package.json index cec98ebf..f2ccd806 100644 --- a/packages/whook-cors/package.json +++ b/packages/whook-cors/package.json @@ -65,8 +65,9 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "contributors": [], diff --git a/packages/whook-cors/src/index.ts b/packages/whook-cors/src/index.ts index b7a564ef..c5cc83ea 100644 --- a/packages/whook-cors/src/index.ts +++ b/packages/whook-cors/src/index.ts @@ -52,7 +52,7 @@ async function handleWithCORS< P extends Parameters >( { CORS }: CORSConfig, - handler: WhookHandler, + handler: WhookHandler, parameters: P, operation: O, ): Promise { diff --git a/packages/whook-create/package.json b/packages/whook-create/package.json index 84731cf1..e899d3be 100644 --- a/packages/whook-create/package.json +++ b/packages/whook-create/package.json @@ -89,8 +89,9 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^4.0.1", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "contributors": [], diff --git a/packages/whook-example/package.json b/packages/whook-example/package.json index 906fd162..6f884432 100644 --- a/packages/whook-example/package.json +++ b/packages/whook-example/package.json @@ -92,9 +92,10 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^4.0.1", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "openapi-schema-validator": "^3.0.3", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "contributors": [], diff --git a/packages/whook-example/src/handlers/__snapshots__/putEcho.test.ts.snap b/packages/whook-example/src/handlers/__snapshots__/putEcho.test.ts.snap index 46dc82bf..15f2991d 100644 --- a/packages/whook-example/src/handlers/__snapshots__/putEcho.test.ts.snap +++ b/packages/whook-example/src/handlers/__snapshots__/putEcho.test.ts.snap @@ -2,8 +2,10 @@ exports[`putEcho should fail when crossing the red line ;) 1`] = ` Object { - "errorCode": undefined, - "errorParams": undefined, + "errorCode": "E_MUST_NOT_BE_NAMED", + "errorParams": Array [ + "Big up to Lord Voldemort!", + ], "logCalls": Array [ Array [ "warning", diff --git a/packages/whook-example/src/handlers/getDelay.ts b/packages/whook-example/src/handlers/getDelay.ts index d9462d05..53e9e354 100644 --- a/packages/whook-example/src/handlers/getDelay.ts +++ b/packages/whook-example/src/handlers/getDelay.ts @@ -3,6 +3,7 @@ import { WhookResponse, WhookAPIHandlerDefinition, WhookAPIParameterDefinition, + WhookHandlerFunction, } from '@whook/whook'; import { DelayService } from 'common-services'; @@ -39,10 +40,12 @@ export const definition: WhookAPIHandlerDefinition = { }, }; -export default autoHandler(getDelay); - async function getDelay( - { delay }: { delay: DelayService }, + { + delay, + }: { + delay: DelayService; + }, { duration }: { duration: number }, ): Promise> { await delay.create(duration); @@ -50,3 +53,5 @@ async function getDelay( status: 200, }; } + +export default autoHandler(getDelay); diff --git a/packages/whook-example/src/handlers/getDiagnostic.ts b/packages/whook-example/src/handlers/getDiagnostic.ts index 4ae63c2f..caf3a523 100644 --- a/packages/whook-example/src/handlers/getDiagnostic.ts +++ b/packages/whook-example/src/handlers/getDiagnostic.ts @@ -32,11 +32,14 @@ export const definition: WhookAPIHandlerDefinition = { export default autoHandler(getDiagnostic); +type Transaction = {}; +type Transactions = { [id: string]: Transaction }; + async function getDiagnostic({ TRANSACTIONS, }: { - TRANSACTIONS: {}; -}): Promise { + TRANSACTIONS: Transactions; +}): Promise> { return { status: 200, body: { diff --git a/packages/whook-example/src/handlers/getOpenAPI.ts b/packages/whook-example/src/handlers/getOpenAPI.ts index dd3ed073..6c858d8b 100644 --- a/packages/whook-example/src/handlers/getOpenAPI.ts +++ b/packages/whook-example/src/handlers/getOpenAPI.ts @@ -1,6 +1,7 @@ -import getOpenAPI, { - definition as baseGetOpenAPIDefinition, -} from '@whook/swagger-ui/dist/handlers/getOpenAPI'; +import { + initGetOpenAPI as getOpenAPI, + getOpenAPIDefinition as baseGetOpenAPIDefinition, +} from '@whook/swagger-ui'; // TODO: Use WHOOK_PLUGINS to get handlers from plugins // instead of proxying here diff --git a/packages/whook-example/src/handlers/getTime.ts b/packages/whook-example/src/handlers/getTime.ts index 28681339..86627d27 100644 --- a/packages/whook-example/src/handlers/getTime.ts +++ b/packages/whook-example/src/handlers/getTime.ts @@ -45,7 +45,7 @@ async function getTime({ time, }: { time: TimeService; -}): Promise { +}): Promise> { return { status: 200, body: { diff --git a/packages/whook-example/src/handlers/putEcho.test.ts b/packages/whook-example/src/handlers/putEcho.test.ts index 4299d6f0..cd18293c 100644 --- a/packages/whook-example/src/handlers/putEcho.test.ts +++ b/packages/whook-example/src/handlers/putEcho.test.ts @@ -27,7 +27,7 @@ describe('putEcho', () => { try { await putEcho({ - body: 'Big up to Lord Voldemort!', + body: { echo: 'Big up to Lord Voldemort!' }, }); throw new YError('E_UNEXPECTED_SUCCESS'); } catch (err) { diff --git a/packages/whook-example/src/handlers/putEcho.ts b/packages/whook-example/src/handlers/putEcho.ts index 5b095526..eeaf8935 100644 --- a/packages/whook-example/src/handlers/putEcho.ts +++ b/packages/whook-example/src/handlers/putEcho.ts @@ -1,6 +1,6 @@ import { autoHandler } from 'knifecycle'; import YHTTPError from 'yhttperror'; -import { WhookAPIHandlerDefinition } from '@whook/whook'; +import { WhookAPIHandlerDefinition, WhookResponse } from '@whook/whook'; import { OpenAPIV3 } from 'openapi-types'; import { LogService } from 'common-services'; @@ -48,7 +48,12 @@ export const definition: WhookAPIHandlerDefinition = { export default autoHandler(putEcho); -async function putEcho({ log }: { log: LogService }, { body }) { +type Echo = { echo: string }; + +async function putEcho( + { log }: { log: LogService }, + { body }: { body: Echo }, +): Promise> { if (body.echo.includes('Voldemort')) { throw new YHTTPError(400, 'E_MUST_NOT_BE_NAMED', body.echo); } diff --git a/packages/whook-http-router/package.json b/packages/whook-http-router/package.json index bed44eaa..4fd08f52 100644 --- a/packages/whook-http-router/package.json +++ b/packages/whook-http-router/package.json @@ -81,8 +81,9 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "streamtest": "^1.2.4", "typescript": "^3.7.5" }, diff --git a/packages/whook-http-server/package.json b/packages/whook-http-server/package.json index ed588423..33b1dc20 100644 --- a/packages/whook-http-server/package.json +++ b/packages/whook-http-server/package.json @@ -68,8 +68,9 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "contributors": [], diff --git a/packages/whook-http-transaction/package.json b/packages/whook-http-transaction/package.json index 71af3272..80b5cf51 100644 --- a/packages/whook-http-transaction/package.json +++ b/packages/whook-http-transaction/package.json @@ -72,8 +72,9 @@ "jsarch": "^2.0.3", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "streamtest": "^1.2.4", "typescript": "^3.7.5", "yerror": "^5.0.0" diff --git a/packages/whook-http-transaction/src/index.ts b/packages/whook-http-transaction/src/index.ts index b5e01f75..b77a99fe 100644 --- a/packages/whook-http-transaction/src/index.ts +++ b/packages/whook-http-transaction/src/index.ts @@ -39,16 +39,16 @@ export type WhookResponse< }; export type WhookHandlerFunction< - D = Dependencies, - R = WhookResponse, - O = WhookOperation, - P = Parameters + D extends Dependencies, + P extends Parameters, + R extends WhookResponse, + O = WhookOperation > = HandlerFunction; export type WhookHandler< + P = Parameters, R = WhookResponse, - O = WhookOperation | undefined, - P = Parameters + O = WhookOperation | undefined > = Handler; export type HTTPTransactionConfig = { @@ -207,7 +207,8 @@ async function initHTTPTransaction({ id: '', protocol: 'http', ip: - ([].concat(req.headers['x-forwarded-for'])[0] || '').split(',')[0] || + '' + + ([].concat(req.headers['x-forwarded-for'])[0] || '').split(',')[0] || req.connection.remoteAddress, startInBytes: req.socket.bytesRead, startOutBytes: req.socket.bytesWritten, diff --git a/packages/whook-method-override/package.json b/packages/whook-method-override/package.json index cfebc811..2a633e7c 100644 --- a/packages/whook-method-override/package.json +++ b/packages/whook-method-override/package.json @@ -65,8 +65,9 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "contributors": [], diff --git a/packages/whook-swagger-ui/package.json b/packages/whook-swagger-ui/package.json index 6be2607e..ff76959c 100644 --- a/packages/whook-swagger-ui/package.json +++ b/packages/whook-swagger-ui/package.json @@ -59,6 +59,7 @@ "axios": "^0.19.0", "ecstatic": "^4.1.2", "knifecycle": "^8.1.0", + "openapi-types": "^1.3.5", "swagger-ui-dist": "^3.24.3" }, "devDependencies": { @@ -81,8 +82,9 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "contributors": [], diff --git a/packages/whook-swagger-ui/src/handlers/__snapshots__/getOpenAPI.test.ts.snap b/packages/whook-swagger-ui/src/handlers/__snapshots__/getOpenAPI.test.ts.snap index df5a0bf7..45ef02c3 100644 --- a/packages/whook-swagger-ui/src/handlers/__snapshots__/getOpenAPI.test.ts.snap +++ b/packages/whook-swagger-ui/src/handlers/__snapshots__/getOpenAPI.test.ts.snap @@ -5,8 +5,10 @@ Object { "response": Object { "body": Object { "info": Object { + "title": "test", "version": "", }, + "openapi": "2.0", "paths": Object { "/time": Object { "get": Object { @@ -28,7 +30,6 @@ Object { }, }, }, - "swagger": "2.0", "tags": Array [ Object { "name": "public", @@ -48,8 +49,10 @@ Object { "response": Object { "body": Object { "info": Object { + "title": "test", "version": "", }, + "openapi": "2.0", "paths": Object { "/time": Object { "get": Object { @@ -60,7 +63,6 @@ Object { }, }, }, - "swagger": "2.0", "tags": Array [ Object { "name": "public", diff --git a/packages/whook-swagger-ui/src/handlers/getOpenAPI.test.ts b/packages/whook-swagger-ui/src/handlers/getOpenAPI.test.ts index 78f4cc76..3ed080a7 100644 --- a/packages/whook-swagger-ui/src/handlers/getOpenAPI.test.ts +++ b/packages/whook-swagger-ui/src/handlers/getOpenAPI.test.ts @@ -2,7 +2,11 @@ import initGetOpenAPI from './getOpenAPI'; describe('getOpenAPI', () => { const API = { - swagger: '2.0', + openapi: '2.0', + info: { + title: 'test', + version: '1', + }, paths: { '/time': { options: { diff --git a/packages/whook-swagger-ui/src/handlers/getOpenAPI.ts b/packages/whook-swagger-ui/src/handlers/getOpenAPI.ts index 59b0b0f5..26b22ab0 100644 --- a/packages/whook-swagger-ui/src/handlers/getOpenAPI.ts +++ b/packages/whook-swagger-ui/src/handlers/getOpenAPI.ts @@ -1,6 +1,7 @@ import { autoHandler } from 'knifecycle'; import { getOpenAPIOperations } from '@whook/http-router/dist/utils'; -import { WhookAPIHandlerDefinition } from '@whook/whook'; +import { WhookAPIHandlerDefinition, WhookResponse } from '@whook/whook'; +import { OpenAPIV3 } from 'openapi-types'; export default autoHandler(getOpenAPI); @@ -28,9 +29,12 @@ export const definition: WhookAPIHandlerDefinition = { } as WhookAPIHandlerDefinition; async function getOpenAPI( - { API }, - { authenticated = false, mutedMethods = ['options'] }, -) { + { API }: { API: OpenAPIV3.Document }, + { + authenticated = false, + mutedMethods = ['options'], + }: { authenticated?: boolean; mutedMethods?: string[] }, +): Promise> { const operations = await getOpenAPIOperations(API); const tagIsPresent = {}; diff --git a/packages/whook-versions/package.json b/packages/whook-versions/package.json index 2c9bd198..36764101 100644 --- a/packages/whook-versions/package.json +++ b/packages/whook-versions/package.json @@ -64,8 +64,9 @@ "jest": "^24.9.0", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "contributors": [], @@ -169,4 +170,4 @@ "test": "npm run jest", "types": "rimraf -f 'dist/**/*.d.ts' && tsc --project . --declaration --emitDeclarationOnly --outDir dist" } -} +} \ No newline at end of file diff --git a/packages/whook-versions/src/index.ts b/packages/whook-versions/src/index.ts index c0c25e08..adfecf97 100644 --- a/packages/whook-versions/src/index.ts +++ b/packages/whook-versions/src/index.ts @@ -52,7 +52,7 @@ async function handleWithVersionChecker< P extends Parameters >( { VERSIONS }: VersionsConfig, - handler: WhookHandler, + handler: WhookHandler, parameters: P, operation: O, ): Promise { diff --git a/packages/whook/package.json b/packages/whook/package.json index 57a40aba..0e2837a6 100644 --- a/packages/whook/package.json +++ b/packages/whook/package.json @@ -90,8 +90,9 @@ "jsarch": "^2.0.3", "jsdoc-to-markdown": "^5.0.3", "metapak": "^3.1.6", - "metapak-nfroidure": "9.8.1", + "metapak-nfroidure": "9.8.2", "prettier": "^1.19.1", + "rimraf": "^3.0.1", "typescript": "^3.7.5" }, "dependencies": { diff --git a/packages/whook/src/handlers/getPing.ts b/packages/whook/src/handlers/getPing.ts index 1f06bda8..f0f88bcf 100644 --- a/packages/whook/src/handlers/getPing.ts +++ b/packages/whook/src/handlers/getPing.ts @@ -36,7 +36,7 @@ async function getPing({ NODE_ENV, }: { NODE_ENV: string; -}): Promise { +}): Promise> { return { status: 200, headers: {