Structure provides a simple interface which allows you to add attributes to your classes based on a schema, with validations and type coercion.
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 }=require('structure');constUser=attributes({name: String,age: {type: Number,default: 18,},birthday: Date,})(classUser{greet(){return`Hello ${this.name}`;}});constuser=newUser({name: 'John Foo',});user.name;// 'John Foo'user.greet();// 'Hello John Foo'