A simple schema/attributes library built on top of modern JavaScript
Structure provides a simple interface which allows you to add attributes to your ES6 classes based on a schema, with validations and type coercion.
Use cases
You can use Structure for a lot of different cases, including:
- Domain entities and value objects
- Model business rules
- Validation and coercion of request data
- Map pure objects and JSON to your application classes
- Add attributes to classes that you can't change the class hierarchy
What Structure is not:
- It's not a database abstraction
- It's not a Model of a MVC framework
- It's not an attempt to simulate classic inheritance in JavaScript
Documentation
Example usage
For each attribute on your schema, a getter and a setter will be created into the given class. It'll also auto-assign those attributes passed to the constructor.
const attributes = ; const User = { return `Hello `; } ; /* The attributes "wraps" the Class, still providing access to its methods: */ const user = name: 'John Foo'; username; // 'John Foo'user; // 'Hello John Foo'