@shivaedev/effect-pg-boss 0.12.0 → 0.13.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 +12 -0
- package/README.md +14 -14
- package/dist/server/internal/clientCache.js +1 -1
- package/dist/server/internal/clientCache.js.map +1 -1
- package/dist/server/internal/clientErrors.js +1 -1
- package/dist/server/internal/clientErrors.js.map +1 -1
- package/package.json +9 -9
- package/src/server/internal/clientCache.ts +1 -1
- package/src/server/internal/clientErrors.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.13.0 - 2026-10-19
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Quality's `manifests/exports-shape` rule checks exports at the package root and in workspace members by default. Modules use one file-preserving TypeScript wildcard with matching source, types and runtime targets; root entries, exact non-code assets, package metadata and null blocks are allowed.
|
|
8
|
+
|
|
9
|
+
### Breaking
|
|
10
|
+
|
|
11
|
+
- Quality's Biome preset moves from `@shivaedev/quality/biome` to `@shivaedev/quality/biome/preset.json`. Change the `extends` entry in your Biome config to the new path; the old alias is removed. TypeScript preset paths are unchanged.
|
|
12
|
+
- `@shivaedev/effect-pg-boss`, `@shivaedev/effect-test-sql`, `@shivaedev/local-postgres` and `@shivaedev/test-story` expose server modules at their file paths. Add `/server/` after the package name in imports, for example `@shivaedev/test-story/server/storyKit.ts`. The shortened paths are removed; internal server modules remain blocked.
|
|
13
|
+
- Work Board moves `@shivaedev/work-board/client/client.ts` to `@shivaedev/work-board/browserClient.ts`; change browser-client imports to that file path. `@shivaedev/work-board/client/document/View.ts` is removed: consume document queries with your own renderer, or use the bundled Board browser UI. The client bundle stays private and the old export overrides are removed.
|
|
14
|
+
|
|
3
15
|
## 0.12.0 - 2026-10-18
|
|
4
16
|
|
|
5
17
|
### Added
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Run PostgreSQL jobs through the same Effect services as the rest of your applica
|
|
|
7
7
|
A background worker lives outside the request that queued it. Without a shared boundary, the producer writes one payload shape, the worker assumes another, and every worker rebuilds its dependencies and shutdown plumbing. This package puts those decisions in one place:
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
|
-
import { defineQueue } from "@shivaedev/effect-pg-boss/definition.ts";
|
|
10
|
+
import { defineQueue } from "@shivaedev/effect-pg-boss/server/definition.ts";
|
|
11
11
|
import { Effect, Schema } from "effect";
|
|
12
12
|
import { Mail } from "./services.ts";
|
|
13
13
|
|
|
@@ -42,7 +42,7 @@ The work separates naturally: declare the application services once, define a qu
|
|
|
42
42
|
`installPgBossSchema` installs or upgrades pg-boss through the provided Effect SQL client without starting workers or schedules. Run it outside an application transaction, in a release step or the `fixtures` Effect of `makePostgresTestLayer`, so stories inherit the schema from the migrated template:
|
|
43
43
|
|
|
44
44
|
```ts
|
|
45
|
-
import { installPgBossSchema } from "@shivaedev/effect-pg-boss/schema.ts";
|
|
45
|
+
import { installPgBossSchema } from "@shivaedev/effect-pg-boss/server/schema.ts";
|
|
46
46
|
|
|
47
47
|
const jobsFixture = installPgBossSchema({ schema: "app_jobs" });
|
|
48
48
|
```
|
|
@@ -56,7 +56,7 @@ After installation, pass the same schema and `migrate: false` to `Jobs.layer` to
|
|
|
56
56
|
Define the application's jobs service and worker dependencies in `services.ts`:
|
|
57
57
|
|
|
58
58
|
```ts
|
|
59
|
-
import { makePgBoss } from "@shivaedev/effect-pg-boss/service.ts";
|
|
59
|
+
import { makePgBoss } from "@shivaedev/effect-pg-boss/server/service.ts";
|
|
60
60
|
import { Context, Effect, Layer } from "effect";
|
|
61
61
|
|
|
62
62
|
export const Jobs = makePgBoss("@app/Jobs");
|
|
@@ -79,7 +79,7 @@ export const MailLive = Layer.succeed(Mail, {
|
|
|
79
79
|
Define the feature's registrations in `jobs.ts`:
|
|
80
80
|
|
|
81
81
|
```ts
|
|
82
|
-
import { defineQueue, defineSchedule } from "@shivaedev/effect-pg-boss/definition.ts";
|
|
82
|
+
import { defineQueue, defineSchedule } from "@shivaedev/effect-pg-boss/server/definition.ts";
|
|
83
83
|
import { Effect, Schema } from "effect";
|
|
84
84
|
import { Mail } from "./services.ts";
|
|
85
85
|
|
|
@@ -136,7 +136,7 @@ Fail a queue handler or scheduled Effect with `RetryAt` when a provider gives a
|
|
|
136
136
|
|
|
137
137
|
```ts
|
|
138
138
|
import { DateTime, Effect } from "effect";
|
|
139
|
-
import { RetryAt } from "@shivaedev/effect-pg-boss/definition.ts";
|
|
139
|
+
import { RetryAt } from "@shivaedev/effect-pg-boss/server/definition.ts";
|
|
140
140
|
|
|
141
141
|
const waitForQuota = Effect.fail(new RetryAt({
|
|
142
142
|
at: DateTime.makeUnsafe("2030-01-01T00:01:00Z"),
|
|
@@ -392,8 +392,8 @@ This producer story uses the `SendEmail` definition and `Jobs` service from abov
|
|
|
392
392
|
```ts
|
|
393
393
|
import { Context, Layer, Option } from "effect";
|
|
394
394
|
import { expect } from "vitest";
|
|
395
|
-
import { storyKit } from "@shivaedev/test-story/storyKit.ts";
|
|
396
|
-
import { makePgBossTesting, testRetryPolicy } from "@shivaedev/effect-pg-boss/testing.ts";
|
|
395
|
+
import { storyKit } from "@shivaedev/test-story/server/storyKit.ts";
|
|
396
|
+
import { makePgBossTesting, testRetryPolicy } from "@shivaedev/effect-pg-boss/server/testing.ts";
|
|
397
397
|
|
|
398
398
|
const emailStories = storyKit({
|
|
399
399
|
clock: "live",
|
|
@@ -438,13 +438,13 @@ Import the module that defines the name; the package has no root entry.
|
|
|
438
438
|
|
|
439
439
|
| Module | Public names |
|
|
440
440
|
| --- | --- |
|
|
441
|
-
| `@shivaedev/effect-pg-boss/definition.ts` | `defineQueue`, `defineSchedule`, `jobContext`, `RetryAt`; `DefineQueueOptions`, `DefineScheduleOptions`, `JobContext`, `JobPayloadSchema`, `JobRegistration`, `QueueDefinition`, `QueueOptions`, `QueuePolicy`, `QueueWorker`, `RegistrationRequirements`, `ScheduleDefinition`, `ScheduledWorker` |
|
|
442
|
-
| `@shivaedev/effect-pg-boss/service.ts` | `makePgBoss`; `PgBossDefinition`, `PgBossLayerOptions`, `PgBossService` |
|
|
443
|
-
| `@shivaedev/effect-pg-boss/schema.ts` | `installPgBossSchema`; `PgBossSchemaOptions` |
|
|
444
|
-
| `@shivaedev/effect-pg-boss/health.ts` | `deadLetterQueueName`; `JobsHealth`, `QueueCounts`, `QueueHealth` |
|
|
445
|
-
| `@shivaedev/effect-pg-boss/error.ts` | `PgBossError`, `PgBossPayloadError`, `PgBossQueueOptionsError`, `PgBossTestingError`, `toPgBossError`; `PgBossOperation` |
|
|
446
|
-
| `@shivaedev/effect-pg-boss/client.ts` | `defaultClientFactory`; `PgBossClient`, `PgBossClientFactory` |
|
|
447
|
-
| `@shivaedev/effect-pg-boss/testing.ts` | `makePgBossTesting`, `testRetryPolicy`; `PgBossTesting`, `PgBossTestingOptions` |
|
|
441
|
+
| `@shivaedev/effect-pg-boss/server/definition.ts` | `defineQueue`, `defineSchedule`, `jobContext`, `RetryAt`; `DefineQueueOptions`, `DefineScheduleOptions`, `JobContext`, `JobPayloadSchema`, `JobRegistration`, `QueueDefinition`, `QueueOptions`, `QueuePolicy`, `QueueWorker`, `RegistrationRequirements`, `ScheduleDefinition`, `ScheduledWorker` |
|
|
442
|
+
| `@shivaedev/effect-pg-boss/server/service.ts` | `makePgBoss`; `PgBossDefinition`, `PgBossLayerOptions`, `PgBossService` |
|
|
443
|
+
| `@shivaedev/effect-pg-boss/server/schema.ts` | `installPgBossSchema`; `PgBossSchemaOptions` |
|
|
444
|
+
| `@shivaedev/effect-pg-boss/server/health.ts` | `deadLetterQueueName`; `JobsHealth`, `QueueCounts`, `QueueHealth` |
|
|
445
|
+
| `@shivaedev/effect-pg-boss/server/error.ts` | `PgBossError`, `PgBossPayloadError`, `PgBossQueueOptionsError`, `PgBossTestingError`, `toPgBossError`; `PgBossOperation` |
|
|
446
|
+
| `@shivaedev/effect-pg-boss/server/client.ts` | `defaultClientFactory`; `PgBossClient`, `PgBossClientFactory` |
|
|
447
|
+
| `@shivaedev/effect-pg-boss/server/testing.ts` | `makePgBossTesting`, `testRetryPolicy`; `PgBossTesting`, `PgBossTestingOptions` |
|
|
448
448
|
|
|
449
449
|
The definition options keep the pg-boss names: `queue` uses `QueueOptions` (`Queue` except `name` and `deadLetter`, with literal `QueuePolicy` values and `maxDeferrals`), `worker` uses `WorkOptions`, and a schedule's `schedule` uses `ScheduleOptions`. A queue also requires `name` and `schema`; a schedule requires `name` and `cron`.
|
|
450
450
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const cacheSymbol = Symbol.for("@shivaedev/effect-pg-boss/client-cache");
|
|
1
|
+
const cacheSymbol = Symbol.for("@shivaedev/effect-pg-boss/server/client-cache");
|
|
2
2
|
const shared = Reflect.get(globalThis, cacheSymbol);
|
|
3
3
|
const clients = shared instanceof Map ? shared : new Map();
|
|
4
4
|
Reflect.set(globalThis, cacheSymbol, clients);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientCache.js","sourceRoot":"","sources":["../../../src/server/internal/clientCache.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"clientCache.js","sourceRoot":"","sources":["../../../src/server/internal/clientCache.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAChF,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,OAAO,GAAkC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAA4B,CAAC;AACpH,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAE9C,SAAS,QAAQ,CAAC,GAAoB;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACrC,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;WACtB,KAAK,KAAK,IAAI;WACd,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,OAAO;WAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,QAAQ,CACvD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAoB,EAAE,KAAkC;IACjG,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC;YACJ,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;YACzB,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IACD,MAAM,KAAK,GAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC;QACJ,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAoB;IACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;IACR,CAAC;IACD,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;IACtB,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO;IACR,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC,MAAM,CAAC;AACrB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
-
const key = Symbol.for("@shivaedev/effect-pg-boss/error-observers");
|
|
2
|
+
const key = Symbol.for("@shivaedev/effect-pg-boss/server/error-observers");
|
|
3
3
|
const shared = Reflect.get(globalThis, key);
|
|
4
4
|
const observers = shared instanceof WeakMap ? shared : new WeakMap();
|
|
5
5
|
Reflect.set(globalThis, key, observers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientErrors.js","sourceRoot":"","sources":["../../../src/server/internal/clientErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUhC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"clientErrors.js","sourceRoot":"","sources":["../../../src/server/internal/clientErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUhC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;AAC3E,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACrD,MAAM,SAAS,GAA8B,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,EAAoB,CAAC;AAClH,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AAExC,MAAM,UAAU,cAAc,CAAC,KAAY;IAC1C,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACnE,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAoB,EAAE,QAAkB;IAC3E,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAY,CAAC;IACtC,MAAM,QAAQ,GAAa,CAAC,KAAK,EAAE,EAAE;QACpC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACP,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,CAAC;YACf,CAAC;QACF,CAAC;IACF,CAAC,CAAC;IACF,qEAAqE;IACrE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAoB,EAAE,QAAkB;IAC7E,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACzD,CAAC;IACD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAoB;IAC9C,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IAC/B,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;WACtB,KAAK,KAAK,IAAI;WACd,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,UAAU;WACnD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,GAAG,CACjD,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/effect-pg-boss",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Effect-native jobs and lifecycle management for pg-boss",
|
|
5
5
|
"homepage": "https://github.com/ShivaeDev/platform/tree/main/packages/effect-pg-boss#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
},
|
|
25
25
|
"exports": {
|
|
26
26
|
"./*.ts": {
|
|
27
|
-
"source": "./src
|
|
28
|
-
"types": "./dist
|
|
29
|
-
"default": "./dist
|
|
27
|
+
"source": "./src/*.ts",
|
|
28
|
+
"types": "./dist/*.d.ts",
|
|
29
|
+
"default": "./dist/*.js"
|
|
30
30
|
},
|
|
31
|
-
"./
|
|
32
|
-
"./
|
|
31
|
+
"./package.json": "./package.json",
|
|
32
|
+
"./server/internal/*": null
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
35
35
|
"dist",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
],
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@shivaedev/effect-test": "0.7.1",
|
|
45
|
-
"@shivaedev/effect-test-sql": "0.
|
|
46
|
-
"@shivaedev/quality": "0.
|
|
47
|
-
"@shivaedev/test-story": "0.
|
|
45
|
+
"@shivaedev/effect-test-sql": "0.8.0",
|
|
46
|
+
"@shivaedev/quality": "0.30.0",
|
|
47
|
+
"@shivaedev/test-story": "0.17.0",
|
|
48
48
|
"@types/node": "24.19.2",
|
|
49
49
|
"effect": "4.0.4",
|
|
50
50
|
"pg-boss": "12.37.1",
|
|
@@ -5,7 +5,7 @@ interface CachedClient {
|
|
|
5
5
|
references: number;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
const cacheSymbol = Symbol.for("@shivaedev/effect-pg-boss/client-cache");
|
|
8
|
+
const cacheSymbol = Symbol.for("@shivaedev/effect-pg-boss/server/client-cache");
|
|
9
9
|
const shared: unknown = Reflect.get(globalThis, cacheSymbol);
|
|
10
10
|
const clients: Map<string | symbol, unknown> = shared instanceof Map ? shared : new Map<string | symbol, unknown>();
|
|
11
11
|
Reflect.set(globalThis, cacheSymbol, clients);
|
|
@@ -8,7 +8,7 @@ interface Observer {
|
|
|
8
8
|
readonly listeners: Set<Listener>;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const key = Symbol.for("@shivaedev/effect-pg-boss/error-observers");
|
|
11
|
+
const key = Symbol.for("@shivaedev/effect-pg-boss/server/error-observers");
|
|
12
12
|
const shared: unknown = Reflect.get(globalThis, key);
|
|
13
13
|
const observers: WeakMap<WeakKey, unknown> = shared instanceof WeakMap ? shared : new WeakMap<WeakKey, unknown>();
|
|
14
14
|
Reflect.set(globalThis, key, observers);
|