1.1.1 • Published 3 years ago

af-documents v1.1.1

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

af-documents

Status of Project

Build Status Coverage Status

Installation

npm install af-documents

Description

The Documents Library provides classes that make working with Documents and Properties easier. A Document is an entity that contains Properties, nested Documents, and/or arrays of Properties. A Property is an entity that represents a value - string, number, boolean, and immutable are basic properties - and RegExp and Email are properties that build upon the basic properties.

Properties can have Validators and Normalizers assigned to them. This makes each Property a self contained entity that knows how to manage the value it represents.

A Property implements the toString and valueOf methods so they can be used in traditional ways as well.

const firstName = StringProperty('Steve', { name: 'firstName' });
const lastName = StringProperty('Smith', { name: 'lastName' });

const fullName = firstName + ' ' + lastName;

It does seem a little overkill to put strings in a Property or really any value when plain object will suffice. However, combining a Property with the propertyBuilder method can make ingesting, validating, and normalizing data a breeze.

propertyBuilder uses a PropertyDescriptionMap that can allow you to quickly create objects with Properties as its members that represent data from external sources with the knowledge that invalid data will be caught and data can be normalized as you want it quickly.

Support

To share your comments, provide suggestions, or raise issues, create an issue.