krasota.js is trying to save the world. It provides the ability to carry out the syntactic transformation JavaScript code. Conversions can be both for the protection coding style, and for more complex refactorings logic.
Note: For using from command-line you should install it globally -- npm install -g krasota
.
$ krasota --help
Usage:
krasota [OPTIONS]
Options:
-h, --help : Help
-v, --version : Version
-i INPUT, --input=INPUT : Input file (default: stdin)
-o OUTPUT, --output=OUTPUT : Output file (default: stdout)
-b BEAUTIFIERS, --beautifier=BEAUTIFIERS : Local or global path to beautifier module, can be used many times
Examples:
$ krasota -i tests/split-vars.js -b krasota/lib/beautifiers/split-vars
$ krasota -i tests/join-vars.js -b krasota/lib/beautifiers/trailing-whitespaces -b krasota/lib/beautifiers/join-vars
$ krasota -i my-file.js -o my-beauty-file.js -b ./local/path/to/my/beautifier
See below for available build-in beautifiers.
Note: If you are using krasota
programatically you should not install it globally, it's enough to declare depends in package.json
.
Because of using COA all command-line interface available through require('krasota').COA
.
Example:
require('krasota').COA
.invoke({
input: 'tests/join-vars.js',
beautifiers: [ 'lib/beautifiers/trailing-whitespaces', 'krasota/lib/beautifiers/join-vars' ]
})
You can use krasota
through the require('krasota')
in terms of raw OmetaJS-grammas.
Take a look to the tests/tests.js for example of usage.
There are not many proof-of-concept beautifiers, but it's complex enough for using as samples for your own.
Force insert semicolons (you know epic thread). Example:
before | after |
---|---|
clearMenus() !isActive && $parent.toggleClass('open') |
clearMenus(); !isActive && $parent.toggleClass('open'); |
Join multiply consecutive var
statements into one var
statement with multiply assigns.
Example:
before | after |
---|---|
var a = 1; var b = 2; var c = 3; |
var a = 1, b = 2, c = 3; |
Split var
statements with multiply assigns into multiply consecutive var
statements.
Example:
before | after |
---|---|
var a = 1, b = 2, c = 3; |
var a = 1; var b = 2; var c = 3; |
Remove trailing whitespaces (it's pretty simple without any examples).
Run make tests
for tests. For development version tests run make tests ENV=development
.
- https://github.com/olov/jsshaper
- https://github.com/mishoo/UglifyJS
- https://boshi.inimino.org/3box/PanPG/about.html
- https://github.com/kangax/kratko.js
- https://github.com/substack/node-burrito
- https://esprima.org/
- https://github.com/fawek/codepainter
- https://fixmyjs.com
- https://github.com/millermedeiros/esformatter