Skip to content

v1.4.0

Compare
Choose a tag to compare
@idugalic idugalic released this 02 Mar 20:41
· 228 commits to main since this release

Fmodel provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View, and Saga

The application components orchestrate the execution of the logic by loading the state, executing domain components, and storing a new state.
EventSourcingAggregate, StateStoredAggregate, MaterializedView, and SagaManager

Install

npm i @fraktalio/fmodel-ts

Available on https://www.npmjs.com/package/@fraktalio/fmodel-ts

Learn more

What's Changed

Introducing combineAndIntersect method on Decider and View

#684

Combines state via intersection (S & S2). Check the alternative method combine which uses tuples [S, S2] to achieve a similar goal.

  • Flexibility: If you anticipate needing to access individual components of the combined state separately, using tuples might be more appropriate, as it allows you to maintain separate types for each component. However, if you primarily need to treat the combined state as a single entity with all properties accessible at once, intersections might be more suitable.
  • Readability: Consider which approach makes your code more readable and understandable to other developers who may be working with your codebase. Choose the approach that best communicates your intentions and the structure of your data.
  • Compatibility: Consider the compatibility of your chosen approach with other libraries, frameworks, or tools you're using in your TypeScript project. Some libraries or tools might work better with one approach over the other.

Depricating mapLeft* methods

We are renaming the mapLeftOnCommand, mapLeftOnEvent to mapContraOnCommand and mapContraOnEvent ...

All changes

  • Bump marked from 7.0.1 to 7.0.2 by @dependabot in #516
  • Bump cspell from 6.31.3 to 7.0.0 by @dependabot in #517
  • Bump eslint from 8.46.0 to 8.47.0 by @dependabot in #518
  • Bump gh-pages from 5.0.0 to 6.0.0 by @dependabot in #519
  • Bump @types/node from 20.4.9 to 20.5.0 by @dependabot in #520
  • Bump marked from 7.0.2 to 7.0.3 by @dependabot in #522
  • build(deps-dev): bump eslint-plugin-import from 2.28.0 to 2.28.1 by @dependabot in #525
  • build(deps-dev): bump marked from 7.0.3 to 7.0.4 by @dependabot in #526
  • build(deps-dev): bump cspell from 7.0.0 to 7.0.1 by @dependabot in #528
  • build(deps-dev): bump @types/node from 20.5.0 to 20.5.4 by @dependabot in #531
  • build(deps-dev): bump @types/node from 20.5.4 to 20.5.6 by @dependabot in #532
  • build(deps-dev): bump typescript from 5.1.6 to 5.2.2 by @dependabot in #533
  • build(deps-dev): bump marked from 7.0.4 to 7.0.5 by @dependabot in #534
  • build(deps-dev): bump @types/node from 20.5.6 to 20.5.7 by @dependabot in #535
  • build(deps-dev): bump typedoc from 0.24.8 to 0.25.0 by @dependabot in #536
  • build(deps-dev): bump eslint from 8.47.0 to 8.48.0 by @dependabot in #537
  • build(deps-dev): bump typescript from 5.1.6 to 5.2.2 by @dependabot in #540
  • build(deps-dev): bump cspell from 7.0.1 to 7.3.6 by @dependabot in #548
  • build(deps-dev): bump @types/node from 20.5.7 to 20.6.2 by @dependabot in #549
  • build(deps-dev): bump marked from 7.0.5 to 9.0.2 by @dependabot in #550
  • build(deps-dev): bump marked from 9.0.2 to 9.0.3 by @dependabot in #551
  • build(deps-dev): bump typedoc from 0.25.0 to 0.25.1 by @dependabot in #553
  • build(deps-dev): bump eslint from 8.48.0 to 8.49.0 by @dependabot in #554
  • build(deps-dev): bump @types/node from 20.6.2 to 20.6.3 by @dependabot in #555
  • build(deps-dev): bump eslint from 8.49.0 to 8.50.0 by @dependabot in #556
  • build(deps-dev): bump @types/node from 20.6.3 to 20.7.1 by @dependabot in #560
  • build(deps-dev): bump cspell from 7.3.6 to 7.3.7 by @dependabot in #561
  • build(deps-dev): bump @types/node from 20.7.1 to 20.8.2 by @dependabot in #563
  • build(deps-dev): bump eslint from 8.50.0 to 8.51.0 by @dependabot in #566
  • build(deps-dev): bump typedoc from 0.25.1 to 0.25.2 by @dependabot in #567
  • build(deps-dev): bump marked from 9.0.3 to 9.1.1 by @dependabot in #571
  • build(deps-dev): bump @types/node from 20.8.2 to 20.8.5 by @dependabot in #572
  • build(deps-dev): bump marked from 9.1.1 to 9.1.2 by @dependabot in #573
  • build(deps-dev): bump cspell from 7.3.7 to 7.3.8 by @dependabot in #574
  • build(deps-dev): bump @babel/traverse from 7.15.0 to 7.23.2 by @dependabot in #577
  • build(deps-dev): bump @types/node from 20.8.5 to 20.8.9 by @dependabot in #581
  • build(deps-dev): bump typedoc from 0.25.2 to 0.25.3 by @dependabot in #582
  • build(deps-dev): bump eslint from 8.51.0 to 8.52.0 by @dependabot in #584
  • build(deps-dev): bump eslint-plugin-import from 2.28.1 to 2.29.0 by @dependabot in #585
  • build(deps-dev): bump marked from 9.1.2 to 9.1.5 by @dependabot in #588
  • build(deps-dev): bump eslint from 8.52.0 to 8.53.0 by @dependabot in #589
  • build(deps-dev): bump @types/node from 20.8.9 to 20.9.0 by @dependabot in #592
  • build(deps-dev): bump cspell from 7.3.8 to 8.0.0 by @dependabot in #593
  • build(deps-dev): bump marked from 9.1.5 to 10.0.0 by @dependabot in #594
  • build(deps-dev): bump @types/node from 20.9.0 to 20.9.1 by @dependabot in #597
  • build(deps-dev): bump eslint from 8.53.0 to 8.54.0 by @dependabot in #598
  • build(deps-dev): bump gh-pages from 6.0.0 to 6.1.0 by @dependabot in #600
  • build(deps-dev): bump typescript from 5.2.2 to 5.3.2 by @dependabot in #601
  • build(deps-dev): bump typedoc from 0.25.3 to 0.25.4 by @dependabot in #607
  • build(deps-dev): bump @types/node from 20.9.1 to 20.10.1 by @dependabot in #610
  • build(deps-dev): bump marked from 10.0.0 to 11.0.0 by @dependabot in #611
  • build(deps-dev): bump eslint-config-prettier from 9.0.0 to 9.1.0 by @dependabot in #613
  • build(deps-dev): bump eslint from 8.54.0 to 8.55.0 by @dependabot in #615
  • build(deps-dev): bump cspell from 8.0.0 to 8.1.3 by @dependabot in #618
  • build(deps-dev): bump @types/node from 20.10.1 to 20.10.4 by @dependabot in #619
  • build(deps-dev): bump ts-node from 10.9.1 to 10.9.2 by @dependabot in #621
  • build(deps-dev): bump typescript from 5.3.2 to 5.3.3 by @dependabot in #623
  • build(deps-dev): bump marked from 11.0.0 to 11.1.0 by @dependabot in #625
  • build(deps-dev): bump eslint-plugin-import from 2.29.0 to 2.29.1 by @dependabot in #626
  • build(deps-dev): bump @types/node from 20.10.4 to 20.10.5 by @dependabot in #629
  • build(deps-dev): bump eslint from 8.55.0 to 8.56.0 by @dependabot in #628
  • build(deps-dev): bump open-cli from 7.2.0 to 8.0.0 by @dependabot in #631
  • build(deps-dev): bump cspell from 8.1.3 to 8.2.1 by @dependabot in #632
  • build(deps-dev): bump gh-pages from 6.1.0 to 6.1.1 by @dependabot in #633
  • build(deps-dev): bump cspell from 8.2.1 to 8.2.4 by @dependabot in #636
  • build(deps-dev): bump @types/node from 20.10.5 to 20.10.6 by @dependabot in #639
  • build(deps-dev): bump marked from 11.1.0 to 11.1.1 by @dependabot in #640
  • build(deps-dev): bump typedoc from 0.25.4 to 0.25.6 by @dependabot in #641
  • build(deps-dev): bump cspell from 8.2.4 to 8.3.2 by @dependabot in #644
  • build(deps-dev): bump typedoc from 0.25.6 to 0.25.7 by @dependabot in #648
  • build(deps-dev): bump @types/node from 20.10.6 to 20.11.3 by @dependabot in #652
  • build(deps-dev): bump @types/node from 20.11.3 to 20.11.5 by @dependabot in #656
  • build(deps-dev): bump @types/node from 20.11.5 to 20.11.6 by @dependabot in #659
  • build(deps-dev): bump marked from 11.1.1 to 11.2.0 by @dependabot in #661
  • build(deps-dev): bump @types/node from 20.11.6 to 20.11.13 by @dependabot in #664
  • build(deps-dev): bump @types/node from 20.11.13 to 20.11.14 by @dependabot in #665
  • build(deps-dev): bump @types/node from 20.11.14 to 20.11.16 by @dependabot in #666
  • build(deps-dev): bump marked from 11.2.0 to 12.0.0 by @dependabot in #667
  • build(deps-dev): bump @types/node from 20.11.16 to 20.11.17 by @dependabot in #670
  • build(deps-dev): bump typedoc from 0.25.7 to 0.25.8 by @dependabot in #671
  • build(deps-dev): bump @typescript-eslint/eslint-plugin from 5.61.0 to 5.62.0 by @dependabot in #672
  • build(deps-dev): bump @types/node from 20.11.17 to 20.11.19 by @dependabot in #673
  • build(deps-dev): bump cspell from 8.3.2 to 8.4.1 by @dependabot in #675
  • build(deps-dev): bump @types/node from 20.11.19 to 20.11.20 by @dependabot in #676
  • build(deps-dev): bump eslint-plugin-functional from 6.0.0 to 6.0.1 by @dependabot in #677
  • build(deps-dev): bump eslint from 8.56.0 to 8.57.0 by @dependabot in #678
  • build(deps-dev): bump typedoc from 0.25.8 to 0.25.9 by @dependabot in #679
  • build(deps-dev): bump @types/node from 20.11.20 to 20.11.22 by @dependabot in #682
  • Introducing combineAndIntersect method on Decider and View by @idugalic in #684
  • build(deps-dev): bump @types/node from 20.11.22 to 20.11.24 by @dependabot in #683

Full Changelog: v1.3.3...v1.4.0