File tree Expand file tree Collapse file tree 3 files changed +13
-6
lines changed Expand file tree Collapse file tree 3 files changed +13
-6
lines changed Original file line number Diff line number Diff line change @@ -49,12 +49,6 @@ const skip = new Set<string>([
4949 "|draft2019-09|idn-hostname.json" ,
5050 "|draft7|idn-hostname.json" ,
5151
52- // Not supported
53- "|draft2020-12|json-pointer.json" ,
54- "|draft2019-09|json-pointer.json" ,
55- "|draft7|json-pointer.json" ,
56- "|draft6|json-pointer.json" ,
57-
5852 // Not supported
5953 "|draft2020-12|relative-json-pointer.json" ,
6054 "|draft2019-09|relative-json-pointer.json" ,
Original file line number Diff line number Diff line change 1+ const unescaped = `[\\u{00}-\\u{2E}\\u{30}-\\u{7D}\\u{7F}-\\u{10FFFF}]` ; // %x2F ('/') and %x7E ('~') are excluded from 'unescaped'
2+ const escaped = `~[01]` ; // representing '~' and '/', respectively
3+ const referenceToken = `(?:${ unescaped } |${ escaped } )*` ;
4+ const jsonPointer = `(?:/${ referenceToken } )*` ;
5+
6+ export const isJsonPointer = RegExp . prototype . test . bind ( new RegExp ( `^${ jsonPointer } $` , "u" ) ) ;
7+
8+ export default {
9+ id : "https://json-schema.org/format/json-pointer" ,
10+ handler : ( pointer ) => typeof pointer !== "string" || isJsonPointer ( pointer )
11+ } ;
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import iri from "./handlers/iri.js";
1212import iriReference from "./handlers/iri-reference.js" ;
1313import uuid from "./handlers/uuid.js" ;
1414import uriTemplate from "./handlers/uri-template.js" ;
15+ import jsonPointer from "./handlers/json-pointer.js" ;
1516import regex from "./handlers/regex.js" ;
1617
1718
@@ -27,6 +28,7 @@ addFormat(iri);
2728addFormat ( iriReference ) ;
2829addFormat ( uuid ) ;
2930addFormat ( uriTemplate ) ;
31+ addFormat ( jsonPointer ) ;
3032addFormat ( regex ) ;
3133
3234export {
You can’t perform that action at this time.
0 commit comments