Skip to content

Commit 510e57f

Browse files
committed
refactor: after review
1 parent efa9411 commit 510e57f

File tree

6 files changed

+30
-60
lines changed

6 files changed

+30
-60
lines changed

example/src/config.ts

Lines changed: 0 additions & 14 deletions
This file was deleted.

example/src/demo_queues/fetchMetrics.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
import { BULL_REDIS_URI, BULL_HOST_ID } from '../config';
21
import { Queue, Worker, QueueScheduler } from 'bullmq';
32
import { createBullConnection } from '../connectRedis';
43

5-
if (!BULL_REDIS_URI) {
6-
throw new Error(`Env var BULL_REDIS_URI is empty. Cannot init task ${__filename}.`);
7-
}
8-
94
export const queueSettings = {
10-
hostId: BULL_HOST_ID,
115
name: 'fetch_metrics',
126
prefix: 'bull.demo',
137
};
@@ -62,7 +56,6 @@ metricsWorker.on('failed', (job, err) => {
6256

6357
export default {
6458
name: queueSettings.name as string,
65-
hostId: queueSettings.hostId as string,
6659
prefix: queueSettings.prefix as string,
6760
bullQueue: metricsQueue,
6861
jobNames: ['fetch_metrics_every_5m'],

src/composeBull.ts

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
import {
2-
schemaComposer,
3-
SchemaComposer,
4-
ObjectTypeComposerFieldConfigAsObjectDefinition,
5-
} from 'graphql-compose';
1+
import { schemaComposer, SchemaComposer } from 'graphql-compose';
62
import { Options } from './definitions';
73
import { getQueueTC, getJobTC } from './types';
84
import { createQueuesFC, createQueueKeysFC, createQueueFC, createJobFC } from './query';
@@ -23,42 +19,11 @@ import {
2319
createJobUpdateFC,
2420
createJobLogAddFC,
2521
} from './mutation';
26-
import { wrapMutationFC, wrapQueueArgs } from './helpers';
22+
import { wrapMutationFC, wrapQueueArgs, composeFC } from './helpers';
2723

2824
export function composeBull(opts: Options & { schemaComposer?: SchemaComposer<any> }) {
2925
const sc = opts?.schemaComposer || schemaComposer;
3026

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-
43-
/**
44-
* Compose several FC creator with middlewares
45-
* Eg. composeFC(sc, opts)(createQueueKeysFC, wrapQueueArgs, wrapOtherMiddleware)
46-
* Will work like the following code:
47-
* let fc = createQueueKeysFC(sc, opts);
48-
* fc = wrapQueueArgs(fc, sc, opts)
49-
* fc = wrapOtherMiddleware(fc, sc, opts)
50-
* return fc;
51-
*/
52-
function composeFC(sc: SchemaComposer<any>, opts: Options): ComposeFCResult {
53-
return (...middlewares: Middleare[]): Wrapper => (creator: Creator): FC => {
54-
let fc = creator(sc, opts);
55-
for (let i = 0; i < middlewares.length; i++) {
56-
fc = middlewares[i](fc, sc, opts);
57-
}
58-
return fc;
59-
};
60-
}
61-
6227
const wrapQuery = composeFC(sc, opts)(wrapQueueArgs);
6328
const wrapMutation = composeFC(sc, opts)(wrapMutationFC, wrapQueueArgs);
6429

src/definitions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ export type Options = {
55
typePrefix: string;
66
jobDataTC?: string | ObjectTypeComposer<any, any>;
77
queue?: {
8-
name: string;
9-
prefix: string;
8+
name?: string;
9+
prefix?: string;
1010
};
1111
redis?: RedisOptions | IORedis.Redis;
1212
};

src/helpers/composeFC.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { SchemaComposer, ObjectTypeComposerFieldConfigAsObjectDefinition } from 'graphql-compose';
2+
import { Options } from '../definitions';
3+
4+
type FC = ObjectTypeComposerFieldConfigAsObjectDefinition<any, any>;
5+
6+
type Middleare = (fc: FC, sc: SchemaComposer<any>, opts: Options) => FC;
7+
8+
type Creator = (sc: SchemaComposer<any>, opts: Options) => FC;
9+
10+
type Wrapper = (creator: Creator) => FC;
11+
12+
type ComposeFCResult = (...args: Middleare[]) => Wrapper;
13+
14+
/**
15+
* Compose several FC creator with middlewares
16+
*/
17+
export function composeFC(sc: SchemaComposer<any>, opts: Options): ComposeFCResult {
18+
return (...middlewares: Middleare[]): Wrapper => (creator: Creator): FC => {
19+
let fc = creator(sc, opts);
20+
for (let i = 0; i < middlewares.length; i++) {
21+
fc = middlewares[i](fc, sc, opts);
22+
}
23+
return fc;
24+
};
25+
}

src/helpers/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ export * from './MutationError';
44
export * from './normalizePrefixGlob';
55
export * from './wrapMutationFC';
66
export * from './wrapQueueArgs';
7+
export * from './composeFC';

0 commit comments

Comments
 (0)