Skip to content

Commit

Permalink
Add option types
Browse files Browse the repository at this point in the history
  • Loading branch information
joshbetz committed Dec 10, 2022
1 parent bf6c99b commit a1fe664
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 5 deletions.
8 changes: 6 additions & 2 deletions src/hashpool.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
import { EventEmitter } from 'events';
import Pool from './pool';
import Pool, { type PoolOptions } from './pool';
const HashRing = require( 'hashring' );

export type HashPoolOptions = {
retry: ( retries: number ) => number;
} & PoolOptions;

type PoolNode = {
pool: Pool;
reconnecting: boolean;
};

export default class HashPool extends EventEmitter {
opts: any;
hashring: typeof HashRing;
nodes: Map<string, PoolNode>;
isReady: boolean;
retries: number;
opts: HashPoolOptions;

constructor( nodes: Array<string>, opts?: any ) {
super();
Expand Down
7 changes: 6 additions & 1 deletion src/memcached.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
import { createConnection, type Socket } from 'net';
import { EventEmitter } from 'events';

export type MemcachedOptions = {
prefix: string;
socketTimeout: number;
};

export default class Memcached extends EventEmitter {
client: Socket;
isReady: boolean;
opts: any;
opts: MemcachedOptions;

constructor( port: number, host: string, opts?: any ) {
super();
Expand Down
19 changes: 17 additions & 2 deletions src/pool.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,25 @@
import { createPool, type Pool as GenericPool } from 'generic-pool';
import { EventEmitter } from 'events';
import Memcached from './memcached';
import Memcached, { type MemcachedOptions } from './memcached';

export type PoolOptions = {
max: number;
min: number;
acquireTimeoutMillis: number;
destroyTimeoutMillis: number;
maxWaitingClients: number;
idleTimeoutMillis: number;

// internal
forwardPoolErrors: boolean;
autostart: boolean;
fifo: boolean;
evictionRunIntervalMillis: number;
} & MemcachedOptions;

export default class Pool extends EventEmitter {
opts: any;
pool: GenericPool<Memcached>;
opts: PoolOptions;

constructor( port: number, host: string, opts?: any ) {
super();
Expand Down

0 comments on commit a1fe664

Please sign in to comment.