From f966375bc72cd109d3f066ff8750a80f2e5dd339 Mon Sep 17 00:00:00 2001 From: Offir Golan Date: Wed, 25 Sep 2019 21:50:29 +0200 Subject: [PATCH] @pollyjs/node-server types (#38597) --- types/pollyjs__node-server/index.d.ts | 43 +++++++++++++++++ .../pollyjs__node-server-tests.ts | 46 +++++++++++++++++++ types/pollyjs__node-server/tsconfig.json | 28 +++++++++++ types/pollyjs__node-server/tslint.json | 1 + 4 files changed, 118 insertions(+) create mode 100644 types/pollyjs__node-server/index.d.ts create mode 100644 types/pollyjs__node-server/pollyjs__node-server-tests.ts create mode 100644 types/pollyjs__node-server/tsconfig.json create mode 100644 types/pollyjs__node-server/tslint.json diff --git a/types/pollyjs__node-server/index.d.ts b/types/pollyjs__node-server/index.d.ts new file mode 100644 index 0000000000..f5b11d69cc --- /dev/null +++ b/types/pollyjs__node-server/index.d.ts @@ -0,0 +1,43 @@ +// Type definitions for @pollyjs/node-server 2.6 +// Project: https://github.com/netflix/pollyjs/tree/master/packages/@pollyjs/node-server +// Definitions by: Offir Golan +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.4 + +import * as http from 'http'; +import * as express from 'express'; + +export interface Config { + port: number; + quiet: boolean; + recordingSizeLimit: string; + recordingsDir: string; + apiNamespace: string; +} + +export const Defaults: Config; + +export interface APIResponse { + status: number; + body?: any; +} + +export class API { + constructor(options: Pick); + getRecordings(recording: string): APIResponse; + saveRecording(recording: string, data: any): APIResponse; + deleteRecording(recording: string): APIResponse; + filenameFor(recording: string): string; + respond(status: number, data?: any): APIResponse; +} + +export class Server { + config: Config; + app: express.Express; + server?: http.Server; + + constructor(options?: Partial); + listen(port?: number, host?: string): http.Server; +} + +export function registerExpressAPI(app: express.Express, config: Partial): void; diff --git a/types/pollyjs__node-server/pollyjs__node-server-tests.ts b/types/pollyjs__node-server/pollyjs__node-server-tests.ts new file mode 100644 index 0000000000..29fc730884 --- /dev/null +++ b/types/pollyjs__node-server/pollyjs__node-server-tests.ts @@ -0,0 +1,46 @@ +import * as express from 'express'; +import { API, Defaults, Server, registerExpressAPI } from '@pollyjs/node-server'; + +const api = new API({ recordingsDir: 'recordings' }); + +api.getRecordings('id-123'); +api.saveRecording('id-123', {}); +api.deleteRecording('id-123'); +api.filenameFor('id-123'); +api.respond(200); +api.respond(200, {}); + +Defaults.apiNamespace; +Defaults.port; +Defaults.quiet; +Defaults.recordingSizeLimit; +Defaults.recordingsDir; + +new Server(); +new Server(Defaults); +new Server({ port: 4000, quiet: false }); +new Server({ + port: 4000, + quiet: false, + recordingSizeLimit: '100mb', + recordingsDir: 'recordings', + apiNamespace: '/api/v2', +}); + +const server = new Server(); + +server.listen(); +server.listen(3000); +server.listen(3000, 'http://localhost'); + +server.listen().on('close', () => {}); + +server.config; +server.app; +server.server; + +const app = express(); + +registerExpressAPI(app, {}); +registerExpressAPI(app, { port: 4200 }); +registerExpressAPI(app, Defaults); diff --git a/types/pollyjs__node-server/tsconfig.json b/types/pollyjs__node-server/tsconfig.json new file mode 100644 index 0000000000..06162d9ffa --- /dev/null +++ b/types/pollyjs__node-server/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@pollyjs/node-server": [ + "pollyjs__node-server" + ] + } + }, + "files": [ + "index.d.ts", + "pollyjs__node-server-tests.ts" + ] +} diff --git a/types/pollyjs__node-server/tslint.json b/types/pollyjs__node-server/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/pollyjs__node-server/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }