kratko.js helps you refactor Javascript. It takes an object and collects information about it. It lets you see which objects have too many methods, which methods do too many things, and accept too many arguments.
kratko.js defines 2 global objects — Kratko and TableViewer. Kratko is used for getting stats of an object — lengths of methods, lengths of method arguments, as well their average, minimum and maximum values. TableViewer provides simple UI to view those stats via HTML table.
Kratko.getStatsFor() returns an object with stats that looks like this:
{
methods: {
name: {
methodString: ...,
length: ...,
argsLength: ...
}
},
totalMethodLength: ...,
minMethodLength: ...,
maxMethodLength: ...,
totalArgsLength: ...,
minArgsLength: ...,
maxArgsLength: ...,
numMethods: ...
}
For example, if we have an object with 2 methods foo and bar:
var obj = {
foo: function(x, y) {
return x + y;
},
bar: function(a, b, c, d, e, f, g) {
if (true) {
// some comment
alert(123);
}
}
};
Here's an output returned by Kratko.getStatsFor:
{
methods: {
foo: {
methodString: 'function (x, y) {\n return x + y;\n}',
length: 1,
argsLength: 2
},
bar: {
methodString: 'function (a, b, c, d, e, f, g) {\n if (true) {\n //some comment\n alert(123);\n }}',
length: 3,
argsLength: 7
}
},
totalMethodLength: 4,
minMethodLength: 1,
maxMethodLength: 3,
totalArgsLength: 9,
minArgsLength: 2,
maxArgsLength: 7,
numMethods: 2
}