@@ -23,11 +23,23 @@ import {
2323 createJobUpdateFC ,
2424 createJobLogAddFC ,
2525} from './mutation' ;
26- import { createMutationFC , wrapQueueArgs } from './helpers' ;
26+ import { wrapMutationFC , wrapQueueArgs } from './helpers' ;
2727
2828export function composeBull ( opts : Options & { schemaComposer ?: SchemaComposer < any > } ) {
2929 const sc = opts ?. schemaComposer || schemaComposer ;
3030
31+ type FC = ObjectTypeComposerFieldConfigAsObjectDefinition < any , any > ;
32+
33+ type Middleare = ( fc : FC , sc : SchemaComposer < any > , opts : Options ) => FC ;
34+
35+ type Creator = ( sc : SchemaComposer < any > , opts : Options ) => FC ;
36+
37+ type Wrapper = ( creator : Creator ) => FC ;
38+
39+ type ComposeFCResult = ( ...args : Middleare [ ] ) => Wrapper ;
40+
41+ type ComposeFC = ( sc : SchemaComposer < any > , opts : Options ) => ComposeFCResult ;
42+
3143 /**
3244 * Compose several FC creator with middlewares
3345 * Eg. composeFC(sc, opts)(createQueueKeysFC, wrapQueueArgs, wrapOtherMiddleware)
@@ -37,18 +49,8 @@ export function composeBull(opts: Options & { schemaComposer?: SchemaComposer<an
3749 * fc = wrapOtherMiddleware(fc, sc, opts)
3850 * return fc;
3951 */
40- function composeFC ( sc : SchemaComposer < any > , opts : Options ) {
41- return (
42- creator : (
43- sc : SchemaComposer < any > ,
44- opts : Options
45- ) => ObjectTypeComposerFieldConfigAsObjectDefinition < any , any > ,
46- ...middlewares : ( (
47- fc : ObjectTypeComposerFieldConfigAsObjectDefinition < any , any > ,
48- sc : SchemaComposer < any > ,
49- opts : Options
50- ) => ObjectTypeComposerFieldConfigAsObjectDefinition < any , any > ) [ ]
51- ) : ObjectTypeComposerFieldConfigAsObjectDefinition < any , any > => {
52+ function composeFC ( sc : SchemaComposer < any > , opts : Options ) : ComposeFCResult {
53+ return ( ...middlewares : Middleare [ ] ) : Wrapper => ( creator : Creator ) : FC => {
5254 let fc = creator ( sc , opts ) ;
5355 for ( let i = 0 ; i < middlewares . length ; i ++ ) {
5456 fc = middlewares [ i ] ( fc , sc , opts ) ;
@@ -57,43 +59,34 @@ export function composeBull(opts: Options & { schemaComposer?: SchemaComposer<an
5759 } ;
5860 }
5961
60- const wrap = composeFC ( sc , opts ) ;
62+ const wrapQuery = composeFC ( sc , opts ) ( wrapQueueArgs ) ;
63+ const wrapMutation = composeFC ( sc , opts ) ( wrapMutationFC , wrapQueueArgs ) ;
6164
6265 return {
6366 QueueTC : getQueueTC ( sc , opts ) ,
6467 JobTC : getJobTC ( sc , opts ) ,
6568 queryFields : {
66- queueKeys : wrap ( createQueueKeysFC , wrapQueueArgs ) ,
67- queues : predefineQueueArgs ( createQueuesFC ( sc , opts ) , opts ) ,
68- queue : predefineQueueArgs ( createQueueFC ( sc , opts ) , opts ) ,
69- job : predefineQueueArgs ( createJobFC ( sc , opts ) , opts ) ,
69+ queueKeys : wrapQuery ( createQueueKeysFC ) ,
70+ queues : wrapQuery ( createQueuesFC ) ,
71+ queue : wrapQuery ( createQueueFC ) ,
72+ job : wrapQuery ( createJobFC ) ,
7073 } ,
7174 mutationFields : {
72- queueClean : wrap ( createQueueCleanFC , createMutationFC , predefineQueueArgs ) ,
73- // queueClean: predefineQueueArgs(createMutationFC(createQueueCleanFC, sc, opts), opts),
74- queueDrain : predefineQueueArgs ( createMutationFC ( createQueueDrainFC , sc , opts ) , opts ) ,
75- queuePause : predefineQueueArgs ( createMutationFC ( createQueuePauseFC , sc , opts ) , opts ) ,
76- queueResume : predefineQueueArgs ( createMutationFC ( createQueueResumeFC , sc , opts ) , opts ) ,
77- queueRemoveRepeatable : predefineQueueArgs (
78- createMutationFC ( createRemoveRepeatableFC , sc , opts ) ,
79- opts
80- ) ,
81- jobAdd : predefineQueueArgs ( createMutationFC ( createJobAddFC , sc , opts ) , opts ) ,
82- jobAddBulk : predefineQueueArgs ( createMutationFC ( createJobAddBulkFC , sc , opts ) , opts ) ,
83- jobAddRepeatableCron : predefineQueueArgs (
84- createMutationFC ( createJobAddCronFC , sc , opts ) ,
85- opts
86- ) ,
87- jobAddRepeatableEvery : predefineQueueArgs (
88- createMutationFC ( createJobAddEveryFC , sc , opts ) ,
89- opts
90- ) ,
91- jobDiscard : predefineQueueArgs ( createMutationFC ( createJobDiscardFC , sc , opts ) , opts ) ,
92- jobPromote : predefineQueueArgs ( createMutationFC ( createjobPromoteFC , sc , opts ) , opts ) ,
93- jobRemove : predefineQueueArgs ( createMutationFC ( createJobRremoveFC , sc , opts ) , opts ) ,
94- jobRetry : predefineQueueArgs ( createMutationFC ( createJobRetryFC , sc , opts ) , opts ) ,
95- jobUpdate : predefineQueueArgs ( createMutationFC ( createJobUpdateFC , sc , opts ) , opts ) ,
96- jobLogAdd : predefineQueueArgs ( createMutationFC ( createJobLogAddFC , sc , opts ) , opts ) ,
75+ queueClean : wrapMutation ( createQueueCleanFC ) ,
76+ queueDrain : wrapMutation ( createQueueDrainFC ) ,
77+ queuePause : wrapMutation ( createQueuePauseFC ) ,
78+ queueResume : wrapMutation ( createQueueResumeFC ) ,
79+ queueRemoveRepeatable : wrapMutation ( createRemoveRepeatableFC ) ,
80+ jobAdd : wrapMutation ( createJobAddFC ) ,
81+ jobAddBulk : wrapMutation ( createJobAddBulkFC ) ,
82+ jobAddRepeatableCron : wrapMutation ( createJobAddCronFC ) ,
83+ jobAddRepeatableEvery : wrapMutation ( createJobAddEveryFC ) ,
84+ jobDiscard : wrapMutation ( createJobDiscardFC ) ,
85+ jobPromote : wrapMutation ( createjobPromoteFC ) ,
86+ jobRemove : wrapMutation ( createJobRremoveFC ) ,
87+ jobRetry : wrapMutation ( createJobRetryFC ) ,
88+ jobUpdate : wrapMutation ( createJobUpdateFC ) ,
89+ jobLogAdd : wrapMutation ( createJobLogAddFC ) ,
9790 } ,
9891 } ;
9992}
0 commit comments