BlueprintJS
What does it do?
If you work with a lot of generic objects ({}
) in your code and you want to give special behavior to some or all of them, then BlueprintJS is the right tool for you.
Creating a Blueprint
var User = blueprint({
name: "",
lastName: "",
fullName: function () {
"use strict";
return this.get("name") + " " + this.get("lastName");
}
});
Using the User
Blueprint
var someObjectIHaveInMyProject = {name: "Robert", lastName: "Baratheon"};
var user = new User(someObjectIHaveInMyProject);
console.log(user.get("fullName"));
user.set("lastName", "Downey Jr.");
console.log(user.get("fullName"));
Transforming the user
blueprintObject into a plain object
var userPlainObject = blueprint.toPlainObject(user);
console.log(user.fullName);
Casting a list of objects
var listOfObjects = [
{name:"John", lastName: "Blue"},
{name:"Mary", lastName: "Red"},
{name:"Richard", lastName: "Green"},
{name:"Michael", lastName: "Gray"},
{name:"Agatha", lastName: "Orange"}
];
var listOfUsers = blueprint.cast(User, listOfObjects);
console.log(listOfUsers[1].get("fullName"));
The special init
method
var Car = blueprint({
init: function () {
this.set("model", "BMW");
},
model: "Mercedes Benz"
});
var car = new Car();
console.log(car.get("model"));
Working with NodeJS
var blueprint = require("blueprint");
var Car = blueprint({
isExpensive: (function (){
"use strict";
var expensiveBrands = {
bmw: true,
mercedez: true
};
return function () {
if (expensiveBrands[this.get("brand")]) {
return true;
}
return false;
};
}())
});
var car = new Car({brand:"bmw"});
console.log("Is the car expensive? " + car.get("isExpensive"));
That's it. Any feedback will be appreciated.