Skip to content

Commit c879cb6

Browse files
committed
fix: Overriding of orchestratorOptions results in no usage of process cloud function -- deep merge Handlers options
Fixes #519
1 parent 538f6d0 commit c879cb6

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

packages/cubejs-serverless/Handlers.js

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,46 @@ const processHandlers = {
3333
class Handlers {
3434
constructor(options) {
3535
options = {
36+
...options,
3637
orchestratorOptions: (context) => ({
38+
...(options && options.orchestratorOptions),
3739
queryCacheOptions: {
40+
...(options && options.orchestratorOptions && options.orchestratorOptions.queryCacheOptions),
3841
queueOptions: {
3942
sendProcessMessageFn: async (queryKey) => this.sendNotificationMessage(queryKey, 'queryProcess', context),
40-
sendCancelMessageFn: async (query) => this.sendNotificationMessage(query, 'queryCancel', context)
43+
sendCancelMessageFn: async (query) => this.sendNotificationMessage(query, 'queryCancel', context),
44+
...(
45+
options &&
46+
options.orchestratorOptions &&
47+
options.orchestratorOptions.queryCacheOptions &&
48+
options.orchestratorOptions.queryCacheOptions.queueOptions
49+
)
4150
},
4251
externalQueueOptions: {
4352
sendProcessMessageFn: async (queryKey) => this.sendNotificationMessage(queryKey, 'externalQueryProcess', context),
44-
sendCancelMessageFn: async (query) => this.sendNotificationMessage(query, 'externalQueryCancel', context)
53+
sendCancelMessageFn: async (query) => this.sendNotificationMessage(query, 'externalQueryCancel', context),
54+
...(
55+
options &&
56+
options.orchestratorOptions &&
57+
options.orchestratorOptions.queryCacheOptions &&
58+
options.orchestratorOptions.queryCacheOptions.externalQueueOptions
59+
)
4560
}
4661
},
4762
preAggregationsOptions: {
63+
...(options && options.orchestratorOptions && options.orchestratorOptions.preAggregationsOptions),
4864
queueOptions: {
4965
sendProcessMessageFn: async (queryKey) => this.sendNotificationMessage(queryKey, 'preAggregationProcess', context),
50-
sendCancelMessageFn: async (query) => this.sendNotificationMessage(query, 'preAggregationCancel', context)
66+
sendCancelMessageFn: async (query) => this.sendNotificationMessage(query, 'preAggregationCancel', context),
67+
...(
68+
options &&
69+
options.orchestratorOptions &&
70+
options.orchestratorOptions.preAggregationsOptions &&
71+
options.orchestratorOptions.preAggregationsOptions.queueOptions
72+
)
5173
}
5274
}
53-
}),
54-
...options
75+
})
5576
};
5677
this.serverCore = new ServerCore(options);
5778
}

0 commit comments

Comments
 (0)