1.0.0-alpha.77 • Published 4 years ago

@dandi-contrib/mvc-view-hyperview v1.0.0-alpha.77

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

@dandi

npm.io Build Status Coverage Status License: MIT npm.io

Dandi is a modular DI and MVC application framework designed to make it easier to write RESTful APIs, console applications, and other services for NodeJS with TypeScript. It is split into modules to allow developers to use only the features they require.

Get Started

Use Cases

  • MVC-style Application Servers
  • CLI Applications
  • AWS Lambda functions

Features

Dependency Injection

  • Modeled after Angular's dependency injection system
  • Inject dependencies into class constructors or methods
  • 3rd party dependencies can be configured to be injected with Providers

HTTP Pipeline

  • Standalone pipeline for handling and responding to HTTP requests
  • Automatic input content negotiation based on request content-type header
  • Automatic output content negotiation based on request accept header
  • Create and configure interdependent middleware handlers (HttpPipelinePreparer) and they will automatically be invoked in the correct order
  • Add global transformers to control response data structure

MVC

  • Modeled after ASP.NET Core MVC
  • Builds on functionality of @dandi/http-pipeline to add routing and other MVC features
  • 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 HA JSON 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 to camelCase)

AWS Lambda

  • Wraps @dandi/http-pipeline for use with handline AWS Lambda requests
  • Use the same framework, models, and add-ons (HttpPipelinePreparer, HttpPipelineResultTransformer) between your Lambda functions and MVC API

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

3rd Party Integration Modules

🕸 - 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.57

5 years ago

1.0.0-alpha.56

5 years ago

1.0.0-alpha.55

5 years ago

1.0.0-alpha.54

5 years ago

1.0.0-alpha.53

5 years ago

1.0.0-alpha.52

5 years ago