Skip to content

A library to help manage data. Build documents with properties with strong validation and normalization.

License

Notifications You must be signed in to change notification settings

mcoakley/af-documents

 
 

Repository files navigation

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.

About

A library to help manage data. Build documents with properties with strong validation and normalization.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.8%
  • JavaScript 0.2%