1.0.0-alpha.77 • Published 4 years ago
@dandi/hal-model-builder v1.0.0-alpha.77
@dandi
Dandi is a modular DI and MVC framework designed to make it easier to write RESTful APIs, console applications, and other services for NodeJS. It is split into modules to allow developers to use only the features they require.
Features
Dependency Injection
- Modeled after Angular's dependency injection system
- Both constructors and methods can be injected with dependencies
- 3rd party dependencies can be configured to be injected with Providers
MVC
- Modeled after ASP.NET Core MVC
- Web framework agnostic - Built for Express 4, but can be used with other frameworks if desired
- Decorator-based route configuration
- Automatic path parameter, query parameter, and body model mapping and validation
- Support for automatically generating HAL output
Model Building and Validation
- Robust set of decorators for defining models and validation metadata
- Automatically construct model class instances from JSON objects or POJOs
- Convert from objects using a different property key casing
(e.g.
snake_case
tocamelCase
)
Misc
Disposable
interface and utilities for managing disposable resources- Uses Luxon as a replacement for Date objects
- Models can be reused between backend NodeJS and frontend TypeScript/JavaScript applications
Uuid
class based on the uuid library for working with and comparing UUIDs.
Core Modules
- @dandi/common 🕸 - Common types and utilities
- @dandi/config 🕸 - Configuration services
- @dandi/core 🕸 - Dependency Injection
- @dandi/core/logging 🕸 - Core logging and configuration
- @dandi/core-node - Additional DI utilities specific to NodeJS
- @dandi/data 🕸 - Base types and utilities for working with data services
- @dandi/hal - 🕸 - Model decorators, basic types and utilities for supporting HAL
- @dandi/logging - 🕸 - Additional logging utilities for logging and logging configuration
- @dandi/model 🕸 - Model decorators
- @dandi/model-builder 🕸 - Utilities for dynamically constructing and validating models
- @dandi/mvc - MVC decorators and base utilities (not specific to Express)
- @dandi/mvc-hal - Supports rendering HAL JSON from existing
@dandi/mvc
controllers - @dandi/mvc-view - Use
@dandi/mvc
with your favorite templating engine
3rd Party Integration Modules
- @dandi-contrib/aws-lambda Helpers for using
@dandi/core
with AWS Lambda - @dandi-contrib/config-aws-ssm -
@dandi/config
client for AWS SSM Parameter Store - @dandi-contrib/data-pg -
@dandi/data
client implementations for Postgres - @dandi-contrib/mvc-auth-firebase - Google Firebase Authorization service implementation for
@dandi/mvc
- @dandi-contrib/mvc-express - Express-specific
@dandi/mvc
service implementations - @dandi-contrib/mvc-view-ejs - EJS implementation for
@dandi/mvc-view
- @dandi-contrib/mvc-view-pug - Pug implementation for
@dandi/mvc-view
🕸 - web browser compatible/no NodeJS-specific dependencies
Examples
Simple Express REST API - An
implementation of a very simple REST API using @dandi
1.0.0-alpha.76
4 years ago
1.0.0-alpha.77
4 years ago
1.0.0-alpha.74
4 years ago
1.0.0-alpha.73
4 years ago
1.0.0-alpha.75
4 years ago
1.0.0-alpha.72
4 years ago
1.0.0-alpha.71
5 years ago
1.0.0-alpha.70
5 years ago
1.0.0-alpha.69
5 years ago
1.0.0-alpha.68
5 years ago
1.0.0-alpha.67
5 years ago
1.0.0-alpha.66
5 years ago
1.0.0-alpha.65
5 years ago
1.0.0-alpha.64
5 years ago
1.0.0-alpha.63
5 years ago
1.0.0-alpha.62
5 years ago
1.0.0-alpha.61
5 years ago
1.0.0-alpha.60
5 years ago
1.0.0-alpha.59
5 years ago
1.0.0-alpha.58
5 years ago
1.0.0-alpha.56
5 years ago
1.0.0-alpha.57
5 years ago
1.0.0-alpha.55
5 years ago
1.0.0-alpha.54
5 years ago
1.0.0-alpha.52
5 years ago
1.0.0-alpha.53
5 years ago
1.0.0-alpha.50
6 years ago
1.0.0-alpha.49
6 years ago