mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
Add node-beanstalkd-client library types (#39434)
This commit is contained in:
parent
fc72468d0a
commit
c79792f55b
22
types/beanstalkd/beanstalkd-tests.ts
Normal file
22
types/beanstalkd/beanstalkd-tests.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import Beanstalkd from 'beanstalkd';
|
||||
|
||||
const host = '127.0.0.1';
|
||||
const port = 11300;
|
||||
const tube = 'TestTube';
|
||||
|
||||
const beanstalkd = new Beanstalkd(host, port);
|
||||
|
||||
beanstalkd.connect().then(beanstalkd => {
|
||||
const priority = 1;
|
||||
const delay = 10 * 60;
|
||||
const ttr = 5 * 60;
|
||||
|
||||
// Verbosely put a new job
|
||||
beanstalkd.use(tube).then(() => beanstalkd.put(priority, delay, ttr));
|
||||
|
||||
// Or use fancy bluebird features
|
||||
beanstalkd.call('use', tube).call('put', priority, delay, ttr);
|
||||
|
||||
// Close when done
|
||||
beanstalkd.quit();
|
||||
});
|
||||
536
types/beanstalkd/index.d.ts
vendored
Normal file
536
types/beanstalkd/index.d.ts
vendored
Normal file
@ -0,0 +1,536 @@
|
||||
// Type definitions for beanstalkd 2.2
|
||||
// Project: https://github.com/burstable/node-beanstalkd-client
|
||||
// Definitions by: Maxime LUCE <https://github.com/SomaticIT>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 3.0
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
import { Socket } from "net";
|
||||
|
||||
export type FunctionsNames<T> = { [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never }[keyof T] & string;
|
||||
export type ArgsType<T> = T extends (...args: infer A) => any ? A : never;
|
||||
export type UnPromise<T> = T extends Promise<infer R> ? R : T;
|
||||
export type MergePromise<T> = Promise<UnPromise<T>>;
|
||||
|
||||
export default class BeanstalkdClient {
|
||||
host?: string;
|
||||
port?: number;
|
||||
options?: {};
|
||||
|
||||
closed: boolean;
|
||||
protocol: BeanstalkdProtocol;
|
||||
|
||||
constructor(host?: string, port?: number, options?: {});
|
||||
|
||||
/**
|
||||
* Prepare a command which will be applied on the Client.
|
||||
*
|
||||
* @param command The command to prepare.
|
||||
* @param expected The expected reply.
|
||||
*/
|
||||
static addCommand(command: string, expected: string): void;
|
||||
|
||||
/**
|
||||
* Prepare a command which will be applied on the Client.
|
||||
*
|
||||
* @param command The command to prepare.
|
||||
* @param expected The expected reply.
|
||||
*/
|
||||
static addYamlCommand(command: string, expected: string): void;
|
||||
|
||||
/**
|
||||
* Connect the Client to the configured Server.
|
||||
*/
|
||||
connect(): Promise<this & BeanstalkdCaller> & BeanstalkdCaller;
|
||||
|
||||
/**
|
||||
* Close the Client connection.
|
||||
*/
|
||||
quit(): Promise<void>;
|
||||
|
||||
/**
|
||||
* Calling unref() on a socket will allow the program to exit if this is the only active socket in the event system.
|
||||
* If the socket is already unrefed calling unref() again will have no effect.
|
||||
*/
|
||||
unref(): void;
|
||||
|
||||
/**
|
||||
* Delete the specified job. Responds with null if successful, a string error otherwise.
|
||||
* This is the only method not named identically to its beanstalkd counterpart, because delete is a reserved word in Javascript.
|
||||
*
|
||||
* @param id The job id to delete.
|
||||
*/
|
||||
destroy(id: number): Promise<void>;
|
||||
|
||||
/**
|
||||
* Execute a command on Beanstalkd protocol.
|
||||
*
|
||||
* @param command Command name to execute.
|
||||
* @param args Arguments for the command.
|
||||
* @param writer The Writer to use for this command.
|
||||
* @param reader The Reader to use for this command.
|
||||
*/
|
||||
_command(
|
||||
command: string,
|
||||
args: any[],
|
||||
writer: BasicWriter,
|
||||
reader: BasicReader | YamlReader,
|
||||
): Promise<any>;
|
||||
|
||||
//#region Connection events
|
||||
|
||||
/**
|
||||
* Listen on given event.
|
||||
*
|
||||
* @param event The event to listen on.
|
||||
* @param listeners The listeners for this event.
|
||||
*/
|
||||
on(event: string, ...listeners: Array<(...args: any[]) => void>): void;
|
||||
/**
|
||||
* The connect event is triggered when the connection is ready.
|
||||
* The drain event is triggered when connection drains.
|
||||
* The end event is triggered when connection ends.
|
||||
* The timeout event is triggered when connection timeout.
|
||||
*
|
||||
* @param event The event to listen on.
|
||||
* @param listeners Listeners for the event.
|
||||
*/
|
||||
on(event: 'connect' | 'drain' | 'end' | 'timeout', ...listeners: Array<() => void>): void;
|
||||
/**
|
||||
* The error event is triggered when an error occured on the connection.
|
||||
*
|
||||
* @param event The event to listen on.
|
||||
* @param listeners Listeners for the error event.
|
||||
*/
|
||||
on(event: 'error', ...listeners: Array<(err: Error) => void>): void;
|
||||
/**
|
||||
* The close event is triggered when connection closes.
|
||||
*
|
||||
* @param event The event to listen on.
|
||||
* @param listener Listeners for the close event.
|
||||
*/
|
||||
on(event: 'close', ...listeners: Array<(had_error: boolean) => void>): void;
|
||||
/**
|
||||
* The data event is triggered when socket receives data.
|
||||
*
|
||||
* @param event The event to listen on.
|
||||
* @param listener Listeners for the data event.
|
||||
*/
|
||||
on(event: 'data', ...listeners: Array<(data: Buffer) => void>): void;
|
||||
/**
|
||||
* The lookup event is triggered when connection performs a lookup on a new address.
|
||||
*
|
||||
* @param event The event to listen on.
|
||||
* @param listener Listeners for the lookup event.
|
||||
*/
|
||||
on(
|
||||
event: 'lookup',
|
||||
...listeners: Array<(err: Error, address: string, family: string | number, host: string) => void>
|
||||
): void;
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Commands
|
||||
|
||||
/**
|
||||
* Use the specified tube.
|
||||
* Reponds with the name of the tube being used.
|
||||
*
|
||||
* @param tube Tube name to use.
|
||||
*/
|
||||
use(tube: string): Promise<string>;
|
||||
|
||||
/**
|
||||
* Responds with the name of the tube currently being used by the client.
|
||||
*/
|
||||
listTubeUsed(): Promise<string>;
|
||||
|
||||
/**
|
||||
* Submit a job with the specified priority (smaller integers are higher priority), delay in seconds, and allowed time-to-run in seconds.
|
||||
* The payload contains the job data the server will return to clients reserving jobs; it can be either a Buffer object or a string.
|
||||
* No processing is done on the data. Responds with the id of the newly-created job.
|
||||
*
|
||||
* @param priority Priority of the job.
|
||||
* @param delay Delay of the job in seconds.
|
||||
* @param ttr Time-to-run of the job in seconds.
|
||||
* @param payload The job payload.
|
||||
*/
|
||||
put(priority: number, delay: number, ttr: number, payload?: string | Buffer): Promise<string>;
|
||||
|
||||
/**
|
||||
* Peek at the data for the job at the top of the ready queue of the tube currently in use.
|
||||
* Responds with the job id and payload of the next job, or 'NOT_FOUND' if there are no qualifying jobs in the tube.
|
||||
* The payload is a Buffer object.
|
||||
*/
|
||||
peekReady(): Promise<[string, Buffer]>;
|
||||
|
||||
/**
|
||||
* Peek at the data for the delayed job with the shortest delay in the tube currently in use.
|
||||
* Responds with the job id and payload of the next job, or 'NOT_FOUND' in err if there are no qualifying jobs in the tube.
|
||||
* The payload is a Buffer object.
|
||||
*/
|
||||
peekDelayed(): Promise<[string, Buffer]>;
|
||||
|
||||
/**
|
||||
* Peek at the data for the next buried job in the tube currently in use.
|
||||
* Responds with the job id and payload of the next job, or 'NOT_FOUND' in err if there are no qualifying jobs in the tube.
|
||||
* The payload is a Buffer object.
|
||||
*/
|
||||
peekBuried(): Promise<[string, Buffer]>;
|
||||
|
||||
/**
|
||||
* Watch the named tube.
|
||||
* Responds with the number of tubes currently watched by the client.
|
||||
*
|
||||
* @param tube The Tube name to watch.
|
||||
*/
|
||||
watch(tube: number): Promise<number>;
|
||||
|
||||
/**
|
||||
* Ignore the named tube.
|
||||
* Responds with the number of tubes currently watched by the client.
|
||||
*
|
||||
* @param tube The Tube name to ignore.
|
||||
*/
|
||||
ignore(tube: number): Promise<number>;
|
||||
|
||||
/**
|
||||
* Responds with an array containing the names of the tubes currently watched by the client.
|
||||
*/
|
||||
listTubeWatched(): Promise<string[]>;
|
||||
|
||||
/**
|
||||
* Reserve a job.
|
||||
* Responds with the id and the job data.
|
||||
* The payload is a Buffer object.
|
||||
*/
|
||||
reserve(): Promise<[string, Buffer]>;
|
||||
|
||||
/**
|
||||
* Reserve a job, waiting the specified number of seconds before timing out.
|
||||
* err contains the string "TIMED_OUT" if the specified time elapsed before a job became available.
|
||||
* Payload is a buffer.
|
||||
*
|
||||
* @param seconds Timeout in seconds.
|
||||
*/
|
||||
reserveWithTimeout(seconds: number): Promise<void>;
|
||||
|
||||
/**
|
||||
* Inform the server that the client is still processing a job, thus requesting more time to work on it.
|
||||
*
|
||||
* @param id The job id to reset TTR on.
|
||||
*/
|
||||
touch(id: number): Promise<void>;
|
||||
|
||||
/**
|
||||
* Delete the specified job. Responds with null if successful, a string error otherwise.
|
||||
* This is the only method not named identically to its beanstalkd counterpart, because delete is a reserved word in Javascript.
|
||||
*
|
||||
* @param id The job id to delete.
|
||||
*/
|
||||
delete(id: number): Promise<void>;
|
||||
|
||||
/**
|
||||
* Release the specified job and assign it the given priority and delay (in seconds).
|
||||
*
|
||||
* @param id The job id to release.
|
||||
* @param priority The new priority in seconds.
|
||||
* @param delay The new delay in seconds.
|
||||
*/
|
||||
release(id: number, priority: number, delay: number): Promise<void>;
|
||||
|
||||
/**
|
||||
* Bury the specified job and assign it the given priority. Responds with null if successful, a string error otherwise.
|
||||
*
|
||||
* @param id The job id to bury.
|
||||
* @param priority The new priority to assign.
|
||||
*/
|
||||
bury(id: number, priority: number): Promise<void>;
|
||||
|
||||
/**
|
||||
* Kick at most maxToKick delayed and buried jobs back into the active queue.
|
||||
* Responds with the number of jobs kicked.
|
||||
*
|
||||
* @param maxToKick Max number of job to kick and bury.
|
||||
*/
|
||||
kick(maxToKick: number): Promise<number>;
|
||||
|
||||
/**
|
||||
* Kick the specified job id. Responds with NOT_FOUND if the job was not found.
|
||||
* Supported in beanstalkd versions >= 1.6.
|
||||
*
|
||||
* @param id The job id to kick.
|
||||
*/
|
||||
kickJob(id: number): Promise<void>;
|
||||
|
||||
/**
|
||||
* Peek at the data for the specified job.
|
||||
* Payload is a Buffer object.
|
||||
*
|
||||
* @param id The job id to peek.
|
||||
*/
|
||||
peek(id: number): Promise<Buffer>;
|
||||
|
||||
/**
|
||||
* Pause the named tube for the given number of seconds.
|
||||
* No new jobs may be reserved from the tube while it is paused.
|
||||
*
|
||||
* @param tube The name of the tube to pause.
|
||||
* @param delay The pause duration (in seconds).
|
||||
*/
|
||||
pauseTube(tube: string, delay: number): Promise<void>;
|
||||
|
||||
/**
|
||||
* List all the existing tubes. Responds with an array of tube names.
|
||||
*/
|
||||
listTubes(): Promise<string[]>;
|
||||
|
||||
/**
|
||||
* Request statistics for the specified job.
|
||||
* Responds with a hash containing information about the job.
|
||||
*
|
||||
* @param id The job id to request stats for.
|
||||
*/
|
||||
statsJob(id: number): Promise<BeanstalkdJobStats>;
|
||||
|
||||
/**
|
||||
* Request statistics for the specified tube.
|
||||
* Responds with a hash containing information about the tube.
|
||||
*
|
||||
* @param tube The name of the Tube to request stats for.
|
||||
*/
|
||||
statsTube(tube: string): Promise<BeanstalkdTubeStats>;
|
||||
|
||||
/**
|
||||
* Request statistics for the beanstalkd server.
|
||||
* Responds with a hash containing information about the server.
|
||||
*/
|
||||
stats(): Promise<BeanstalkdStats>;
|
||||
|
||||
//#endregion
|
||||
}
|
||||
|
||||
export interface BeanstalkdCaller {
|
||||
call<K extends Exclude<FunctionsNames<BeanstalkdClient>, "on" | "unref" | "call">>(
|
||||
fn: K,
|
||||
...args: ArgsType<Required<BeanstalkdClient>[K]>
|
||||
): MergePromise<ReturnType<Required<BeanstalkdClient>[K]>> & BeanstalkdCaller;
|
||||
}
|
||||
|
||||
export interface BeanstalkdProtocol {
|
||||
add(signature: string, key: string): void;
|
||||
addCommand(signature: string): void;
|
||||
addType(key: string, type: any): void;
|
||||
addReply(signature: string): void;
|
||||
|
||||
reset(): void;
|
||||
|
||||
build(identifier: string, args: any[], key: string): Buffer;
|
||||
buildCommand(command: string, args: any[]): Buffer;
|
||||
buildreply(reply: string, args: any[]): Buffer;
|
||||
buildPut(args: any[]): Buffer;
|
||||
|
||||
parse(buffer: Buffer, key: string): [Buffer | null, BeanstalkdProtocolCommand | BeanstalkdProtocolReply | null];
|
||||
parseCommand(buffer: Buffer): [Buffer | null, BeanstalkdProtocolCommand | null];
|
||||
parseReply(buffer: Buffer): [Buffer | null, BeanstalkdProtocolReply | null];
|
||||
}
|
||||
|
||||
export interface BeanstalkdProtocolCommand {
|
||||
command: string;
|
||||
args: any[];
|
||||
}
|
||||
|
||||
export interface BeanstalkdProtocolReply {
|
||||
reply: string;
|
||||
args: any[];
|
||||
}
|
||||
|
||||
export type BeanstalkdJobState = "ready" | "delayed" | "reserved" | "buried";
|
||||
|
||||
export interface BeanstalkdJobStats {
|
||||
/** The job id. */
|
||||
id: string;
|
||||
/** The name of the tube that contains this job. */
|
||||
tube: string;
|
||||
/** The job state. */
|
||||
state: string;
|
||||
/** The priority value set by the put, release, or bury commands. */
|
||||
pri: number;
|
||||
/** The time in seconds since the put command that created this job. */
|
||||
age: number;
|
||||
/** The integer number of seconds to wait before putting this job in the ready queue. */
|
||||
delay: number;
|
||||
/** Time to run: The integer number of seconds a worker is allowed to run this job. */
|
||||
ttr: number;
|
||||
/**
|
||||
* The number of seconds left until the server puts this job into the ready queue.
|
||||
* This number is only meaningful if the job is reserved or delayed.
|
||||
* If the job is reserved and this amount of time elapses before its state changes, it is considered to have timed out.
|
||||
*/
|
||||
"time-left": number;
|
||||
/**
|
||||
* The number of the earliest binlog file containing this job.
|
||||
* If -b wasn't used, this will be 0.
|
||||
*/
|
||||
file: number;
|
||||
/** The number of times this job has been reserved. */
|
||||
reserves: number;
|
||||
/** The number of times this job has timed out during a reservation. */
|
||||
timeouts: number;
|
||||
/** The number of times a client has released this job from a reservation. */
|
||||
releases: number;
|
||||
/** The number of times this job has been buried. */
|
||||
buries: number;
|
||||
/** The number of times this job has been kicked. */
|
||||
kicks: number;
|
||||
}
|
||||
|
||||
export interface BeanstalkdTubeStats {
|
||||
/** The tube's name. */
|
||||
name: string;
|
||||
/** The number of ready jobs with priority < 1024 in this tube. */
|
||||
"current-jobs-urgent": number;
|
||||
/** The number of jobs in the ready queue in this tube. */
|
||||
"current-jobs-ready": number;
|
||||
/** The number of jobs reserved by all clients in this tube. */
|
||||
"current-jobs-reserved": number;
|
||||
/** The number of delayed jobs in this tube. */
|
||||
"current-jobs-delayed": number;
|
||||
/** The number of buried jobs in this tube. */
|
||||
"current-jobs-buried": number;
|
||||
/** The cumulative count of jobs created in this tube in the current beanstalkd process. */
|
||||
"total-jobs": number;
|
||||
/** The number of open connections that are currently using this tube. */
|
||||
"current-using": number;
|
||||
/** The number of open connections that have issued a reserve command while watching this tube but not yet received a response. */
|
||||
"current-waiting": number;
|
||||
/** The number of open connections that are currently watching this tube. */
|
||||
"current-watching": number;
|
||||
/** The number of seconds the tube has been paused for. */
|
||||
pause: number;
|
||||
/** The cumulative number of delete commands for this tube. */
|
||||
"cmd-delete": number;
|
||||
/** The cumulative number of pause-tube commands for this tube. */
|
||||
"cmd-pause-tube": number;
|
||||
/** The number of seconds until the tube is un-paused. */
|
||||
"pause-time-left": number;
|
||||
}
|
||||
|
||||
export interface BeanstalkdStats {
|
||||
/** The number of ready jobs with priority < 1024. */
|
||||
"current-jobs-urgent": number;
|
||||
/** The number of jobs in the ready queue. */
|
||||
"current-jobs-ready": number;
|
||||
/** The number of jobs reserved by all clients. */
|
||||
"current-jobs-reserved": number;
|
||||
/** The number of delayed jobs. */
|
||||
"current-jobs-delayed": number;
|
||||
/** The number of buried jobs. */
|
||||
"current-jobs-buried": number;
|
||||
/** The cumulative number of put commands. */
|
||||
"cmd-put": number;
|
||||
/** The cumulative number of peek commands. */
|
||||
"cmd-peek": number;
|
||||
/** The cumulative number of peek-ready commands. */
|
||||
"cmd-peek-ready": number;
|
||||
/** The cumulative number of peek-delayed commands. */
|
||||
"cmd-peek-delayed": number;
|
||||
/** The cumulative number of peek-buried commands. */
|
||||
"cmd-peek-buried": number;
|
||||
/** The cumulative number of reserve commands. */
|
||||
"cmd-reserve": number;
|
||||
/** The cumulative number of use commands. */
|
||||
"cmd-use": number;
|
||||
/** The cumulative number of watch commands. */
|
||||
"cmd-watch": number;
|
||||
/** The cumulative number of ignore commands. */
|
||||
"cmd-ignore": number;
|
||||
/** The cumulative number of delete commands. */
|
||||
"cmd-delete": number;
|
||||
/** The cumulative number of release commands. */
|
||||
"cmd-release": number;
|
||||
/** The cumulative number of bury commands. */
|
||||
"cmd-bury": number;
|
||||
/** The cumulative number of kick commands. */
|
||||
"cmd-kick": number;
|
||||
/** The cumulative number of stats commands. */
|
||||
"cmd-stats": number;
|
||||
/** The cumulative number of stats-job commands. */
|
||||
"cmd-stats-job": number;
|
||||
/** The cumulative number of stats-tube commands. */
|
||||
"cmd-stats-tube": number;
|
||||
/** The cumulative number of list-tubes commands. */
|
||||
"cmd-list-tubes": number;
|
||||
/** The cumulative number of list-tube-used commands. */
|
||||
"cmd-list-tube-used": number;
|
||||
/** The cumulative number of list-tubes-watched commands. */
|
||||
"cmd-list-tubes-watched": number;
|
||||
/** The cumulative number of pause-tube commands. */
|
||||
"cmd-pause-tube": number;
|
||||
/** The cumulative count of times a job has timed out. */
|
||||
"job-timeouts": number;
|
||||
/** The cumulative count of jobs created. */
|
||||
"total-jobs": number;
|
||||
/** The maximum number of bytes in a job. */
|
||||
"max-job-size": number;
|
||||
/** The number of currently-existing tubes. */
|
||||
"current-tubes": number;
|
||||
/** The number of currently open connections. */
|
||||
"current-connections": number;
|
||||
/** The number of open connections that have each issued at least one put command. */
|
||||
"current-producers": number;
|
||||
/** The number of open connections that have each issued at least one reserve command. */
|
||||
"current-workers": number;
|
||||
/** The number of open connections that have issued a reserve command but not yet received a response. */
|
||||
"current-waiting": number;
|
||||
/** The cumulative count of connections. */
|
||||
"total-connections": number;
|
||||
/** The process id of the server. */
|
||||
pid: string;
|
||||
/** The version string of the server. */
|
||||
version: string;
|
||||
/** The cumulative user CPU time of this process in seconds and microseconds. */
|
||||
"rusage-utime": number;
|
||||
/** The cumulative system CPU time of this process in seconds and microseconds. */
|
||||
"rusage-stime": number;
|
||||
/** The number of seconds since this server process started running. */
|
||||
uptime: number;
|
||||
/** The index of the oldest binlog file needed to store the current jobs. */
|
||||
"binlog-oldest-index": number;
|
||||
/** The index of the current binlog file being written to. If binlog is not active this value will be 0. */
|
||||
"binlog-current-index": number;
|
||||
/** The maximum size in bytes a binlog file is allowed to get before a new binlog file is opened. */
|
||||
"binlog-max-size": number;
|
||||
/** The cumulative number of records written to the binlog. */
|
||||
"binlog-records-written": number;
|
||||
/** The cumulative number of records written as part of compaction. */
|
||||
"binlog-records-migrated": number;
|
||||
/** Set to "true" if the server is in drain mode, "false" otherwise. */
|
||||
draining: boolean;
|
||||
/** A random id string for this server process, generated every time beanstalkd process starts. */
|
||||
id: string;
|
||||
/** The hostname of the machine as determined by uname. */
|
||||
hostname: string;
|
||||
/** The OS version as determined by uname */
|
||||
os: string;
|
||||
/** The machine architecture as determined by uname */
|
||||
platform: string;
|
||||
}
|
||||
|
||||
export interface BasicReader {
|
||||
parseData(data: string): any;
|
||||
handle(protocol: BeanstalkdProtocol, data: any, resolve: (data?: any) => void, reject: (err?: any) => any): Buffer;
|
||||
}
|
||||
|
||||
export interface YamlReader extends BasicReader {
|
||||
parseData(data: string): object;
|
||||
}
|
||||
|
||||
export interface Writer {
|
||||
command: string;
|
||||
}
|
||||
|
||||
export interface BasicWriter extends Writer {
|
||||
handle(protocol: BeanstalkdProtocol, connection: Socket, ...args: any[]): Promise<any>;
|
||||
}
|
||||
23
types/beanstalkd/tsconfig.json
Normal file
23
types/beanstalkd/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"beanstalkd-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/beanstalkd/tslint.json
Normal file
1
types/beanstalkd/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Loading…
Reference in New Issue
Block a user