JavaScript-Prepare
view release on metacpan or search on metacpan
lib/JavaScript/Prepare.pm view on Meta::CPAN
package JavaScript::Prepare;
use Modern::Perl;
use File::Basename;
use FileHandle;
use JavaScript::Minifier::XS qw( minify );
use version;
our $VERSION = qv( 0.1 );
sub new {
my $class = shift;
my %args = @_;
my $self = {
strip => 0,
};
bless $self, $class;
$self->{'strip'} = 1
if defined $args{'strip'};
return $self;
}
sub process {
my $self = shift;
my @args = @_;
my $minified = '';
foreach my $arg ( @args ) {
given ( $arg ) {
when ( -f $arg ) {
$minified .= $self->process_file( $arg );
}
when ( -d $arg ) {
$minified .= $self->process_directory( $arg );
}
default {
return '';
}
}
}
return $minified;
}
sub process_string {
my $self = shift;
my $js = shift;
$js =~ s{^ \s* console.log(.*?); \s* $}{}gmx
if $self->{'strip'};
my $minified = minify($js);
return "${minified}\n"
if defined $minified && length $minified;
return '';
}
( run in 2.634 seconds using v1.01-cache-2.11-cpan-98e64b0badf )