1+ import { getQueueConfig , getWorldConfig } from '../config.js' ;
12import { createFunctionProxy } from '../proxies/function-proxy.js' ;
23import { createHttpProxy } from '../proxies/http-proxy.js' ;
34import { createPgBossQueue } from './pgboss.js' ;
@@ -9,20 +10,30 @@ import type { QueueDriver } from './types.js';
910 */
1011export function createPgBossFunctionProxyQueue ( opts : {
1112 jobPrefix ?: string ;
12- securityToken : string ;
13- connectionString : string ;
13+ securityToken ? : string ;
14+ connectionString ? : string ;
1415 queueConcurrency ?: number ;
1516 stepEntrypoint : ( request : Request ) => Promise < Response > ;
1617 workflowEntrypoint : ( request : Request ) => Promise < Response > ;
1718} ) : QueueDriver {
19+ const worldDefaults = getWorldConfig ( ) ;
20+ const queueDefaults = getQueueConfig ( ) ;
21+
22+ const config = {
23+ connectionString : opts . connectionString ?? worldDefaults . connectionString ,
24+ securityToken : opts . securityToken ?? worldDefaults . securityToken ,
25+ jobPrefix : opts . jobPrefix ?? queueDefaults . jobPrefix ,
26+ queueConcurrency : opts . queueConcurrency ?? queueDefaults . queueConcurrency ,
27+ } ;
28+
1829 return createPgBossQueue (
1930 {
20- jobPrefix : opts . jobPrefix ,
21- connectionString : opts . connectionString ,
22- queueConcurrency : opts . queueConcurrency ,
31+ jobPrefix : config . jobPrefix ,
32+ connectionString : config . connectionString ,
33+ queueConcurrency : config . queueConcurrency ,
2334 } ,
2435 createFunctionProxy ( {
25- securityToken : opts . securityToken ,
36+ securityToken : config . securityToken ,
2637 stepEntrypoint : opts . stepEntrypoint ,
2738 workflowEntrypoint : opts . workflowEntrypoint ,
2839 } )
@@ -33,14 +44,34 @@ export function createPgBossFunctionProxyQueue(opts: {
3344 * QueueDriver implementation using pg-boss for job management
3445 * and HTTP for execution.
3546 */
36- export function createPgBossHttpProxyQueue ( config : {
37- port ?: number ;
38- baseUrl ?: string ;
39- jobPrefix ?: string ;
40- securityToken : string ;
41- connectionString : string ;
42- queueConcurrency ?: number ;
43- } ) : QueueDriver {
47+ export function createPgBossHttpProxyQueue (
48+ opts : {
49+ port ?: number ;
50+ baseUrl ?: string ;
51+ jobPrefix ?: string ;
52+ securityToken ?: string ;
53+ connectionString ?: string ;
54+ queueConcurrency ?: number ;
55+ } = { }
56+ ) : QueueDriver {
57+ const worldDefaults = getWorldConfig ( ) ;
58+ const queueDefaults = getQueueConfig ( ) ;
59+
60+ const config = {
61+ connectionString : opts . connectionString ?? worldDefaults . connectionString ,
62+ securityToken : opts . securityToken ?? worldDefaults . securityToken ,
63+ jobPrefix : opts . jobPrefix ?? queueDefaults . jobPrefix ,
64+ queueConcurrency : opts . queueConcurrency ?? queueDefaults . queueConcurrency ,
65+
66+ port :
67+ opts . port ??
68+ ( process . env . WORKFLOW_POSTGRES_APP_PORT
69+ ? parseInt ( process . env . WORKFLOW_POSTGRES_APP_PORT , 10 )
70+ : undefined ) ,
71+
72+ baseUrl : opts . baseUrl ?? process . env . WORKFLOW_POSTGRES_APP_URL ,
73+ } ;
74+
4475 return createPgBossQueue (
4576 {
4677 jobPrefix : config . jobPrefix ,
0 commit comments