Data-Sah-Coerce
view release on metacpan or search on metacpan
lib/Data/Sah/Coerce/js/To_date/From_obj/date.pm view on Meta::CPAN
my $dt = $args{data_term};
my $res = {};
$res->{expr_match} = join(
" && ",
"($dt instanceof Date)",
);
$res->{expr_coerce} = "isNaN($dt) ? ['Invalid date', $dt] : [null, $dt]";
$res;
}
1;
# ABSTRACT: Coerce date from Date object
__END__
=pod
lib/Data/Sah/Coerce/js/To_date/From_str/date_parse.pm view on Meta::CPAN
my $dt = $args{data_term};
my $res = {};
$res->{expr_match} = join(
" && ",
"typeof($dt)=='string'",
);
# note: (function(a,b,c){...})() is a trick to simulate lexical variables
$res->{expr_coerce} = "(function (_m) { _m = new Date($dt); if (isNaN(_m)) { return ['Invalid date', _m] } else { return [null, _m] } })()";
$res;
}
1;
# ABSTRACT: Coerce date from string using Date.parse()
__END__
=pod
lib/Data/Sah/Coerce/js/To_duration/From_float/seconds.pm view on Meta::CPAN
my $dt = $args{data_term};
my $coerce_to = $args{coerce_to};
my $res = {};
$res->{expr_match} = join(
" && ",
"(typeof($dt)=='number' || typeof($dt)=='string' && $dt.match(/^[0-9]+(?:\\.[0-9]+)?\$/))",
"parseFloat($dt) >= 0", # we don't allow negative duration
"!isNaN(parseFloat($dt))",
"isFinite(parseFloat($dt))", # we don't allow infinite duration
);
$res->{expr_coerce} = "parseFloat($dt)";
$res;
}
1;
# ABSTRACT: Coerce duration from number (assumed to be number of seconds)
( run in 0.296 second using v1.01-cache-2.11-cpan-4d50c553e7e )