ddd-ts-kit 0.21.0 → 0.22.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 +23 -0
- package/dist/check/explain/clean-docs.js +1 -1
- package/dist/check/explain/clean-docs.js.map +1 -1
- package/dist/check/rules/clean-function-size.js +2 -2
- package/dist/check/rules/clean-function-size.js.map +1 -1
- package/dist/commands/generate.js +2 -0
- package/dist/commands/generate.js.map +1 -1
- package/dist/generate/given-name.d.ts +15 -0
- package/dist/generate/given-name.d.ts.map +1 -0
- package/dist/generate/given-name.js +21 -0
- package/dist/generate/given-name.js.map +1 -0
- package/dist/generate/kind.d.ts +2 -0
- package/dist/generate/kind.d.ts.map +1 -1
- package/dist/generate/kinds/event-handler-kind.d.ts.map +1 -1
- package/dist/generate/kinds/event-handler-kind.js +7 -4
- package/dist/generate/kinds/event-handler-kind.js.map +1 -1
- package/dist/generate/kinds/integration-handler-kind.d.ts.map +1 -1
- package/dist/generate/kinds/integration-handler-kind.js +8 -2
- package/dist/generate/kinds/integration-handler-kind.js.map +1 -1
- package/dist/init/manifest/versions.js +24 -24
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/worker/briefing-of.d.ts.map +1 -1
- package/dist/worker/briefing-of.js +8 -3
- package/dist/worker/briefing-of.js.map +1 -1
- package/package.json +2 -2
- package/templates/event-handler/event-handler.declared.ts.tpl +1 -1
- package/templates/event-handler/event-handler.spec.ts.tpl +2 -2
- package/templates/event-handler/event-handler.ts.tpl +1 -1
- package/templates/event-handler/wiring.manual.tpl +4 -4
- package/templates/event-handler/wiring.tsyringe.tpl +4 -4
- package/templates/pipeline/package-scripts.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,29 @@ What each version changes for someone who uses the kit. The packages of `package
|
|
|
4
4
|
together, under one version; the notes of each [GitHub release](https://github.com/gbourgeat/ddd-ts-kit/releases)
|
|
5
5
|
list the pull requests behind it.
|
|
6
6
|
|
|
7
|
+
## 0.22.0
|
|
8
|
+
|
|
9
|
+
**A context builder keeps its report current and regenerates with each slice.** The
|
|
10
|
+
`context-builder` agent has 150 turns instead of 80, and after each step of a slice it rewrites
|
|
11
|
+
`.ddd-ts-kit/report.md` in its worktree, in the form of its final report: an agent that stops
|
|
12
|
+
early leaves its state there, and `parallel-work` tells the conductor to read it. The guard lets a
|
|
13
|
+
worker write that one file. After each slice the worker runs `npm run regenerate` and commits the
|
|
14
|
+
derived files with it, as the briefing of `worker-scope` now says: they were left to the conductor,
|
|
15
|
+
so a worker stopped on "regenerate" and the run stopped with it. The agent never shortens a
|
|
16
|
+
comment, a test or a written rule to stay under a size limit: it extracts instead.
|
|
17
|
+
|
|
18
|
+
**`generate event-handler` and `generate integration-handler` take `--name <Name>`.** A reaction
|
|
19
|
+
was named after the event it handles; when the design names it after what it does in its context,
|
|
20
|
+
`--name` gives that name to the file, the class, the spec and the registration, and for an
|
|
21
|
+
integration handler to its consumer name and its system actor. The name passes the same checks
|
|
22
|
+
as any concept of the context (`--term`, `--allow-name`). Without it, nothing changes.
|
|
23
|
+
|
|
24
|
+
**`clean/function-size` names the fix.** More than three parameters: group them in a typed props
|
|
25
|
+
object or a value object (`Contestation.create({ ... })`), never a fourth parameter. A `describe`
|
|
26
|
+
past the 100-line ceiling: one top-level `describe` per behaviour, in the same file. The ESLint
|
|
27
|
+
rule no longer takes production code such as `context.run(callback)` for a group of tests: such a
|
|
28
|
+
callback is now held to the limit of a function, and may be reported where it was not.
|
|
29
|
+
|
|
7
30
|
## 0.21.0
|
|
8
31
|
|
|
9
32
|
**A rule can be set for some files only, and a rule off everywhere is said.** `rules.<id>` in
|
|
@@ -7,7 +7,7 @@ export function parseFile(text: string) { return text.split('\\n').map(parseLine
|
|
|
7
7
|
function parseLine(line: string) {}`,
|
|
8
8
|
},
|
|
9
9
|
'clean/function-size': {
|
|
10
|
-
why: 'A long function mixes several levels of abstraction, and its parts can be neither named nor tested alone. More than three parameters usually travel together because they are one concept without a type. Small functions with few arguments are what makes the stepdown order readable. The limits are configurable under `limits`, up to a ceiling: no function is longer than 100 lines, describe callbacks, module files and tests included, and that ceiling is an error whatever the severity of the rule.',
|
|
10
|
+
why: 'A long function mixes several levels of abstraction, and its parts can be neither named nor tested alone. More than three parameters usually travel together because they are one concept without a type: name it, as a typed props object or a value object (`Contestation.create({ claim, reason, raisedBy, raisedAt })`), rather than adding a fourth parameter. Small functions with few arguments are what makes the stepdown order readable. The limits are configurable under `limits`, up to a ceiling: no function is longer than 100 lines, describe callbacks, module files and tests included, and that ceiling is an error whatever the severity of the rule. A `describe` longer than that covers several behaviours: the spec file holds one top-level `describe` per behaviour (a nested one counts in its parent), and a second spec file is needed only past the 350 lines of `clean/file-size`.',
|
|
11
11
|
bad: `function issue(id: string, customer: string, amount: number, currency: string, dueOn: Date) {}`,
|
|
12
12
|
good: `function issue(id: string, customer: CustomerId, total: Money) {}`,
|
|
13
13
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean-docs.js","sourceRoot":"","sources":["../../../src/check/explain/clean-docs.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAsC;IAC3D,gBAAgB,EAAE;QAChB,GAAG,EAAE,4RAA4R;QACjS,GAAG,EAAE;qFAC4E;QACjF,IAAI,EAAE;oCAC0B;KACjC;IACD,qBAAqB,EAAE;QACrB,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"clean-docs.js","sourceRoot":"","sources":["../../../src/check/explain/clean-docs.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAsC;IAC3D,gBAAgB,EAAE;QAChB,GAAG,EAAE,4RAA4R;QACjS,GAAG,EAAE;qFAC4E;QACjF,IAAI,EAAE;oCAC0B;KACjC;IACD,qBAAqB,EAAE;QACrB,GAAG,EAAE,o3BAAo3B;QACz3B,GAAG,EAAE,gGAAgG;QACrG,IAAI,EAAE,mEAAmE;KAC1E;IACD,6BAA6B,EAAE;QAC7B,GAAG,EAAE,yOAAyO;QAC9O,GAAG,EAAE,qEAAqE;QAC1E,IAAI,EAAE,8CAA8C;KACrD;IACD,wBAAwB,EAAE;QACxB,GAAG,EAAE,kPAAkP;QACvP,GAAG,EAAE;;iCAEwB;QAC7B,IAAI,EAAE;+BACqB;KAC5B;IACD,uBAAuB,EAAE;QACvB,GAAG,EAAE,6PAA6P;QAClQ,GAAG,EAAE,2DAA2D;QAChE,IAAI,EAAE,uEAAuE;KAC9E;IACD,wBAAwB,EAAE;QACxB,GAAG,EAAE,+NAA+N;QACpO,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE;2BACiB;KACxB;CACF,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FUNCTION_LINES_CEILING } from '../../config/index.js';
|
|
2
2
|
import { inlineFunctions } from '../structure/inline-functions.js';
|
|
3
3
|
import { reporter } from '../support/reporter.js';
|
|
4
|
-
const SPLIT_FIX = 'Extract each step into a function named after what it does, placed below this one, until the body reads as a list of intentions; a test suite is split into
|
|
4
|
+
const SPLIT_FIX = 'Extract each step into a function named after what it does, placed below this one, until the body reads as a list of intentions; a test suite is split into several top-level `describe` blocks of the same spec file, one per behaviour (a nested `describe` counts in its parent), and into a second spec file only past the 350 lines of clean/file-size.';
|
|
5
5
|
export const cleanFunctionSize = {
|
|
6
6
|
id: 'clean/function-size',
|
|
7
7
|
description: `A function has at most 3 parameters and 30 lines (configurable under \`limits\`), and never more than ${FUNCTION_LINES_CEILING} lines, which is an error whatever the severity of the rule.`,
|
|
@@ -70,7 +70,7 @@ function tooManyParameters(shape, limits) {
|
|
|
70
70
|
return [
|
|
71
71
|
{
|
|
72
72
|
message: `${shape.label} takes ${shape.parameters} parameters (limit ${limits.maxParameters}).`,
|
|
73
|
-
fix: 'Group the parameters that travel together into a
|
|
73
|
+
fix: 'Group the parameters that travel together into a typed props object or a value object (`Contestation.create({ claim, reason, raisedBy, raisedAt })`): they are a concept that has no name yet. Never add one more parameter, nor split the function only to get under the limit.',
|
|
74
74
|
},
|
|
75
75
|
];
|
|
76
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean-function-size.js","sourceRoot":"","sources":["../../../src/check/rules/clean-function-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAe,MAAM,uBAAuB,CAAC;AAO5E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAalD,MAAM,SAAS,GACb,
|
|
1
|
+
{"version":3,"file":"clean-function-size.js","sourceRoot":"","sources":["../../../src/check/rules/clean-function-size.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,7 @@ const OPTIONS = {
|
|
|
71
71
|
'event-sourced': SWITCH,
|
|
72
72
|
reason: TEXT,
|
|
73
73
|
number: TEXT,
|
|
74
|
+
name: TEXT,
|
|
74
75
|
every: TEXT,
|
|
75
76
|
cron: TEXT,
|
|
76
77
|
'time-zone': TEXT,
|
|
@@ -123,6 +124,7 @@ const TEXT_FLAGS = [
|
|
|
123
124
|
'deviation',
|
|
124
125
|
'reason',
|
|
125
126
|
'number',
|
|
127
|
+
'name',
|
|
126
128
|
'kind',
|
|
127
129
|
'every',
|
|
128
130
|
'cron',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Name } from '../naming/index.js';
|
|
2
|
+
import type { Scope } from './scope.js';
|
|
3
|
+
/** The element `--name` names, and the role words its generator adds itself after the name. */
|
|
4
|
+
export interface NamedElement {
|
|
5
|
+
readonly what: string;
|
|
6
|
+
/** Removed from the end of the given name when the caller typed them: `integration`, `handler`. */
|
|
7
|
+
readonly suffix: readonly string[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The name of an element whose generator derives it from another argument (a handler from the
|
|
11
|
+
* event it reacts to): that name, or the one `--name` gives, as the design calls the element,
|
|
12
|
+
* checked as any concept of the context is.
|
|
13
|
+
*/
|
|
14
|
+
export declare function givenName(scope: Scope, derived: Name, element: NamedElement): Name;
|
|
15
|
+
//# sourceMappingURL=given-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"given-name.d.ts","sourceRoot":"","sources":["../../src/generate/given-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,+FAA+F;AAC/F,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mGAAmG;IACnG,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAQlF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { splitWords } from '../naming/index.js';
|
|
2
|
+
import { concept } from './concept.js';
|
|
3
|
+
/**
|
|
4
|
+
* The name of an element whose generator derives it from another argument (a handler from the
|
|
5
|
+
* event it reacts to): that name, or the one `--name` gives, as the design calls the element,
|
|
6
|
+
* checked as any concept of the context is.
|
|
7
|
+
*/
|
|
8
|
+
export function givenName(scope, derived, element) {
|
|
9
|
+
const given = scope.flags.name;
|
|
10
|
+
if (given === undefined) {
|
|
11
|
+
return derived;
|
|
12
|
+
}
|
|
13
|
+
return concept(scope, withoutSuffix(given, element.suffix), { what: element.what });
|
|
14
|
+
}
|
|
15
|
+
function withoutSuffix(input, suffix) {
|
|
16
|
+
const words = splitWords(input);
|
|
17
|
+
const ending = words.slice(-suffix.length);
|
|
18
|
+
const typed = words.length > suffix.length && ending.every((word, index) => word === suffix[index]);
|
|
19
|
+
return typed ? words.slice(0, -suffix.length).join(' ') : input;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=given-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"given-name.js","sourceRoot":"","sources":["../../src/generate/given-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAUvC;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAY,EAAE,OAAa,EAAE,OAAqB;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAE/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,MAAyB;IAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAEpG,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClE,CAAC"}
|
package/dist/generate/kind.d.ts
CHANGED
|
@@ -45,6 +45,8 @@ export interface KindFlags {
|
|
|
45
45
|
readonly reason?: string;
|
|
46
46
|
/** The number of a decision record, as `--number <n>`, when the project numbers by block. */
|
|
47
47
|
readonly number?: string;
|
|
48
|
+
/** The name of an element its generator would otherwise derive from another argument, as `--name <Name>`. */
|
|
49
|
+
readonly name?: string;
|
|
48
50
|
/** When a domain event handler runs: `before-commit`, the default, or `after-commit`. */
|
|
49
51
|
readonly phase?: string;
|
|
50
52
|
/** The route group of a controller, or the parent of a group, by its name. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kind.d.ts","sourceRoot":"","sources":["../../src/generate/kind.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kind.d.ts","sourceRoot":"","sources":["../../src/generate/kind.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler-kind.d.ts","sourceRoot":"","sources":["../../../src/generate/kinds/event-handler-kind.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-handler-kind.d.ts","sourceRoot":"","sources":["../../../src/generate/kinds/event-handler-kind.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAUvC,eAAO,MAAM,gBAAgB,EAAE,IA4B9B,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { CliError } from '../../cli-error.js';
|
|
2
2
|
import { emit } from '../emit.js';
|
|
3
|
+
import { givenName } from '../given-name.js';
|
|
3
4
|
import { learnTerms } from '../learn-terms.js';
|
|
5
|
+
import { named } from '../named.js';
|
|
4
6
|
import { openScope } from '../open-scope.js';
|
|
5
7
|
import { wire } from '../wire.js';
|
|
6
8
|
import { ensureDomainEvent } from './ensure-domain-event.js';
|
|
@@ -9,7 +11,7 @@ import { eventVars } from './event-vars.js';
|
|
|
9
11
|
export const eventHandlerKind = {
|
|
10
12
|
name: 'event-handler',
|
|
11
13
|
aliases: [],
|
|
12
|
-
usage: 'event-handler <context> <Aggregate> <Fact> [--phase before-commit|after-commit] [--term "<Term>=<meaning>"]...',
|
|
14
|
+
usage: 'event-handler <context> <Aggregate> <Fact> [--phase before-commit|after-commit] [--name <Name>] [--term "<Term>=<meaning>"]...',
|
|
13
15
|
summary: 'A reaction to a domain event of the same context, its spec and its subscription: before the commit of the unit of work by default, after it with --phase after-commit, for an effect no transaction covers.',
|
|
14
16
|
positionals: ['context', 'Aggregate', 'Fact'],
|
|
15
17
|
writesShared: false,
|
|
@@ -18,10 +20,11 @@ export const eventHandlerKind = {
|
|
|
18
20
|
learnTerms(scope);
|
|
19
21
|
const names = ensureDomainEvent(scope, request.args[1] ?? '', request.args[2] ?? '');
|
|
20
22
|
assertDeclaresItsName(scope, names);
|
|
21
|
-
const
|
|
23
|
+
const handler = givenName(scope, names.event, { what: 'event handler', suffix: ['event', 'handler'] });
|
|
24
|
+
const context = { ...eventVars(scope, names), handler: { ...named(handler), ...phaseVars(scope) } };
|
|
22
25
|
emit(scope, context, [
|
|
23
|
-
['event-handler/event-handler.ts.tpl', `application/event-handlers/${
|
|
24
|
-
['event-handler/event-handler.spec.ts.tpl', `test/unit/${
|
|
26
|
+
['event-handler/event-handler.ts.tpl', `application/event-handlers/${handler.kebab}.event-handler.ts`],
|
|
27
|
+
['event-handler/event-handler.spec.ts.tpl', `test/unit/${handler.kebab}.event-handler.spec.ts`],
|
|
25
28
|
]);
|
|
26
29
|
wire(scope, 'event-handler', context);
|
|
27
30
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/event-handler-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"event-handler-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/event-handler-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,EAAE;IACX,KAAK,EACH,gIAAgI;IAClI,OAAO,EACL,6MAA6M;IAC/M,WAAW,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;IAC7C,YAAY,EAAE,KAAK;IACnB,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAEjC,UAAU,CAAC,KAAK,CAAC,CAAC;QAElB,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAErF,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEpC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACvG,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAEpG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;YACnB,CAAC,oCAAoC,EAAE,8BAA8B,OAAO,CAAC,KAAK,mBAAmB,CAAC;YACtG,CAAC,yCAAyC,EAAE,aAAa,OAAO,CAAC,KAAK,wBAAwB,CAAC;SAChG,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAEjD,6FAA6F;AAC7F,SAAS,SAAS,CAAC,KAAY;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC;IAEnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,QAAQ,CAChB,kBAAkB,KAAK,IAAI,EAC3B,4NAA4N,CAC7N,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,KAAK,cAAc,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-handler-kind.d.ts","sourceRoot":"","sources":["../../../src/generate/kinds/integration-handler-kind.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"integration-handler-kind.d.ts","sourceRoot":"","sources":["../../../src/generate/kinds/integration-handler-kind.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAWvC,eAAO,MAAM,sBAAsB,EAAE,IAiDpC,CAAC"}
|
|
@@ -8,18 +8,24 @@ import { openScope } from '../open-scope.js';
|
|
|
8
8
|
import { vars } from '../vars.js';
|
|
9
9
|
import { wire } from '../wire.js';
|
|
10
10
|
import { findEventDeclaration } from './find-event-declaration.js';
|
|
11
|
+
import { givenName } from '../given-name.js';
|
|
12
|
+
import { learnTerms } from '../learn-terms.js';
|
|
11
13
|
export const integrationHandlerKind = {
|
|
12
14
|
name: 'integration-handler',
|
|
13
15
|
aliases: ['consumer'],
|
|
14
|
-
usage: 'integration-handler <context> <upstreamContext> <eventType>',
|
|
16
|
+
usage: 'integration-handler <context> <upstreamContext> <eventType> [--name <Name>] [--term "<Term>=<meaning>"]...',
|
|
15
17
|
summary: 'An idempotent handler of an integration event of a declared upstream, its spec and its subscription under a consumer name.',
|
|
16
18
|
positionals: ['context', 'upstreamContext', 'eventType'],
|
|
17
19
|
writesShared: false,
|
|
18
20
|
run: (request) => {
|
|
19
21
|
const scope = openScope(request);
|
|
22
|
+
learnTerms(scope);
|
|
20
23
|
const upstream = declaredUpstream(scope, request.args[1] ?? '');
|
|
21
24
|
const eventType = eventTypeOf(upstream, request.args[2] ?? '');
|
|
22
|
-
const name = toName(eventType.split('.').join(' '))
|
|
25
|
+
const name = givenName(scope, toName(eventType.split('.').join(' ')), {
|
|
26
|
+
what: 'integration handler',
|
|
27
|
+
suffix: ['integration', 'handler'],
|
|
28
|
+
});
|
|
23
29
|
const declaration = findEventDeclaration(scope, upstream.kebab, eventType);
|
|
24
30
|
if (declaration === undefined && isDeclared(scope.config)) {
|
|
25
31
|
throw undeclaredEvent(upstream, eventType);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-handler-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/integration-handler-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAa,MAAM,uBAAuB,CAAC;AAE5E,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"integration-handler-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/integration-handler-kind.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
/** Ranges written to the generated package.json; bumped together with the kit. */
|
|
2
2
|
export const VERSIONS = {
|
|
3
|
-
'@ddd-ts-kit/kernel': '^0.
|
|
4
|
-
'@ddd-ts-kit/validation': '^0.
|
|
5
|
-
'@ddd-ts-kit/http': '^0.
|
|
6
|
-
'@ddd-ts-kit/tracing': '^0.
|
|
7
|
-
'@ddd-ts-kit/di': '^0.
|
|
8
|
-
'@ddd-ts-kit/events': '^0.
|
|
9
|
-
'@ddd-ts-kit/testing': '^0.
|
|
10
|
-
'@ddd-ts-kit/drizzle': '^0.
|
|
11
|
-
'@ddd-ts-kit/knex': '^0.
|
|
12
|
-
'@ddd-ts-kit/prisma': '^0.
|
|
13
|
-
'@ddd-ts-kit/typeorm': '^0.
|
|
14
|
-
'@ddd-ts-kit/auth': '^0.
|
|
15
|
-
'@ddd-ts-kit/rabbitmq': '^0.
|
|
16
|
-
'@ddd-ts-kit/aspects': '^0.
|
|
17
|
-
'@ddd-ts-kit/audit': '^0.
|
|
18
|
-
'@ddd-ts-kit/redis': '^0.
|
|
19
|
-
'@ddd-ts-kit/kafka': '^0.
|
|
20
|
-
'@ddd-ts-kit/nats': '^0.
|
|
21
|
-
'@ddd-ts-kit/scheduling': '^0.
|
|
22
|
-
'@ddd-ts-kit/sentry': '^0.
|
|
23
|
-
'@ddd-ts-kit/s3': '^0.
|
|
3
|
+
'@ddd-ts-kit/kernel': '^0.22.0',
|
|
4
|
+
'@ddd-ts-kit/validation': '^0.22.0',
|
|
5
|
+
'@ddd-ts-kit/http': '^0.22.0',
|
|
6
|
+
'@ddd-ts-kit/tracing': '^0.22.0',
|
|
7
|
+
'@ddd-ts-kit/di': '^0.22.0',
|
|
8
|
+
'@ddd-ts-kit/events': '^0.22.0',
|
|
9
|
+
'@ddd-ts-kit/testing': '^0.22.0',
|
|
10
|
+
'@ddd-ts-kit/drizzle': '^0.22.0',
|
|
11
|
+
'@ddd-ts-kit/knex': '^0.22.0',
|
|
12
|
+
'@ddd-ts-kit/prisma': '^0.22.0',
|
|
13
|
+
'@ddd-ts-kit/typeorm': '^0.22.0',
|
|
14
|
+
'@ddd-ts-kit/auth': '^0.22.0',
|
|
15
|
+
'@ddd-ts-kit/rabbitmq': '^0.22.0',
|
|
16
|
+
'@ddd-ts-kit/aspects': '^0.22.0',
|
|
17
|
+
'@ddd-ts-kit/audit': '^0.22.0',
|
|
18
|
+
'@ddd-ts-kit/redis': '^0.22.0',
|
|
19
|
+
'@ddd-ts-kit/kafka': '^0.22.0',
|
|
20
|
+
'@ddd-ts-kit/nats': '^0.22.0',
|
|
21
|
+
'@ddd-ts-kit/scheduling': '^0.22.0',
|
|
22
|
+
'@ddd-ts-kit/sentry': '^0.22.0',
|
|
23
|
+
'@ddd-ts-kit/s3': '^0.22.0',
|
|
24
24
|
'@aws-sdk/client-s3': '^3.1150.0',
|
|
25
25
|
'@aws-sdk/lib-storage': '^3.1150.0',
|
|
26
26
|
'@aws-sdk/s3-request-presigner': '^3.1150.0',
|
|
27
27
|
busboy: '^1.6.0',
|
|
28
28
|
'@sentry/node': '^11.6.0',
|
|
29
|
-
'@ddd-ts-kit/pino': '^0.
|
|
29
|
+
'@ddd-ts-kit/pino': '^0.22.0',
|
|
30
30
|
pino: '^10.4.0',
|
|
31
31
|
'pino-pretty': '^13.2.0',
|
|
32
|
-
'@ddd-ts-kit/winston': '^0.
|
|
32
|
+
'@ddd-ts-kit/winston': '^0.22.0',
|
|
33
33
|
winston: '^3.19.0',
|
|
34
34
|
'@confluentinc/kafka-javascript': '^1.11.0',
|
|
35
35
|
'@nats-io/jetstream': '^3.4.0',
|
|
@@ -37,7 +37,7 @@ export const VERSIONS = {
|
|
|
37
37
|
ioredis: '^6.0.0',
|
|
38
38
|
jose: '^6.0.0',
|
|
39
39
|
amqplib: '^2.2.0',
|
|
40
|
-
'ddd-ts-kit': '^0.
|
|
40
|
+
'ddd-ts-kit': '^0.22.0',
|
|
41
41
|
tsx: '^4.23.15',
|
|
42
42
|
vitest: '^5.0.3',
|
|
43
43
|
zod: '^4.6.5',
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.22.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.
|
|
1
|
+
export const VERSION = '0.22.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"briefing-of.d.ts","sourceRoot":"","sources":["../../src/worker/briefing-of.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"briefing-of.d.ts","sourceRoot":"","sources":["../../src/worker/briefing-of.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAkCrD"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** The report a worker keeps current in its worktree, ignored by git with the rest of `.ddd-ts-kit/`. */
|
|
2
|
+
const REPORT_FILE = '.ddd-ts-kit/report.md';
|
|
1
3
|
/**
|
|
2
4
|
* The briefing of a context worker, as the parallel-work skill of the plugin writes it, with
|
|
3
5
|
* what the project says filled in. What only the conductor knows stays between angle brackets.
|
|
@@ -22,8 +24,10 @@ export function briefingOf(place) {
|
|
|
22
24
|
`\`npx ddd-ts-kit describe ${context} --json\`. Then the \`next\` places each generator prints.`,
|
|
23
25
|
'',
|
|
24
26
|
'For each slice: generate with --local-only --json, fill the TODO(domain) markers, replace every it.todo',
|
|
25
|
-
`by a test, \`npx ddd-ts-kit check --changed-since ${trunk}\`, \`npm test -- ${context}
|
|
26
|
-
`commit: \`feat(${context}): <slice in business words>\`.`,
|
|
27
|
+
`by a test, \`npm run regenerate\`, \`npx ddd-ts-kit check --changed-since ${trunk}\`, \`npm test -- ${context}\`,`,
|
|
28
|
+
`then one commit, with the files regenerate rewrote: \`feat(${context}): <slice in business words>\`.`,
|
|
29
|
+
`After each step, rewrite ${REPORT_FILE} in the worktree in the form of the report below: if you stop,`,
|
|
30
|
+
'the conductor reads it there.',
|
|
27
31
|
'',
|
|
28
32
|
'Done when: every slice is committed, `npm run verify` is green in the worktree, and',
|
|
29
33
|
`\`npx ddd-ts-kit todo ${context}\` lists nothing.`,
|
|
@@ -41,7 +45,8 @@ function scopeLines({ config, generators }, directory) {
|
|
|
41
45
|
`- You may not write anything else. Shared files (config, ${config.platformDir}, ${config.sourceRoot}/main.ts,`,
|
|
42
46
|
' package.json, lockfile, migrations, docs/) and other contexts are refused by the guard:',
|
|
43
47
|
' report the need, do not work around it. A slice that changes the stored state generates a',
|
|
44
|
-
' working migration only: `npm run db:generate working-<what-it-does>`.',
|
|
48
|
+
' working migration only: `npm run db:generate working-<what-it-does>`. The derived files (generated',
|
|
49
|
+
' documents, barrels, context map, dependency rules) are written by `npm run regenerate`, never by hand.',
|
|
45
50
|
`- Generators you may run: ${generators.join(', ')}.`,
|
|
46
51
|
' The others are run by the conductor.',
|
|
47
52
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"briefing-of.js","sourceRoot":"","sources":["../../src/worker/briefing-of.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACvC,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;IAE3D,OAAO;QACL,iCAAiC,OAAO,OAAO,KAAK,CAAC,OAAO,GAAG;QAC/D,EAAE;QACF,aAAa,IAAI,cAAc,KAAK,CAAC,MAAM,aAAa,KAAK,EAAE;QAC/D,6CAA6C,IAAI,wBAAwB,IAAI,MAAM;QACnF,EAAE;QACF,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;QAC/B,EAAE;QACF,6DAA6D;QAC7D,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,EAAE;QACF,sCAAsC,WAAW,CAAC,KAAK,CAAC,EAAE;QAC1D,EAAE;QACF,yBAAyB,SAAS,mBAAmB;QACrD,6BAA6B,OAAO,4DAA4D;QAChG,EAAE;QACF,yGAAyG;QACzG,
|
|
1
|
+
{"version":3,"file":"briefing-of.js","sourceRoot":"","sources":["../../src/worker/briefing-of.ts"],"names":[],"mappings":"AAGA,yGAAyG;AACzG,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACvC,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;IAE3D,OAAO;QACL,iCAAiC,OAAO,OAAO,KAAK,CAAC,OAAO,GAAG;QAC/D,EAAE;QACF,aAAa,IAAI,cAAc,KAAK,CAAC,MAAM,aAAa,KAAK,EAAE;QAC/D,6CAA6C,IAAI,wBAAwB,IAAI,MAAM;QACnF,EAAE;QACF,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;QAC/B,EAAE;QACF,6DAA6D;QAC7D,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,EAAE;QACF,sCAAsC,WAAW,CAAC,KAAK,CAAC,EAAE;QAC1D,EAAE;QACF,yBAAyB,SAAS,mBAAmB;QACrD,6BAA6B,OAAO,4DAA4D;QAChG,EAAE;QACF,yGAAyG;QACzG,6EAA6E,KAAK,qBAAqB,OAAO,KAAK;QACnH,8DAA8D,OAAO,iCAAiC;QACtG,4BAA4B,WAAW,gEAAgE;QACvG,+BAA+B;QAC/B,EAAE;QACF,qFAAqF;QACrF,yBAAyB,OAAO,mBAAmB;QACnD,EAAE;QACF,4FAA4F;QAC5F,6FAA6F;QAC7F,2FAA2F;QAC3F,yBAAyB;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAe,EAAE,SAAiB;IACxE,OAAO;QACL,OAAO;QACP,oBAAoB,SAAS,yDAAyD;QACtF,4DAA4D,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,UAAU,WAAW;QAC/G,2FAA2F;QAC3F,6FAA6F;QAC7F,sGAAsG;QACtG,0GAA0G;QAC1G,6BAA6B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrD,wCAAwC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,MAA+B;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,4FAA4F,CAAC,CAAC;IACxG,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CACf,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,KAAK,EAAE,EAAE,CACjH,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAe;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IAE5D,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,OAAO,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACzG,CAAC,CAAC,MAAM,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ddd-ts-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Bootstrap, scaffold and verify Domain-Driven Design (DDD), Clean Architecture and hexagonal TypeScript backends on Node.js: project and code generators, architecture checks, OpenAPI and AsyncAPI documents, for developers and AI coding agents (Claude Code, Codex, GitHub Copilot).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ddd",
|
|
@@ -52,6 +52,6 @@
|
|
|
52
52
|
"clean:packages": "node dist/bin.js check --clean-only ../kernel/src ../validation/src ../http/src ../tracing/src ../di/src ../events/src ../testing/src ../s3/src ../drizzle/src ../knex/src ../prisma/src ../typeorm/src ../aspects/src ../rabbitmq/src ../auth/src ../audit/src ../redis/src ../scheduling/src ../pino/src ../winston/src ../sentry/src ../kafka/src ../nats/src ../eslint-plugin/src"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@ddd-ts-kit/kernel": "^0.
|
|
55
|
+
"@ddd-ts-kit/kernel": "^0.22.0"
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -2,7 +2,7 @@ import { DomainEventHandler } from '@ddd-ts-kit/kernel/declarations';
|
|
|
2
2
|
import { {{event.pascal}} } from '{{alias.context}}/domain/events/{{event.kebab}}.event{{alias.ext}}';
|
|
3
3
|
|
|
4
4
|
@DomainEventHandler({{event.pascal}}{{#if handler.afterCommit}}, { phase: 'after-commit' }{{/if}})
|
|
5
|
-
export class {{
|
|
5
|
+
export class {{handler.pascal}}EventHandler implements DomainEventHandler<{{event.pascal}}> {
|
|
6
6
|
async handle(event: {{event.pascal}}): Promise<void> {
|
|
7
7
|
{{#unless handler.afterCommit}}
|
|
8
8
|
// TODO(domain): state the policy "when {{event.words}}, then ..." and carry it out by executing a command of this context (receive `CommandBus` of the kernel in the constructor). It runs at the end of the unit of work, before the commit: depend only on what the transaction covers; an effect outside the database belongs in the after-commit phase or, when it must not be lost, behind an integration event, where a reaction in another context goes too.
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
announceDomainEvents,
|
|
6
6
|
unitOfWorkStage,
|
|
7
7
|
} from '@ddd-ts-kit/kernel';
|
|
8
|
-
import { {{
|
|
8
|
+
import { {{handler.pascal}}EventHandler } from '{{alias.context}}/application/event-handlers/{{handler.kebab}}.event-handler{{alias.ext}}';
|
|
9
9
|
import { {{event.pascal}} } from '{{alias.context}}/domain/events/{{event.kebab}}.event{{alias.ext}}';
|
|
10
10
|
|
|
11
11
|
describe('When {{event.words}}', () => {
|
|
@@ -15,7 +15,7 @@ describe('When {{event.words}}', () => {
|
|
|
15
15
|
{{#if handler.afterCommit}}
|
|
16
16
|
it('reacts once the unit of work has committed, without failing', async () => {
|
|
17
17
|
{{/if}}
|
|
18
|
-
const handler = new {{
|
|
18
|
+
const handler = new {{handler.pascal}}EventHandler();
|
|
19
19
|
const event = new {{event.pascal}}('{{aggregate.kebab}}-1', new Date('2026-01-01T00:00:00.000Z'));
|
|
20
20
|
const domainEvents = new InMemoryDomainEventDispatcher();
|
|
21
21
|
const reactedAt: string[] = [];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { {{event.pascal}} } from '{{alias.context}}/domain/events/{{event.kebab}}.event{{alias.ext}}';
|
|
2
2
|
|
|
3
|
-
export class {{
|
|
3
|
+
export class {{handler.pascal}}EventHandler {
|
|
4
4
|
async handle(event: {{event.pascal}}): Promise<void> {
|
|
5
5
|
{{#unless handler.afterCommit}}
|
|
6
6
|
// TODO(domain): state the policy "when {{event.words}}, then ..." and carry it out by executing a command handler of this context (inject it through the constructor). It runs at the end of the unit of work, before the commit: depend only on what the transaction covers; an effect outside the database belongs in the after-commit phase or, when it must not be lost, behind an integration event, where a reaction in another context goes too.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
@@imports
|
|
2
|
-
import { {{
|
|
2
|
+
import { {{handler.pascal}}EventHandler } from '{{alias.context}}/application/event-handlers/{{handler.kebab}}.event-handler{{alias.ext}}';
|
|
3
3
|
import { {{event.pascal}} } from '{{alias.context}}/domain/events/{{event.kebab}}.event{{alias.ext}}';
|
|
4
4
|
@@registrations
|
|
5
|
-
const {{
|
|
5
|
+
const {{handler.camel}}EventHandler = platform.adapter(new {{handler.pascal}}EventHandler(), { kind: 'domain-event-handler', context: '{{context.kebab}}' });
|
|
6
6
|
|
|
7
7
|
{{#if handler.afterCommit}}
|
|
8
8
|
platform.domainEvents.on(
|
|
9
9
|
{{event.reference}},
|
|
10
10
|
async (event) => {
|
|
11
11
|
if (event instanceof {{event.pascal}}) {
|
|
12
|
-
await {{
|
|
12
|
+
await {{handler.camel}}EventHandler.handle(event);
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
{ phase: 'after-commit' },
|
|
@@ -18,7 +18,7 @@ platform.domainEvents.on(
|
|
|
18
18
|
{{#unless handler.afterCommit}}
|
|
19
19
|
platform.domainEvents.on({{event.reference}}, async (event) => {
|
|
20
20
|
if (event instanceof {{event.pascal}}) {
|
|
21
|
-
await {{
|
|
21
|
+
await {{handler.camel}}EventHandler.handle(event);
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
{{/unless}}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
@@imports
|
|
2
2
|
import { DomainEventDispatcher } from '@ddd-ts-kit/kernel';
|
|
3
|
-
import { {{
|
|
3
|
+
import { {{handler.pascal}}EventHandler } from '{{alias.context}}/application/event-handlers/{{handler.kebab}}.event-handler{{alias.ext}}';
|
|
4
4
|
import { {{event.pascal}} } from '{{alias.context}}/domain/events/{{event.kebab}}.event{{alias.ext}}';
|
|
5
5
|
@@registrations
|
|
6
|
-
builder.bind({{
|
|
6
|
+
builder.bind({{handler.pascal}}EventHandler).toClass({{handler.pascal}}EventHandler).as('domain-event-handler');
|
|
7
7
|
@@start
|
|
8
8
|
{{#if handler.afterCommit}}
|
|
9
9
|
resolve(DomainEventDispatcher).on(
|
|
10
10
|
{{event.reference}},
|
|
11
11
|
async (event) => {
|
|
12
12
|
if (event instanceof {{event.pascal}}) {
|
|
13
|
-
await resolve({{
|
|
13
|
+
await resolve({{handler.pascal}}EventHandler).handle(event);
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
{ phase: 'after-commit' },
|
|
@@ -19,7 +19,7 @@ resolve(DomainEventDispatcher).on(
|
|
|
19
19
|
{{#unless handler.afterCommit}}
|
|
20
20
|
resolve(DomainEventDispatcher).on({{event.reference}}, async (event) => {
|
|
21
21
|
if (event instanceof {{event.pascal}}) {
|
|
22
|
-
await resolve({{
|
|
22
|
+
await resolve({{handler.pascal}}EventHandler).handle(event);
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
{{/unless}}
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@biomejs/biome": "2.5.15",
|
|
24
24
|
"@commitlint/cli": "^21.2.3",
|
|
25
25
|
"@commitlint/config-conventional": "^21.2.3",
|
|
26
|
-
"@ddd-ts-kit/eslint-plugin": "^0.
|
|
26
|
+
"@ddd-ts-kit/eslint-plugin": "^0.22.0",
|
|
27
27
|
"@eslint/js": "^10.0.1",
|
|
28
28
|
"@typescript/native": "npm:typescript@~7.0.2",
|
|
29
29
|
"@vitest/coverage-v8": "5.0.3",
|