#!/usr/bin/perl -w

use JavaScript::Beautifier qw/js_beautify/;

unless ( $ARGV[0] and -e $ARGV[0] ) {
    die "Usage $0 <file.js>";
}

open F, $ARGV[0] or die($!);
my $src;
while (<F>) { $src .= $_; }
close F;

my @clean = split /\n/, js_beautify( $src, {
    indent_size => 1, indent_character => "\t", preserve_newlines => 1 }
);

# Clean long lines for tabs
foreach(@clean){
    if(/\[\s*.{70}/ and /\[\s*(?:['"].*['"],\s*)*\]/) {
        /^(\s*)/;
        my $tab = $1;
        s/(['"])([^"']*)\1(,?)\s*/ $1$2$1$3\n$tab /g;
    }
    $_.="\n";
}

open F, ">",$ARGV[0] or die($!);
print F @clean;

