Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
@angular-architects/ddd
Advanced tools
Nx plugin for structuring a monorepo with domains and layers
This plugin installs some schematics which automate slicing your Nx workspace into domains and layers according to Nrwl's best practices and our ideas about client-side DDD with Angular:
The generated access restrictions prevent unwanted access between libraries respecting layers and domains:
--ngrx
switch)Add this plugin to a Nx workspace:
npm i @angular-architects/ddd
ng g @angular-architects/ddd:init
Instead, you can also use ng add, however, Nx currently emits a warning when using ng add:
ng add @angular-architects/ddd
Add domains and features manually:
ng g @angular-architects/ddd:domain booking --addApp
ng g @angular-architects/ddd:domain boarding --addApp
ng g @angular-architects/ddd:feature search --domain booking --entity flight
ng g @angular-architects/ddd:feature cancel --domain booking
ng g @angular-architects/ddd:feature manage --domain boarding
For NGRX support, just add the --ngrx
switch:
ng g @angular-architects/ddd:domain luggage --addApp --ngrx
ng g @angular-architects/ddd:feature checkin --domain luggage --entity luggage-list --ngrx
[...]
This example assumes that you have an app flight-app
in place.
These schematics also wire up the individual libs. To see the result, create a dependency graph:
npm run dep-graph
To see that the skeleton works end-to-end, call the generated feature component in your app.component.html
:
<booking-search></booking-search>
You don't need any TypeScript or Angular imports. The plugin already took care about that. After running the example, you should see something like this:
The included schematics generate a folder for each domain. This folder contains feature libs as well as a library with the domain logic:
The domain layer is subdivided into three parts:
BehaviorSubject
, feel free to add a library like NGRX underneath. As such a modifications changes nothing from the component's perspective, you can use facades to introduce NGRX later on demand.As the access restrictions defined with Nx use linting, you can check against them at the command line too. Hence, you might consider including this into your automated build process.
see https://github.com/angular-architects/ddd-demo
FAQs
Nx plugin for structuring a monorepo with domain driven design
We found that @angular-architects/ddd demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.