MoJS liberary give you some future to work easily with javascript objects
npm install @muhammedadel/mojs
Encapsulation (
properties: object,
setterMiddlewares: {propertyName: function || Array(functions)},
getterMiddlewares: {propertyName: function || Array(functions)}
)
const {Encapsulation} = require('@muhammedadel/mojs');
const Person = new Encapsulation(
{name: 'muhammed adel', age: 23},
{
name: [
function (value) {
return value.toUpperCase();
},
function (value) {
if (typeof value === 'string' && value.length > 5) {
return value;
} else {
throw new Error('Name must be at least 5 characters');
}
}
]
}
).encapsulate();
console.log(Person.getName());
console.log(Person.getAge());