DailyJS

UIKit, Expect-dom, Patio

Alex R. Young

Subscribe

@dailyjs

Facebook

Google+

jquery testing node

UIKit, Expect-dom, Patio

Posted by Alex R. Young on .
Featured

jquery testing node

UIKit, Expect-dom, Patio

Posted by Alex R. Young on .

UIKit

UIKit banner

TJ Holowaychuk's latest project is UIKit (License: MIT, GitHub: visionmedia / uikit, npm: uikit). It's a small library of decoupled components for creating web interfaces. Simple, structural markup and modular JavaScript is used to create widgets like a "card" that uses 3D transforms, dialogs, notification messages, and more.

UIKit reminded me of Nib, TJ's library of Stylus mixins, utilities, and components. TJ stresses that UIKit isn't a CSS framework like Bootstrap, but neither is it written with Stylus and Jade. Instead it functions as a loosely-knit set of components that can be built on.

Expect-dom

Expect-dom (License: MIT) by Kevin Dente is a set of DOM-related assertions for expect.js. Various assertions can be made, including attr, id, and html:

expect($('<div title="some title"></div>')).to.have.attr("title");  
expect($(theEl)).to.have.html("<span>content</span>");  

The author has adapted code from jasmine-jquery to create this library.

Patio

Patio (License: MIT, GitHub: Pollenware / patio, npm: patio) from Pollenware is an SQL library inspired by Sequel. It supports schema creation, migrations, queries, models, and associations. It even includes handy flow control related methods like then, removing the need to heavily nest certain asynchronous operations:

User.findById(1).then(function(user) {  
  // SELECT * FROM user WHERE id = 1 
});

Patio also has some handy JavaScript-friendly utility methods:

User.toHash('id', 'name').then(function(nameIdMap) {  
  // SELECT * FROM user 
  //{"1":"Bob Yukon"}
});

Full API documentation is also available: Patio API documentation.

The project still only has 11 GitHub followers, but it's got an incredible amount of functionality already -- check it out and give the authors some feedback!