From c199b3195ae742495cd4b531658eed9a78b1bb82 Mon Sep 17 00:00:00 2001 From: Chris Olivier Date: Thu, 25 Oct 2018 09:25:47 +0200 Subject: [PATCH 1/3] Update index.d.ts Corrected return type of jwtDecode from "string | null" to "object | null" --- types/arangodb/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/arangodb/index.d.ts b/types/arangodb/index.d.ts index 76641f5270..5babc4a961 100644 --- a/types/arangodb/index.d.ts +++ b/types/arangodb/index.d.ts @@ -1698,7 +1698,7 @@ declare module "@arangodb/crypto" { key: string | null, token: string, noVerify?: boolean - ): string | null; + ): object | null; function md5(message: string): string; function sha1(message: string): string; function sha224(message: string): string; From 1b14cabe4aaf957f19b05e0f9fe32f1877e52b1e Mon Sep 17 00:00:00 2001 From: chrolivier Date: Thu, 1 Nov 2018 11:02:11 +0200 Subject: [PATCH 2/3] Added TypeScript definitions for queue operations --- types/arangodb/index.d.ts | 71 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/types/arangodb/index.d.ts b/types/arangodb/index.d.ts index 5babc4a961..8f54268e19 100644 --- a/types/arangodb/index.d.ts +++ b/types/arangodb/index.d.ts @@ -1440,6 +1440,77 @@ declare module "@arangodb/foxx/router" { export = createRouter; } +declare module "@arangodb/foxx/queues" { + interface QueueItem { + name: string; + mount: string; + backOff: ((failureCount: number) => number) | number | undefined; + maxFailures: number | undefined; + schema: Foxx.Schema | undefined; + preprocess: ((data: any) => any) | undefined; + } + + interface Script { + name: string; + mount: string; + } + + // TODO: flesh this out + type JobCallback = (result: any, jobData: any, job: ArangoDB.Document) => void; + + interface Job { + status: string; + queue: string; + type: Script; + failures: object[]; + runs: number; + data: any; + created: number; + modified: number; + delayUntil: number; + maxFailures: number; + repeatDelay: number; + repeatTimes: number; + repeatUntil: number; + success: string | undefined; + failure: string | undefined; + runFailures: number; + abort(): void; + } + + interface JobOptions { + success: JobCallback | undefined; + failure: JobCallback | undefined; + delayUntil: number | Date | undefined; + backOff: ((failureCount: number) => number) | number | undefined; + maxFailures: number | undefined; + repeatTimes: number | undefined; + repeatUntil: number | Date | undefined; + repeatDelay: number | undefined; + } + + interface Queue { + push(item: QueueItem, data: any): void; + get(jobId: string): ArangoDB.Document; + delete(jobId: string): boolean; + pending(script: Script | undefined): string[]; + progress(script: Script | undefined): string[]; + complete(script: Script | undefined): string[]; + failed(script: Script | undefined): string[]; + all(script: Script | undefined): string[]; + } + + function createQueue(name: string, maxWorkers?: number): Queue; + function deleteQueue(name: string): boolean; + function get(name: string): Queue; + + export { + createQueue as create, + deleteQueue as delete, + get, + }; +} + declare module "@arangodb/foxx/graphql" { import { formatError, GraphQLSchema } from "graphql"; type GraphQLModule = object; From 85b7547a3eb599aa2190cda7d382eeaabf27bc45 Mon Sep 17 00:00:00 2001 From: chrolivier Date: Thu, 1 Nov 2018 12:37:27 +0200 Subject: [PATCH 3/3] function signature fixes --- types/arangodb/index.d.ts | 46 +++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/types/arangodb/index.d.ts b/types/arangodb/index.d.ts index 8f54268e19..238cea2379 100644 --- a/types/arangodb/index.d.ts +++ b/types/arangodb/index.d.ts @@ -1444,10 +1444,10 @@ declare module "@arangodb/foxx/queues" { interface QueueItem { name: string; mount: string; - backOff: ((failureCount: number) => number) | number | undefined; - maxFailures: number | undefined; - schema: Foxx.Schema | undefined; - preprocess: ((data: any) => any) | undefined; + backOff?: ((failureCount: number) => number) | number; + maxFailures?: number; + schema?: Foxx.Schema; + preprocess?: (data: any) => any; } interface Script { @@ -1455,7 +1455,6 @@ declare module "@arangodb/foxx/queues" { mount: string; } - // TODO: flesh this out type JobCallback = (result: any, jobData: any, job: ArangoDB.Document) => void; interface Job { @@ -1472,32 +1471,32 @@ declare module "@arangodb/foxx/queues" { repeatDelay: number; repeatTimes: number; repeatUntil: number; - success: string | undefined; - failure: string | undefined; + success?: string; + failure?: string; runFailures: number; abort(): void; } interface JobOptions { - success: JobCallback | undefined; - failure: JobCallback | undefined; - delayUntil: number | Date | undefined; - backOff: ((failureCount: number) => number) | number | undefined; - maxFailures: number | undefined; - repeatTimes: number | undefined; - repeatUntil: number | Date | undefined; - repeatDelay: number | undefined; + success?: JobCallback; + failure?: JobCallback; + delayUntil?: number | Date; + backOff?: ((failureCount: number) => number) | number; + maxFailures?: number; + repeatTimes?: number; + repeatUntil?: number | Date; + repeatDelay?: number; } interface Queue { - push(item: QueueItem, data: any): void; + push(item: QueueItem, data: any, opts?: JobOptions): void; get(jobId: string): ArangoDB.Document; delete(jobId: string): boolean; - pending(script: Script | undefined): string[]; - progress(script: Script | undefined): string[]; - complete(script: Script | undefined): string[]; - failed(script: Script | undefined): string[]; - all(script: Script | undefined): string[]; + pending(script?: Script): string[]; + progress(script?: Script): string[]; + complete(script?: Script): string[]; + failed(script?: Script): string[]; + all(script?: Script): string[]; } function createQueue(name: string, maxWorkers?: number): Queue; @@ -1508,6 +1507,11 @@ declare module "@arangodb/foxx/queues" { createQueue as create, deleteQueue as delete, get, + JobOptions, + Job, + Queue, + QueueItem, + Script, }; }