Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Ruby Structs are an awesome way to add several attributes to a class. Inspired by these, Strukt provides a similiar minimalistic API for JavaScript in the browser and in Node.
Node: $ npm install strukt
var Struct = require('strukt');
Browser: Grab lib/strukt.js and include it in your HTML document.
A global Struct
function will be added. AMD and CommonJS loaders are also supported.
Simple. Pass the parameters you want to Struct
, a new constructor function will be returned.
var Point = new Struct('x', 'y');
var p = new Point(42, 1337);
p.x; // 42
p.y; // 1337
Prefer CoffeeScript?
class Point extends new Struct 'x', 'y'
# More class logic
p = new Point 42, 1337;
p.x # 42
p.y # 1337
Explicit is better than implicit. The Zen of Python
Explicits structs are pretty much the same thing, but you pass an object to the returned constructor.
var Person = new Struct.Explicit('forename', 'surname');
var john = new Person({
forename: 'John',
surname: 'Doe'
});
john.forename; // 'John'
john.surname; // 'Doe'
Maybe you'd like to add a constructor function to your Struct. If the last argument of Struct
or Struct.Explicit
is a function it'll used as a constructor function.
var Person = new Struct.Explicit('forename', 'surname', function () {
alert('Welcome ' + this.forename + " " + this.surname);
});
new Person({
forename: 'John',
surname: 'Doe'
}); // Will alert 'Welcome John Doe'
Struct
and Struct.Explicit
return functions, so you can just add properties to the prototype as always.
var Point = new Struct("x", "y");
Point.prototype.equals = function (pt) {
return this.x == pt.x && this.y == pt.y;
}
Visit spec/index.html in your browser to run the test suite.
Alternatively you can install testacular and enjoy the awesomeness
$ testacular start
It will launch several browsers and run the tests again if a a spec or the library code changes.
FAQs
Ruby inspired Structs for node and the browser.
We found that strukt demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.