Skip to content

Commit

Permalink
fix(core): Fix types for registering adapters and persisters (#435)
Browse files Browse the repository at this point in the history
  • Loading branch information
offirgolan authored Dec 7, 2021
1 parent 7536915 commit cc2fa19
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 4 deletions.
1 change: 1 addition & 0 deletions packages/@pollyjs/adapter/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export default class Adapter<
> {
static readonly id: string;
static readonly type: string;
constructor(polly: Polly);
polly: Polly;
isConnected: boolean;
readonly defaultOptions: TOptions;
Expand Down
10 changes: 6 additions & 4 deletions packages/@pollyjs/core/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import Adapter from '@pollyjs/adapter';
import Persister from '@pollyjs/persister';
import { Logger, LogLevelDesc } from 'loglevel';

type Newable<T> = { new (...args: any[]): T };

export type MODE = 'record' | 'replay' | 'passthrough' | 'stopped';
export type ACTION = 'record' | 'replay' | 'intercept' | 'passthrough';
export type EXPIRY_STRATEGY = 'record' | 'warn' | 'error';
Expand All @@ -16,7 +18,7 @@ export type Headers = Record<string, string | string[]>;
export interface PollyConfig {
mode?: MODE | undefined;

adapters?: Array<string | typeof Adapter> | undefined;
adapters?: Array<string | Newable<Adapter>> | undefined;
adapterOptions?:
| {
fetch?: { context?: any } | undefined;
Expand All @@ -28,7 +30,7 @@ export interface PollyConfig {
}
| undefined;

persister?: string | typeof Persister | undefined;
persister?: string | Newable<Persister> | undefined;
persisterOptions?:
| {
keepUnusedRequests?: boolean | undefined;
Expand Down Expand Up @@ -259,8 +261,8 @@ export class PollyLogger {
export type PollyEvent = 'create' | 'stop' | 'register';
export type PollyEventListener = (poll: Polly) => void;
export class Polly {
static register(Factory: typeof Adapter | typeof Persister): void;
static unregister(Factory: typeof Adapter | typeof Persister): void;
static register<T extends Adapter | Persister>(Factory: Newable<T>): void;
static unregister<T extends Adapter | Persister>(Factory: Newable<T>): void;
static on(event: PollyEvent, listener: PollyEventListener): void;
static off(event: PollyEvent, listener: PollyEventListener): void;
static once(event: PollyEvent, listener: PollyEventListener): void;
Expand Down
1 change: 1 addition & 0 deletions packages/@pollyjs/persister/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ export interface Har {
export default class Persister<TOptions extends {} = {}> {
static readonly id: string;
static readonly type: string;
constructor(polly: Polly);
readonly defaultOptions: TOptions;
readonly options: TOptions;
private pending: Map<string, { name: string; recordings: Request[] }>;
Expand Down

0 comments on commit cc2fa19

Please sign in to comment.