@nestjs-pipeline/job-context 0.2.0 → 0.3.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/README.md +8 -2
- package/dist/decorators/as-system.decorator.js.map +1 -1
- package/dist/decorators/in-job-context.decorator.js.map +1 -1
- package/dist/errors/invalid-job-context.error.d.ts.map +1 -1
- package/dist/errors/invalid-job-context.error.js.map +1 -1
- package/dist/errors/missing-job-context.error.d.ts.map +1 -1
- package/dist/errors/missing-job-context.error.js.map +1 -1
- package/dist/helpers/parse-job-context.js.map +1 -1
- package/dist/helpers/principal-reference.js.map +1 -1
- package/dist/helpers/registration.js.map +1 -1
- package/dist/helpers/with-job-context.js.map +1 -1
- package/dist/interfaces/job-context-options.interface.d.ts +5 -1
- package/dist/interfaces/job-context-options.interface.d.ts.map +1 -1
- package/dist/job-context.module.d.ts +3 -2
- package/dist/job-context.module.d.ts.map +1 -1
- package/dist/job-context.module.js +13 -6
- package/dist/job-context.module.js.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ so pipelines a job dispatches get the same tenant and correlation id.
|
|
|
21
21
|
pnpm add @nestjs-pipeline/job-context @nestjs/common
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
Requires Node.js 22 or later.
|
|
24
|
+
Requires Node.js 22.12 or later and `@nestjs/common` `^12.1.0`.
|
|
25
25
|
|
|
26
26
|
## Setup
|
|
27
27
|
|
|
@@ -76,6 +76,12 @@ export class SessionJobPrincipal implements IJobPrincipal<Capability> {
|
|
|
76
76
|
export class JobsModule {}
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
+
`tenants` is a list, or a function that returns one. A function is called once, when the
|
|
80
|
+
application builds the module's providers, so the list can come from configuration read
|
|
81
|
+
at startup (`tenants: () => config().tenants`) instead of when the module file is
|
|
82
|
+
imported. An empty list throws: a list in `forRoot`, a function when the application
|
|
83
|
+
starts.
|
|
84
|
+
|
|
79
85
|
`capture` reads the current principal when a job is enqueued; only its `id`, `type` and
|
|
80
86
|
`sessionId` are kept. `restore` runs when the job does, inside the job's tenant and
|
|
81
87
|
correlation id: it must re-check the principal against current state, bind it the way a
|
|
@@ -196,7 +202,7 @@ The tenant must be one of the configured tenants.
|
|
|
196
202
|
| `withJobContext(data)` | function | Copies `data` and adds the current `jobContext` |
|
|
197
203
|
| `InJobContext(options?)` | decorator | Runs a job method in its payload's context; `path` defaults to `'data.jobContext'` |
|
|
198
204
|
| `AsSystem(options)` | decorator | Runs system work once per tenant as the declared principal and grants |
|
|
199
|
-
| `JobContextModule.forRoot(options)` | module | Registers `principal` (a class), `tenants
|
|
205
|
+
| `JobContextModule.forRoot(options)` | module | Registers `principal` (a class), `tenants` (a list, or a function called at startup), `sources` and optional `imports` |
|
|
200
206
|
| `ContextSource`, `CorrelationSource`, `JobContextSources` | type | `{ current, run }`; the correlation source adds `create()` and `accepts(id)`; and the `{ tenantId, correlationId }` pair `sources` takes |
|
|
201
207
|
| `IJobPrincipal<TGrant>` | interface | Application port: `capture()` and `restore(principal, work, grants?)` |
|
|
202
208
|
| `PrincipalReference` | type | `{ id, type, sessionId? }` |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"as-system.decorator.js","sourceRoot":"","sources":["../../src/decorators/as-system.decorator.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"as-system.decorator.js","sourceRoot":"","sources":["../../src/decorators/as-system.decorator.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,wEAA6D;AAC7D,0DAA6D;AAW7D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,kBACE,OAAgC;IAEhC,MAAM,SAAS,GAAG,IAAA,iCAAW,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,UAA8B,EAAE,EAAE;QAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAwC,CAAC;QAErE,UAAU,CAAC,KAAK,GAAG,KAAK,WAEtB,GAAG,IAAe;YAElB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAA,iCAAkB,GAAE,CAAC;YAC7D,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CACtC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAC7D,SAAS,CAAC,OAAO,CACf,SAAS,EACT,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EACtC,MAAM,CACP,CACF,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,cAAc,CACtB,QAAQ,EACR,kCAAkC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtD,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;YAC9C,KAAK,EAAE,QAAQ,CAAC,IAAI;YACpB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-job-context.decorator.js","sourceRoot":"","sources":["../../src/decorators/in-job-context.decorator.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"in-job-context.decorator.js","sourceRoot":"","sources":["../../src/decorators/in-job-context.decorator.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,oEAA+D;AAC/D,0DAA6D;AAY7D,SAAS,QAAQ,CAAC,KAAc,EAAE,QAA2B;IAC3D,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACtE,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,sBACE,OAAO,GAAwB,EAAE;IAEjC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhE,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,UAA8B,EAAE,EAAE;QAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAwC,CAAC;QAErE,UAAU,CAAC,KAAK,GAAG,KAAK,WAA0B,GAAG,IAAe;YAClE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAA,iCAAkB,GAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAA,mCAAe,EAC7B,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAC3B,OAAO,EACP,OAAO,CAAC,aAAa,CAAC,OAAO,CAC9B,CAAC;YACF,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CACjD,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CACpD,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAC9C,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B,CACF,CACF,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;YAC9C,KAAK,EAAE,QAAQ,CAAC,IAAI;YACpB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalid-job-context.error.d.ts","sourceRoot":"","sources":["../../src/errors/invalid-job-context.error.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"invalid-job-context.error.d.ts","sourceRoot":"","sources":["../../src/errors/invalid-job-context.error.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAnC,YAAqB,MAAM,EAAE,MAAM,EAGlC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalid-job-context.error.js","sourceRoot":"","sources":["../../src/errors/invalid-job-context.error.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE;;;;;;;;;GASG;AACH,
|
|
1
|
+
{"version":3,"file":"invalid-job-context.error.js","sourceRoot":"","sources":["../../src/errors/invalid-job-context.error.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE;;;;;;;;;GASG;AACH,4BAAoC,SAAQ,KAAK;IAC1B,MAAM;IAA3B,YAAqB,MAAc;QACjC,KAAK,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC;sBADtB,MAAM;QAEzB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing-job-context.error.d.ts","sourceRoot":"","sources":["../../src/errors/missing-job-context.error.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"missing-job-context.error.d.ts","sourceRoot":"","sources":["../../src/errors/missing-job-context.error.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAApC,YAAqB,OAAO,EAAE,MAAM,EAKnC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing-job-context.error.js","sourceRoot":"","sources":["../../src/errors/missing-job-context.error.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE;;;;;;;;GAQG;AACH,
|
|
1
|
+
{"version":3,"file":"missing-job-context.error.js","sourceRoot":"","sources":["../../src/errors/missing-job-context.error.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE;;;;;;;;GAQG;AACH,4BAAoC,SAAQ,KAAK;IAC1B,OAAO;IAA5B,YAAqB,OAAe;QAClC,KAAK,CACH,wBAAwB,OAAO,kEAAkE,CAClG,CAAC;uBAHiB,OAAO;QAI1B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-job-context.js","sourceRoot":"","sources":["../../src/helpers/parse-job-context.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"parse-job-context.js","sourceRoot":"","sources":["../../src/helpers/parse-job-context.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,mFAA6E;AAC7E,mFAA6E;AAE7E,+DAAoD;AAEpD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;AAC3E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAE9D,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CACnB,KAA8B,EAC9B,OAA4B,EAC5B,IAAY;IAEZ,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,kDAAsB,CAAC,GAAG,IAAI,uBAAuB,KAAK,GAAG,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,yBACE,KAAc,EACd,OAA0B,EAC1B,oBAA6C;IAE7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,kDAAsB,CAAC,+BAA+B,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,kDAAsB,CAAC,6BAA6B,CAAC,CAAC;IAClE,CAAC;IACD,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAClD,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACrD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,kDAAsB,CAAC,qCAAqC,CAAC,CAAC;IAC1E,CAAC;IACD,IACE,OAAO,aAAa,KAAK,QAAQ;QACjC,CAAC,oBAAoB,CAAC,aAAa,CAAC,EACpC,CAAC;QACD,MAAM,IAAI,kDAAsB,CAAC,4BAA4B,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,kDAAsB,CAAC,4BAA4B,CAAC,CAAC;IACjE,CAAC;IACD,YAAY,CAAC,SAAS,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAC1C,IACE,CAAC,MAAM,CAAC,EAAE,CAAC;QACX,CAAC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAC/C,CAAC;QACD,MAAM,IAAI,kDAAsB,CAAC,wBAAwB,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO;QACL,QAAQ;QACR,aAAa;QACb,SAAS,EAAE,IAAA,iCAAW,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal-reference.js","sourceRoot":"","sources":["../../src/helpers/principal-reference.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"principal-reference.js","sourceRoot":"","sources":["../../src/helpers/principal-reference.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAItE;;;;;;;;GAQG;AACH,qBAA4B,SAA6B;IACvD,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAC1C,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../src/helpers/registration.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../src/helpers/registration.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;;AAEtE,mFAA6E;AAW7E,IAAI,MAAgC,CAAC;AAErC;;;;;;;GAOG;AACH,kBAAyB,YAA0B;IACjD,MAAM,GAAG,YAAY,CAAC;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,oBAA2B,YAA0B;IACnD,IAAI,MAAM,KAAK,YAAY;QAAE,MAAM,GAAG,SAAS,CAAC;AAClD,CAAC;AAED;;;;;;;;;GASG;AACH;IACE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,kDAAsB,CAAC,4BAA4B,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-job-context.js","sourceRoot":"","sources":["../../src/helpers/with-job-context.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"with-job-context.js","sourceRoot":"","sources":["../../src/helpers/with-job-context.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,mFAA6E;AAE7E,+DAAoD;AACpD,iDAAoD;AAEpD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBACE,IAAO;IAEP,MAAM,SAAS,GACb,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QACvC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,IAAI,SAAS,CACjB,gHAAgH,CACjH,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAA,iCAAkB,GAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5C,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,kDAAsB,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IACrC,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,kDAAsB,CAAC,WAAW,CAAC,CAAC;IAC1E,OAAO;QACL,GAAG,IAAI;QACP,UAAU,EAAE;YACV,QAAQ;YACR,aAAa,EACX,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE;YACnE,SAAS,EAAE,IAAA,iCAAW,EAAC,QAAQ,CAAC;SACjC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -8,8 +8,12 @@ export interface JobContextOptions {
|
|
|
8
8
|
/**
|
|
9
9
|
* Tenants a job may run in. A payload naming another tenant is refused, and
|
|
10
10
|
* `@AsSystem` work runs once per tenant, in this order. Must not be empty.
|
|
11
|
+
*
|
|
12
|
+
* A function is called once, when the application builds the module's
|
|
13
|
+
* providers, so the list can come from configuration read at startup
|
|
14
|
+
* instead of when the module file is imported.
|
|
11
15
|
*/
|
|
12
|
-
tenants: readonly string[];
|
|
16
|
+
tenants: readonly string[] | (() => readonly string[]);
|
|
13
17
|
/**
|
|
14
18
|
* Where the tenant and correlation id are read when a job is enqueued and
|
|
15
19
|
* restored when it runs, such as `tenantSource` of `@nestjs-pipeline/tenant`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-context-options.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/job-context-options.interface.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/B
|
|
1
|
+
{"version":3,"file":"job-context-options.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/job-context-options.interface.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;;;;OAOG;IACH,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,CAAC;IACvD;;;;OAIG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2DAA2D;IAC3D,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;CACrC"}
|
|
@@ -26,13 +26,14 @@ export declare class JobContextModule {
|
|
|
26
26
|
/**
|
|
27
27
|
* Builds the module for `options`.
|
|
28
28
|
*
|
|
29
|
-
* @throws {TypeError} When `options.tenants` is empty.
|
|
29
|
+
* @throws {TypeError} When `options.tenants` is an empty list. A tenant
|
|
30
|
+
* function that returns an empty list throws when the application starts.
|
|
30
31
|
*
|
|
31
32
|
* @example
|
|
32
33
|
* ```ts
|
|
33
34
|
* JobContextModule.forRoot({
|
|
34
35
|
* principal: SessionJobPrincipal,
|
|
35
|
-
* tenants:
|
|
36
|
+
* tenants: () => persistenceConfig().tenants,
|
|
36
37
|
* sources: { tenantId: tenantSource, correlationId: correlationSource },
|
|
37
38
|
* });
|
|
38
39
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-context.module.d.ts","sourceRoot":"","sources":["../src/job-context.module.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,gBAAgB,CAAC;AAYxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAyBpF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,gBAAgB;IAC3B
|
|
1
|
+
{"version":3,"file":"job-context.module.d.ts","sourceRoot":"","sources":["../src/job-context.module.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,gBAAgB,CAAC;AAYxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAyBpF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,gBAAgB;IAC3B;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAcxD;CACF"}
|
|
@@ -65,27 +65,28 @@ let JobContextModule = JobContextModule_1 = class JobContextModule {
|
|
|
65
65
|
/**
|
|
66
66
|
* Builds the module for `options`.
|
|
67
67
|
*
|
|
68
|
-
* @throws {TypeError} When `options.tenants` is empty.
|
|
68
|
+
* @throws {TypeError} When `options.tenants` is an empty list. A tenant
|
|
69
|
+
* function that returns an empty list throws when the application starts.
|
|
69
70
|
*
|
|
70
71
|
* @example
|
|
71
72
|
* ```ts
|
|
72
73
|
* JobContextModule.forRoot({
|
|
73
74
|
* principal: SessionJobPrincipal,
|
|
74
|
-
* tenants:
|
|
75
|
+
* tenants: () => persistenceConfig().tenants,
|
|
75
76
|
* sources: { tenantId: tenantSource, correlationId: correlationSource },
|
|
76
77
|
* });
|
|
77
78
|
* ```
|
|
78
79
|
*/
|
|
79
80
|
static forRoot(options) {
|
|
80
|
-
|
|
81
|
-
throw new TypeError('JobContextModule needs at least one tenant.');
|
|
82
|
-
}
|
|
81
|
+
const { tenants } = options;
|
|
83
82
|
return {
|
|
84
83
|
module: JobContextModule_1,
|
|
85
84
|
imports: options.imports ?? [],
|
|
86
85
|
providers: [
|
|
87
86
|
{ provide: job_context_constants_1.JOB_PRINCIPAL, useClass: options.principal },
|
|
88
|
-
|
|
87
|
+
typeof tenants === 'function'
|
|
88
|
+
? { provide: job_context_constants_1.JOB_TENANTS, useFactory: () => toTenantList(tenants()) }
|
|
89
|
+
: { provide: job_context_constants_1.JOB_TENANTS, useValue: toTenantList(tenants) },
|
|
89
90
|
{ provide: job_context_constants_1.JOB_SOURCES, useValue: options.sources },
|
|
90
91
|
JobContextRegistration,
|
|
91
92
|
],
|
|
@@ -96,4 +97,10 @@ exports.JobContextModule = JobContextModule;
|
|
|
96
97
|
exports.JobContextModule = JobContextModule = JobContextModule_1 = __decorate([
|
|
97
98
|
(0, common_1.Module)({})
|
|
98
99
|
], JobContextModule);
|
|
100
|
+
function toTenantList(tenants) {
|
|
101
|
+
if (tenants.length === 0) {
|
|
102
|
+
throw new TypeError('JobContextModule needs at least one tenant.');
|
|
103
|
+
}
|
|
104
|
+
return [...tenants];
|
|
105
|
+
}
|
|
99
106
|
//# sourceMappingURL=job-context.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-context.module.js","sourceRoot":"","sources":["../src/job-context.module.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;;;;;;;;;;;;;AAEtE,2CAMwB;AACxB,6EAI2C;AAC3C,yDAIgC;AAKhC;;;GAGG;AACH,IACM,sBAAsB,GAD5B,MACM,sBAAsB;IACT,YAAY,CAAe;IAE5C,YACyB,SAAwB,EAC1B,OAA0B,EAC1B,OAA0B;QAE/C,IAAI,CAAC,YAAY,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACpD,IAAA,uBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,qBAAqB;QACnB,IAAA,yBAAU,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;CACF,CAAA;AAfK,sBAAsB;IAD3B,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,qCAAa,CAAC,CAAA;IACrB,WAAA,IAAA,eAAM,EAAC,mCAAW,CAAC,CAAA;IACnB,WAAA,IAAA,eAAM,EAAC,mCAAW,CAAC,CAAA;;GANlB,sBAAsB,CAe3B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEI,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B
|
|
1
|
+
{"version":3,"file":"job-context.module.js","sourceRoot":"","sources":["../src/job-context.module.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;;;;;;;;;;;;;AAEtE,2CAMwB;AACxB,6EAI2C;AAC3C,yDAIgC;AAKhC;;;GAGG;AACH,IACM,sBAAsB,GAD5B,MACM,sBAAsB;IACT,YAAY,CAAe;IAE5C,YACyB,SAAwB,EAC1B,OAA0B,EAC1B,OAA0B;QAE/C,IAAI,CAAC,YAAY,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACpD,IAAA,uBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,qBAAqB;QACnB,IAAA,yBAAU,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;CACF,CAAA;AAfK,sBAAsB;IAD3B,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,qCAAa,CAAC,CAAA;IACrB,WAAA,IAAA,eAAM,EAAC,mCAAW,CAAC,CAAA;IACnB,WAAA,IAAA,eAAM,EAAC,mCAAW,CAAC,CAAA;;GANlB,sBAAsB,CAe3B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEI,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B;;;;;;;;;;;;;;OAcG;IACI,AAAP,MAAM,CAAC,OAAO,CAAC,OAA0B;QACvC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5B,OAAO;YACL,MAAM,oBAAkB;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,qCAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE;gBACvD,OAAO,OAAO,KAAK,UAAU;oBAC3B,CAAC,CAAC,EAAE,OAAO,EAAE,mCAAW,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE;oBACrE,CAAC,CAAC,EAAE,OAAO,EAAE,mCAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE;gBAC7D,EAAE,OAAO,EAAE,mCAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE;gBACnD,sBAAsB;aACvB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;;2BA/BY,gBAAgB;IAD5B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CA+B5B;AAED,SAAS,YAAY,CAAC,OAA0B;IAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestjs-pipeline/job-context",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Carries the tenant, correlation id and principal of a request into the queue jobs it enqueues, and gives system-started work an explicit context",
|
|
5
5
|
"author": "Aristotelis",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": ">=22.
|
|
8
|
+
"node": ">=22.12.0"
|
|
9
9
|
},
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@nestjs/common": "^
|
|
40
|
+
"@nestjs/common": "^12.1.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@nestjs/common": "^
|
|
44
|
-
"@vitest/coverage-v8": "^
|
|
43
|
+
"@nestjs/common": "^12.1.1",
|
|
44
|
+
"@vitest/coverage-v8": "^5.0.2",
|
|
45
45
|
"reflect-metadata": "^0.2.2",
|
|
46
|
-
"vitest": "^
|
|
46
|
+
"vitest": "^5.0.2"
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|
|
49
49
|
"build": "tsc -p tsconfig.build.json",
|