JSON-Schema-Tiny
view release on metacpan or search on metacpan
lib/JSON/Schema/Tiny.pm view on Meta::CPAN
return $state->{initial_schema_uri} if not @extra_path and not length($state->{schema_path});
my $uri = $state->{initial_schema_uri}->clone;
my $fragment = ($uri->fragment//'').(@extra_path ? jsonp($state->{schema_path}, @extra_path) : $state->{schema_path});
undef $fragment if not length($fragment);
$uri->fragment($fragment);
$uri;
}
# shorthand for creating error objects
# based on JSON::Schema::Modern::Utilities::E
sub E ($state, $error_string, @args) {
# sometimes the keyword shouldn't be at the very end of the schema path
my $sps = delete $state->{_schema_path_suffix};
my @schema_path_suffix = defined $sps && is_plain_arrayref($sps) ? $sps->@* : $sps//();
my $uri = canonical_uri($state, $state->{keyword}, @schema_path_suffix);
my $keyword_location = $state->{traversed_schema_path}
.jsonp($state->{schema_path}, $state->{keyword}, @schema_path_suffix);
undef $uri if $uri eq '' and $keyword_location eq ''
( run in 1.540 second using v1.01-cache-2.11-cpan-5b529ec07f3 )