npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@fazio/nx-cross-ddd-plugin

v0.0.18-beta.6

Published

Nx plugin for structuring a monorepo with domains and layers as platform agnostic according to Nrwl's best practices and about DDD and SOLID programming software pattern

Downloads

27

Readme

This plugin allow you to build cross platform sorftware with typescript, supporting architecture for different platform/framework combinations. Nx Cross DDD Plugin is an added value pack for Nx Workspace which provides additional schematics which automate slicing your Nx workspace into domains, feature layers and platforms UI layers according to Nrwl's best practices and about DDD and SOLID programming software pattern.

stability-wip License npm version

Overview

Features

  • ✅ Architect, test, and build software at any scale according DDD and SOLID programming sorftware pattern best practices
  • ✅ Create domains with domain libraries including models and data services
  • ✅ Create features with domain feature libraries including facades, models, and data services
  • ✅ Create platforms UI with platform feature libraries including feature components build with multi framework available
  • ✅ Share libraries of a Monorepo
  • ✅ Add linting rules for access restrictions between domains as proposed by Nrwl
  • ✅ Add linting rules for access restrictions between domain features layers and platforms UI layers as proposed by Nrwl
  • ✅ Support for many frontend and backend technologies
  • ✅ Add tooling for build and publish registery librairies automation

Install

Add this plugin to an existing Nx workspace

  • Run from Nx Project root folder: npm i -D @fazio/nx-cross-ddd-plugin

Or create new Nx Workspace. Run the following command:

  • npx create-nx-workspace@latest
  • npm i -D @fazio/nx-cross-ddd-plugin

Usage

You can genetate libraries with Nx Editor Plugins or run following commandes:

Generate Domain

nx g @fazio/nx-cross-ddd-plugin:domain MyDomain --generateService
  • --generateService (optional): Generate client service file.
  • --generateRepository (optional): Generate backend service file.

Generate Domain feature

nx g @fazio/nx-cross-ddd-plugin:feature MyFeature --domain MyDomain
  • --domain (required): Name of Domain.

Generate Platform UI feature

nx g @fazio/nx-cross-ddd-plugin:platform MyPlatformUI --domain MyDomain --feature MyFeature --generateComponent
  • --domain (optional): Name of Domain.
  • --feature (optional): Name of Domain Feature to extend.
  • --directory (optional): The folder directory to generate library. By default will be created inside --ui parameter. Usefull to generate shared library or library for different framework.
  • --framework (optional): Name of framework to build UI Component. If not provided, will use by default Angular.
  • --generateComponent (optional): Genereate default component extended with feature domain logic class

Generate Linting Rules for workspace

ng add @fazio/nx-cross-ddd-plugin

Architecture Overview

Recommended extra tooling

Credits

Contribution

see CONTRIBUTING.md

About author

Hi, i'm Nicolas Fazio, a Senior Typescript Software Architect & teacher, living in Geneva Switzerland 🇨🇭. I build software architecture and cross platform application for almost 15 years. You can follow me on Twitter @FazioNico or checkout my own website https://nicolasfazio.ch

Angular Trainings, Workshops, and Consulting