@shivaedev/effect-pg-boss 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -1
- package/README.md +7 -5
- package/dist/definition.d.ts.map +1 -1
- package/dist/definition.js.map +1 -1
- package/dist/error.d.ts +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js.map +1 -1
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/internal/client.d.ts +1 -1
- package/dist/internal/client.d.ts.map +1 -1
- package/dist/internal/client.js.map +1 -1
- package/dist/internal/health.d.ts +3 -3
- package/dist/internal/health.d.ts.map +1 -1
- package/dist/internal/health.js +2 -5
- package/dist/internal/health.js.map +1 -1
- package/dist/internal/lifecycle.d.ts +4 -4
- package/dist/internal/lifecycle.d.ts.map +1 -1
- package/dist/internal/lifecycle.js +15 -9
- package/dist/internal/lifecycle.js.map +1 -1
- package/dist/internal/register.d.ts +5 -4
- package/dist/internal/register.d.ts.map +1 -1
- package/dist/internal/register.js +19 -8
- package/dist/internal/register.js.map +1 -1
- package/dist/internal/service.d.ts +2 -2
- package/dist/internal/service.d.ts.map +1 -1
- package/dist/internal/service.js +1 -1
- package/dist/internal/service.js.map +1 -1
- package/dist/service.d.ts +6 -5
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +6 -13
- package/dist/service.js.map +1 -1
- package/package.json +3 -3
- package/src/definition.ts +9 -33
- package/src/error.ts +3 -12
- package/src/health.ts +1 -2
- package/src/index.ts +5 -5
- package/src/internal/client.ts +6 -32
- package/src/internal/health.ts +6 -19
- package/src/internal/lifecycle.ts +23 -29
- package/src/internal/register.ts +44 -67
- package/src/internal/service.ts +20 -36
- package/src/service.ts +29 -90
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 0.2.0 - 2026-09-26
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- **Breaking:** Replace `developmentCacheKey` with `clientCacheKey`. The Layer
|
|
8
|
+
no longer reads `NODE_ENV`; passing a key always enables client reuse, so pass
|
|
9
|
+
it only in the environments that should share a client. `undefined` disables
|
|
10
|
+
reuse.
|
|
11
|
+
- Type the `PgBossClient.work` handler with `Job<unknown>` instead of a
|
|
12
|
+
caller-chosen payload type; each queue's schema decodes the payload.
|
|
13
|
+
|
|
14
|
+
## 0.1.3 - 2026-09-04
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Require Effect 4.0.0-rc.112, so applications tracking the current release
|
|
19
|
+
candidate install without unmet peer warnings.
|
|
4
20
|
|
|
5
21
|
## 0.1.2 - 2026-08-12
|
|
6
22
|
|
package/README.md
CHANGED
|
@@ -82,14 +82,16 @@ export const JobsLive = Jobs.layer({
|
|
|
82
82
|
connectionString: databaseUrl,
|
|
83
83
|
schema: "app_jobs",
|
|
84
84
|
jobs: [emailWorker, cleanupWorker],
|
|
85
|
-
|
|
85
|
+
clientCacheKey: isDevelopment ? "app-jobs" : undefined,
|
|
86
86
|
})
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
`
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
`clientCacheKey` reuses and reference-counts one started client across Layer
|
|
90
|
+
builds that share the key, such as development module reloads. The package does
|
|
91
|
+
not inspect `NODE_ENV`; without a key every build starts its own client.
|
|
92
|
+
Applications decide which key and registrations are passed to the Layer, so
|
|
93
|
+
environment rules such as development caching and production-only schedules
|
|
94
|
+
remain application policy.
|
|
93
95
|
|
|
94
96
|
An `onError` Effect can route pg-boss background errors through application
|
|
95
97
|
logging or telemetry. Without one, errors use Effect logging.
|
package/dist/definition.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/E,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,GAAG;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,eAAe,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"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"}
|
package/dist/definition.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAoEA,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,OAA0C,EACT,EAAE;IACnC,MAAM,UAAU,GAAmC;QAClD,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACjE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CACnB,MAAM,CAAC,MAAM,CAAC;YACb,IAAI,EAAE,aAAsB;YAC5B,OAAO;YACP,KAAK,EAAE,UAAU;SACjB,CAAC;KACH,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,cAAc,GAAG,CAA4B,OAAoC,EAA4B,EAAE;IAC3H,MAAM,UAAU,GAA6B;QAC5C,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACjD,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAClE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACjE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,MAAM,CAAC,MAAM,CAAC;YACb,IAAI,EAAE,iBAA0B;YAChC,MAAM;YACN,QAAQ,EAAE,UAAU;SACpB,CAAC;KACH,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAiB,EAAc,EAAE,CAAC,CAAC;IAC7D,eAAe,EAAE,GAAG,CAAC,eAAe;IACpC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;IACtC,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,MAAM,EAAE,GAAG,CAAC,MAAM;CAClB,CAAC,CAAC"}
|
package/dist/error.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ declare const PgBossError_base: new <A extends Record<string, any> = {}>(args: i
|
|
|
5
5
|
} & Readonly<A>;
|
|
6
6
|
export declare class PgBossError extends PgBossError_base<{
|
|
7
7
|
readonly operation: PgBossOperation;
|
|
8
|
-
readonly queue?: string;
|
|
8
|
+
readonly queue?: string | undefined;
|
|
9
9
|
readonly original: Redacted.Redacted<unknown>;
|
|
10
10
|
}> {
|
|
11
11
|
}
|
package/dist/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;;;;AAEnF,qBAAa,WAAY,SAAQ,iBAAgC;IAChE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;CAAG;;;;AAEL,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC9E,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;CAAG;AAEL,eAAO,MAAM,aAAa,GAAI,WAAW,eAAe,EAAE,OAAO,OAAO,EAAE,QAAQ,MAAM,KAAG,WAKxF,CAAC"}
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIxC,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,WAAW,CAAC,aAAa,CAI7D;CAAG;AAEL,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAI3E;CAAG;AAEL,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAA0B,EAAE,KAAc,EAAE,KAAc,EAAe,EAAE,CACxG,IAAI,WAAW,CAAC;IACf,SAAS;IACT,KAAK;IACL,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;CAC9B,CAAC,CAAC"}
|
package/dist/health.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,KAAG,MAA4B,CAAC"}
|
package/dist/health.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAU,EAAE,CAAC,GAAG,SAAS,MAAM,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { type DefineQueueOptions, type DefineScheduleOptions, defineQueue, defineSchedule, type JobContext, type JobPayloadSchema, type JobRegistration, type QueueDefinition, type QueueWorker, type ScheduleDefinition, type ScheduledWorker, } from "./definition.
|
|
2
|
-
export { PgBossError, type PgBossOperation, PgBossPayloadError, } from "./error.
|
|
3
|
-
export { deadLetterQueueName, type JobsHealth, type QueueHealth, } from "./health.
|
|
4
|
-
export type { PgBossClient, PgBossClientFactory, } from "./internal/client.
|
|
5
|
-
export { makePgBoss, type PgBossDefinition, type PgBossLayerOptions, type PgBossService, } from "./service.
|
|
1
|
+
export { type DefineQueueOptions, type DefineScheduleOptions, defineQueue, defineSchedule, type JobContext, type JobPayloadSchema, type JobRegistration, type QueueDefinition, type QueueWorker, type ScheduleDefinition, type ScheduledWorker, } from "./definition.ts";
|
|
2
|
+
export { PgBossError, type PgBossOperation, PgBossPayloadError, } from "./error.ts";
|
|
3
|
+
export { deadLetterQueueName, type JobsHealth, type QueueHealth, } from "./health.ts";
|
|
4
|
+
export type { PgBossClient, PgBossClientFactory, } from "./internal/client.ts";
|
|
5
|
+
export { makePgBoss, type PgBossDefinition, type PgBossLayerOptions, type PgBossService, } from "./service.ts";
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -9,7 +9,7 @@ export interface PgBossClient {
|
|
|
9
9
|
readonly send: (name: string, data?: object | null, options?: SendOptions) => Promise<string | null>;
|
|
10
10
|
readonly start: () => Promise<unknown>;
|
|
11
11
|
readonly stop: (options?: StopOptions) => Promise<void>;
|
|
12
|
-
readonly work:
|
|
12
|
+
readonly work: (name: string, options: WorkOptions, handler: (jobs: readonly Job<unknown>[]) => Promise<unknown>) => Promise<string>;
|
|
13
13
|
}
|
|
14
14
|
export type PgBossClientFactory = (options: ConstructorOptions) => PgBossClient;
|
|
15
15
|
export declare const defaultClientFactory: PgBossClientFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/internal/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/internal/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGnI,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,OAAO,CAAC;IAC3E,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,OAAO,CAAC;IAC5E,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClH,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrG,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACrI;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,kBAAkB,KAAK,YAAY,CAAC;AAEhF,eAAO,MAAM,oBAAoB,EAAE,mBAAsD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/internal/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/internal/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAiBjC,MAAM,CAAC,MAAM,oBAAoB,GAAwB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
-
import { type JobsHealth } from "../health.
|
|
3
|
-
import type { PgBossClient } from "./client.
|
|
4
|
-
export declare const healthFor: (client: PgBossClient, names: readonly string[]) => Effect.Effect<JobsHealth, import("../error.
|
|
2
|
+
import { type JobsHealth } from "../health.ts";
|
|
3
|
+
import type { PgBossClient } from "./client.ts";
|
|
4
|
+
export declare const healthFor: (client: PgBossClient, names: readonly string[]) => Effect.Effect<JobsHealth, import("../error.ts").PgBossError>;
|
|
5
5
|
//# sourceMappingURL=health.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/internal/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/internal/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAuB,KAAK,UAAU,EAAoB,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,SAAS,GAAI,QAAQ,YAAY,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,aAAa,EAAE,WAAW,CA4BpI,CAAC"}
|
package/dist/internal/health.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
2
|
import { toPgBossError } from "../error.js";
|
|
3
|
-
import { deadLetterQueueName
|
|
3
|
+
import { deadLetterQueueName } from "../health.js";
|
|
4
4
|
export const healthFor = (client, names) => Effect.forEach(names, (name) => Effect.tryPromise({
|
|
5
5
|
try: async () => {
|
|
6
|
-
const [queue, deadLetter] = await Promise.all([
|
|
7
|
-
client.getQueue(name),
|
|
8
|
-
client.getQueue(deadLetterQueueName(name)),
|
|
9
|
-
]);
|
|
6
|
+
const [queue, deadLetter] = await Promise.all([client.getQueue(name), client.getQueue(deadLetterQueueName(name))]);
|
|
10
7
|
return {
|
|
11
8
|
activeCount: queue?.activeCount ?? 0,
|
|
12
9
|
deadLetteredCount: deadLetter?.queuedCount ?? 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/internal/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/internal/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAqC,MAAM,cAAc,CAAC;AAGtF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAoB,EAAE,KAAwB,EAAgE,EAAE,CACzI,MAAM,CAAC,OAAO,CACb,KAAK,EACL,CAAC,IAAI,EAAE,EAAE,CACR,MAAM,CAAC,UAAU,CAAC;IACjB,GAAG,EAAE,KAAK,IAA0B,EAAE;QACrC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,OAAO;YACN,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;YACpC,iBAAiB,EAAE,UAAU,EAAE,WAAW,IAAI,CAAC;YAC/C,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;YACpC,IAAI;YACJ,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;YACpC,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC;SAClC,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;CACtD,CAAC,EACH,EAAE,WAAW,EAAE,WAAW,EAAE,CAC5B,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC5E,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,IAAI;IACJ,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;CAC9D,CAAC,CAAC,CACH,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
2
|
import type { ConstructorOptions, StopOptions } from "pg-boss";
|
|
3
|
-
import { type PgBossClient, type PgBossClientFactory } from "./client.
|
|
3
|
+
import { type PgBossClient, type PgBossClientFactory } from "./client.ts";
|
|
4
4
|
export interface AcquireClientOptions {
|
|
5
|
-
readonly clientFactory?: PgBossClientFactory;
|
|
5
|
+
readonly clientFactory?: PgBossClientFactory | undefined;
|
|
6
6
|
readonly constructor: ConstructorOptions;
|
|
7
|
-
readonly
|
|
7
|
+
readonly clientCacheKey?: string | symbol | undefined;
|
|
8
8
|
}
|
|
9
9
|
export interface AcquiredClient {
|
|
10
10
|
readonly client: PgBossClient;
|
|
11
11
|
readonly cacheKey?: string | symbol;
|
|
12
12
|
readonly reused: boolean;
|
|
13
13
|
}
|
|
14
|
-
export declare const acquireClient: (options: AcquireClientOptions) => Effect.Effect<AcquiredClient, import("../error.
|
|
14
|
+
export declare const acquireClient: (options: AcquireClientOptions) => Effect.Effect<AcquiredClient, import("../error.ts").PgBossError>;
|
|
15
15
|
export declare const releaseClient: (acquired: AcquiredClient, stopOptions?: StopOptions) => Effect.Effect<void>;
|
|
16
16
|
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/internal/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/internal/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAwB,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAuBhG,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CACzB;AAiBD,eAAO,MAAM,aAAa,GAAI,SAAS,oBAAoB,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,aAAa,EAAE,WAAW,CA2C1H,CAAC;AAEJ,eAAO,MAAM,aAAa,GAAI,UAAU,cAAc,EAAE,cAAc,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAgB7C,CAAC"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
2
|
import { toPgBossError } from "../error.js";
|
|
3
|
-
import { defaultClientFactory
|
|
3
|
+
import { defaultClientFactory } from "./client.js";
|
|
4
4
|
const CacheKey = Symbol.for("@shivaedev/effect-pg-boss/client-cache");
|
|
5
|
-
const
|
|
6
|
-
const clientCache =
|
|
7
|
-
|
|
5
|
+
const sharedCache = Reflect.get(globalThis, CacheKey);
|
|
6
|
+
const clientCache = sharedCache instanceof Map ? sharedCache : new Map();
|
|
7
|
+
Reflect.set(globalThis, CacheKey, clientCache);
|
|
8
|
+
const isCachedClient = (value) => typeof value === "object" &&
|
|
9
|
+
value !== null &&
|
|
10
|
+
Reflect.get(value, "client") instanceof Promise &&
|
|
11
|
+
typeof Reflect.get(value, "references") === "number";
|
|
12
|
+
const cachedClient = (key) => {
|
|
13
|
+
const entry = clientCache.get(key);
|
|
14
|
+
return isCachedClient(entry) ? entry : undefined;
|
|
15
|
+
};
|
|
8
16
|
const startClient = (options) => {
|
|
9
17
|
const client = (options.clientFactory ?? defaultClientFactory)(options.constructor);
|
|
10
18
|
return client.start().then(() => client, async (error) => {
|
|
@@ -19,16 +27,14 @@ const startClient = (options) => {
|
|
|
19
27
|
};
|
|
20
28
|
export const acquireClient = (options) => Effect.tryPromise({
|
|
21
29
|
try: async () => {
|
|
22
|
-
const cacheKey =
|
|
23
|
-
? undefined
|
|
24
|
-
: options.developmentCacheKey;
|
|
30
|
+
const cacheKey = options.clientCacheKey;
|
|
25
31
|
if (cacheKey === undefined) {
|
|
26
32
|
return {
|
|
27
33
|
client: await startClient(options),
|
|
28
34
|
reused: false,
|
|
29
35
|
};
|
|
30
36
|
}
|
|
31
|
-
const existing =
|
|
37
|
+
const existing = cachedClient(cacheKey);
|
|
32
38
|
if (existing !== undefined) {
|
|
33
39
|
existing.references += 1;
|
|
34
40
|
try {
|
|
@@ -69,7 +75,7 @@ export const releaseClient = (acquired, stopOptions) => Effect.tryPromise({
|
|
|
69
75
|
await acquired.client.stop(stopOptions);
|
|
70
76
|
return;
|
|
71
77
|
}
|
|
72
|
-
const entry =
|
|
78
|
+
const entry = cachedClient(acquired.cacheKey);
|
|
73
79
|
if (entry === undefined)
|
|
74
80
|
return;
|
|
75
81
|
entry.references -= 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/internal/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/internal/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Effect } from "effect";
|
|
2
|
-
import { type JobRegistration } from "../definition.
|
|
3
|
-
import type { PgBossClient } from "./client.
|
|
1
|
+
import { type Context, Effect } from "effect";
|
|
2
|
+
import { type JobRegistration } from "../definition.ts";
|
|
3
|
+
import type { PgBossClient } from "./client.ts";
|
|
4
|
+
export declare const registrationName: (registration: JobRegistration) => string;
|
|
4
5
|
export declare const registrationNames: (registrations: readonly JobRegistration[]) => readonly string[];
|
|
5
|
-
export declare const registerJobs: <R>(client: PgBossClient, registrations: readonly JobRegistration[], context:
|
|
6
|
+
export declare const registerJobs: <R>(client: PgBossClient, registrations: readonly JobRegistration[], context: Context.Context<R>, replaceWorkers: boolean) => Effect.Effect<void, import("../error.ts").PgBossError>;
|
|
6
7
|
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/internal/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/internal/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAoB,MAAM,QAAQ,CAAC;AAEhE,OAAO,EAAE,KAAK,eAAe,EAAsD,MAAM,kBAAkB,CAAC;AAG5G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAYhD,eAAO,MAAM,gBAAgB,GAAI,cAAc,eAAe,KAAG,MAIhE,CAAC;AA+DF,eAAO,MAAM,iBAAiB,GAAI,eAAe,SAAS,eAAe,EAAE,KAAG,SAAS,MAAM,EAM5F,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,EAC7B,QAAQ,YAAY,EACpB,eAAe,SAAS,eAAe,EAAE,EACzC,SAAS,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAC3B,gBAAgB,OAAO,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,aAAa,EAAE,WAAW,CAcrD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect, Redacted, Schema } from "effect";
|
|
2
|
-
import { jobContext
|
|
2
|
+
import { jobContext } from "../definition.js";
|
|
3
3
|
import { PgBossPayloadError, toPgBossError } from "../error.js";
|
|
4
4
|
import { deadLetterQueueName } from "../health.js";
|
|
5
5
|
const queueOptions = (options) => ({
|
|
@@ -7,6 +7,18 @@ const queueOptions = (options) => ({
|
|
|
7
7
|
retryLimit: 3,
|
|
8
8
|
...options,
|
|
9
9
|
});
|
|
10
|
+
const isQueueWorker = (registration) => registration._tag === "QueueWorker";
|
|
11
|
+
const isScheduledWorker = (registration) => registration._tag === "ScheduledWorker";
|
|
12
|
+
export const registrationName = (registration) => {
|
|
13
|
+
if (isQueueWorker(registration))
|
|
14
|
+
return registration.queue.name;
|
|
15
|
+
if (isScheduledWorker(registration))
|
|
16
|
+
return registration.schedule.name;
|
|
17
|
+
throw new TypeError(`Unknown pg-boss registration: ${registration._tag}`);
|
|
18
|
+
};
|
|
19
|
+
function workerContext(context) {
|
|
20
|
+
return context;
|
|
21
|
+
}
|
|
10
22
|
const runQueueWorker = (worker, job, context) => Effect.runPromise(Schema.decodeUnknownEffect(worker.queue.schema)(job.data).pipe(Effect.mapError((error) => new PgBossPayloadError({
|
|
11
23
|
direction: "decode",
|
|
12
24
|
original: Redacted.make(error),
|
|
@@ -47,9 +59,7 @@ const registerSchedule = async (client, worker, context, replaceWorker) => {
|
|
|
47
59
|
await client.schedule(schedule.name, schedule.cron, null, schedule.scheduleOptions);
|
|
48
60
|
};
|
|
49
61
|
export const registrationNames = (registrations) => {
|
|
50
|
-
const names = registrations.map(
|
|
51
|
-
? registration.queue.name
|
|
52
|
-
: registration.schedule.name);
|
|
62
|
+
const names = registrations.map(registrationName);
|
|
53
63
|
if (new Set(names).size !== names.length) {
|
|
54
64
|
throw new TypeError("pg-boss job names must be unique");
|
|
55
65
|
}
|
|
@@ -58,12 +68,13 @@ export const registrationNames = (registrations) => {
|
|
|
58
68
|
export const registerJobs = (client, registrations, context, replaceWorkers) => Effect.tryPromise({
|
|
59
69
|
try: async () => {
|
|
60
70
|
registrationNames(registrations);
|
|
71
|
+
const provided = workerContext(context);
|
|
61
72
|
for (const registration of registrations) {
|
|
62
|
-
if (registration
|
|
63
|
-
await registerQueue(client, registration,
|
|
73
|
+
if (isQueueWorker(registration)) {
|
|
74
|
+
await registerQueue(client, registration, provided, replaceWorkers);
|
|
64
75
|
}
|
|
65
|
-
else {
|
|
66
|
-
await registerSchedule(client, registration,
|
|
76
|
+
else if (isScheduledWorker(registration)) {
|
|
77
|
+
await registerSchedule(client, registration, provided, replaceWorkers);
|
|
67
78
|
}
|
|
68
79
|
}
|
|
69
80
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/internal/register.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/internal/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PgBossService } from "../service.
|
|
2
|
-
import type { PgBossClient } from "./client.
|
|
1
|
+
import type { PgBossService } from "../service.ts";
|
|
2
|
+
import type { PgBossClient } from "./client.ts";
|
|
3
3
|
export declare const makeService: (client: PgBossClient, names: readonly string[]) => PgBossService;
|
|
4
4
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/internal/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/internal/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,WAAW,GAAI,QAAQ,YAAY,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,aA4B3E,CAAC"}
|
package/dist/internal/service.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect, Option, Redacted, Schema } from "effect";
|
|
2
|
-
import { PgBossPayloadError, toPgBossError
|
|
2
|
+
import { PgBossPayloadError, toPgBossError } from "../error.js";
|
|
3
3
|
import { healthFor } from "./health.js";
|
|
4
4
|
export const makeService = (client, names) => ({
|
|
5
5
|
enqueue: (queue, payload, options) => Schema.encodeUnknownEffect(queue.schema)(payload).pipe(Effect.mapError((error) => new PgBossPayloadError({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/internal/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/internal/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAoB,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGlF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAoB,EAAE,KAAwB,EAAiB,EAAE,CAAC,CAAC;IAC9F,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACpC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CACrD,MAAM,CAAC,QAAQ,CACd,CAAC,KAAK,EAAE,EAAE,CACT,IAAI,kBAAkB,CAAC;QACtB,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,KAAK,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CACH,EACD,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAA0E,EAAE;QAClG,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrD,OAAO,MAAM,CAAC,IAAI,CACjB,IAAI,kBAAkB,CAAC;gBACtB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;gBACjF,KAAK,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CACF,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC;YACxB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;YACpD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;SAC7D,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CACF;IACF,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;CAChC,CAAC,CAAC"}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Context, Effect, Layer, type Option, type Schema } from "effect";
|
|
2
2
|
import type { ConstructorOptions, SendOptions, StopOptions } from "pg-boss";
|
|
3
|
-
import type { JobPayloadSchema, JobRegistration, QueueDefinition, RegistrationRequirements } from "./definition.
|
|
4
|
-
import type { PgBossError, PgBossPayloadError } from "./error.
|
|
5
|
-
import type { JobsHealth } from "./health.
|
|
6
|
-
import type { PgBossClientFactory } from "./internal/client.
|
|
3
|
+
import type { JobPayloadSchema, JobRegistration, QueueDefinition, RegistrationRequirements } from "./definition.ts";
|
|
4
|
+
import type { PgBossError, PgBossPayloadError } from "./error.ts";
|
|
5
|
+
import type { JobsHealth } from "./health.ts";
|
|
6
|
+
import type { PgBossClientFactory } from "./internal/client.ts";
|
|
7
7
|
export interface PgBossService {
|
|
8
8
|
readonly enqueue: <const Name extends string, const Payload extends JobPayloadSchema>(queue: QueueDefinition<Name, Payload>, payload: Schema.Schema.Type<Payload>, options?: SendOptions) => Effect.Effect<Option.Option<string>, PgBossError | PgBossPayloadError, Payload["EncodingServices"]>;
|
|
9
9
|
readonly health: Effect.Effect<JobsHealth, PgBossError>;
|
|
@@ -14,7 +14,8 @@ interface PgBossIdentifier {
|
|
|
14
14
|
export type PgBossLayerOptions<Registrations extends readonly JobRegistration[], ErrorRequirements> = ConstructorOptions & {
|
|
15
15
|
/** Override client construction for compatible clients or deterministic tests. */
|
|
16
16
|
readonly clientFactory?: PgBossClientFactory;
|
|
17
|
-
|
|
17
|
+
/** Reuse and reference-count one started client under this key, e.g. across development module reloads. */
|
|
18
|
+
readonly clientCacheKey?: string | symbol | undefined;
|
|
18
19
|
readonly jobs: Registrations;
|
|
19
20
|
readonly onError?: (error: Error) => Effect.Effect<unknown, never, ErrorRequirements>;
|
|
20
21
|
readonly stop?: StopOptions;
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAKhE,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,OAAO,SAAS,gBAAgB,EACnF,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,WAAW,KACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;CACxD;AAED,UAAU,gBAAgB;IACzB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,MAAM,CAAC;CAC1C;AAED,MAAM,MAAM,kBAAkB,CAAC,aAAa,SAAS,SAAS,eAAe,EAAE,EAAE,iBAAiB,IAAI,kBAAkB,GAAG;IAC1H,kFAAkF;IAClF,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAC7C,2GAA2G;IAC3G,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACtF,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACzF,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,aAAa,SAAS,SAAS,eAAe,EAAE,EAAE,iBAAiB,GAAG,KAAK,EACjG,OAAO,EAAE,kBAAkB,CAAC,aAAa,EAAE,iBAAiB,CAAC,KACzD,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,WAAW,EAAE,wBAAwB,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAAC,CAAC;CAC7G;AAID,eAAO,MAAM,UAAU,GAAI,YAAY,MAAM,KAAG,gBA6C/C,CAAC"}
|
package/dist/service.js
CHANGED
|
@@ -1,28 +1,21 @@
|
|
|
1
1
|
import { Context, Effect, Layer } from "effect";
|
|
2
2
|
import { acquireClient, releaseClient } from "./internal/lifecycle.js";
|
|
3
|
-
import { registerJobs } from "./internal/register.js";
|
|
3
|
+
import { registerJobs, registrationName } from "./internal/register.js";
|
|
4
4
|
import { makeService } from "./internal/service.js";
|
|
5
|
+
const logClientError = (error) => Effect.logError({ event: "pg_boss_error", message: error.message });
|
|
5
6
|
export const makePgBoss = (identifier) => {
|
|
6
7
|
const Service = Context.Service(identifier);
|
|
7
8
|
const layer = (options) => {
|
|
8
|
-
const names = options.jobs.map(
|
|
9
|
-
|
|
10
|
-
: registration.schedule
|
|
11
|
-
.name);
|
|
12
|
-
const { clientFactory, developmentCacheKey, jobs, onError, stop, ...constructorOptions } = options;
|
|
9
|
+
const names = options.jobs.map(registrationName);
|
|
10
|
+
const { clientFactory, clientCacheKey, jobs, onError, stop, ...constructorOptions } = options;
|
|
13
11
|
const acquire = Effect.acquireRelease(Effect.gen(function* () {
|
|
14
12
|
const context = yield* Effect.context();
|
|
15
13
|
const acquired = yield* acquireClient({
|
|
16
14
|
clientFactory,
|
|
17
15
|
constructor: constructorOptions,
|
|
18
|
-
|
|
16
|
+
clientCacheKey,
|
|
19
17
|
});
|
|
20
|
-
const reportError = onError
|
|
21
|
-
? (error) => Effect.logError({
|
|
22
|
-
event: "pg_boss_error",
|
|
23
|
-
message: error.message,
|
|
24
|
-
})
|
|
25
|
-
: onError;
|
|
18
|
+
const reportError = onError ?? logClientError;
|
|
26
19
|
const errorListener = (error) => {
|
|
27
20
|
void Effect.runPromise(Effect.exit(Effect.provide(reportError(error), context)));
|
|
28
21
|
};
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAA4B,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/effect-pg-boss",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Effect-native jobs and lifecycle management for pg-boss",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"provenance": true
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"effect": "4.0.0-rc.
|
|
40
|
+
"effect": "4.0.0-rc.112",
|
|
41
41
|
"pg-boss": "12.23.1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/node": "24.10.1",
|
|
45
45
|
"@typescript/native": "npm:typescript@7.0.2",
|
|
46
|
-
"effect": "4.0.0-rc.
|
|
46
|
+
"effect": "4.0.0-rc.112",
|
|
47
47
|
"pg-boss": "12.23.1",
|
|
48
48
|
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
49
49
|
"vitest": "4.1.9"
|