1.5.0 • Published 3 years ago

domeniere v1.5.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Domeniere

Domeniere is a library to assist in creating framework-independent Typescript applications.

How Domeniere Fits into Your Architecture

How Domeniere Helps

Clean Architecture: Domeniere helps keep your architectures small, simple, and clean. Create Portable Applications: Domeniere makes no assumptions as to which Framework, Database, or external services you are using. Instead the details of these services can be injected to work with your Domeniere application.

Domain Drien Design

Domeniere makes use of a lot of concepts from Domain Driven Design.

Getting Started

To get started with Domeniere, we recommend using the Domeniere CLI. While it is completely optional, it is the easiest way to create and manage a Domeniere project.

Manual Installation

If you would rather Inall Domeniere manually, you can do so with NPM

npm install domeniere

Or with Yarn

yarn add domeniere

Usage

Domeniere projects are referred to as Domains. Each Domain consists of application-level concepts specific to the Domain. For example, a Users domain would include concepts such as User Accounts, Profiles, and Passwords.

With the CLI, we can create a new Domain with the following command.

domeniere new users

Here, we are creating a Users domain. Running this command will create a new users directory with the following structure.

node_modules/
dist/
src/
.gitignore
domconfig.json
package.json
tsconfig.json
<domain-name>.ts
yarn.lock or package.lock.json

The node_modules directory, dist directory, .gitignore file, package.json file, tsconfig.json file, and yarn.lock or package.lock.json files should be pretty self-explanitory. So, we will just focus on the Domeniere-specific elements.

The `src/ directory

The src directory contains the source files for your domain. By default, it will contain an API, designated by the <domain-name>.api.ts file, and an EventStore, designated by the <domain-name>.eventstore.ts file. As you build out your domain, the src directory will contain your domain modules.

You an learn more about APIs here. And more information about EventStores can be found in the Events section.

The domconfig.json File

The domconfig.json file consists of some settings regarding your domain. Very rarely will you need to touch this file.

The .ts file

The <domain-name>.ts file is the starting point of your application. If you are using the Domeniere-CLI, you will rarely need to manually edit this file.

Creating Our First Module

All additional code we will create from this point forward will be contained in Modules. To create our first module, we can run the following command inside our domain directory.

domeniere create module accounts

This will create an accounts/ directory within our src directory with an accounts.module.ts file. This is our module file.

Once we create our accounts module, we are free to define it however our requirements dictates.

The Building Blocks of a Domeniere Project

Tests

To run the tests, use the following command with NPM

npm run test

Or, with Yarn

yarn test