@@ -507,32 +507,31 @@ associate that format handler with the format keyword that applies to the
507507dialects you're targeting.
508508
509509` ` ` JavaScript
510- import { registerSchema , validate } from " @hyperjump/json-schema/draft-2020-12" ;
511- import {
512- setShouldValiateFormat ,
513- addFormat ,
514- setFormatHandler
515- } from " @hyperjump/json-schema/formats" ;
510+ import { registerSchema , validate , setShouldValidateFormat } from " @hyperjump/json-schema/draft-2020-12" ;
511+ import { addFormat , setFormatHandler } from " @hyperjump/json-schema/experimental" ;
516512
517- const isoDateFormatUri = " https://example.com/format/iso-8601-date" ;
513+ const isoDateFormatUri = " https://example.com/format/iso-8601-date" ;
518514
515+ // Add the iso-date format handler
519516addFormat ({
520517 id: isoDateFormatUri,
521- handler : (date ) => Date . parse (date).toISOString () === date
518+ handler : (date ) => new Date (date).toISOString () === date
522519});
523520
524- addFormatHandler (" https://json-schema.org/keyword/format" , " iso-date" , isoDateFormatUri);
525- addFormatHandler (" https://json-schema.org/keyword/format-assertion" , " iso-date" , isoDateFormatUri);
526- // Optional: Add the iso-date format to other dialects
527- addFormatHandler (" https://json-schema.org/keyword/draft-2019-09/format" , " iso-date" , isoDateFormatUri);
528- addFormatHandler (" https://json-schema.org/keyword/draft-2019-09/format-assertion" , " iso-date" , isoDateFormatUri);
529- addFormatHandler (" https://json-schema.org/keyword/draft-07/format" , " iso-date" , isoDateFormatUri);
530- addFormatHandler (" https://json-schema.org/keyword/draft-06/format" , " iso-date" , isoDateFormatUri);
531- addFormatHandler (" https://json-schema.org/keyword/draft-04/format" , " iso-date" , isoDateFormatUri);
521+ // Add the "iso-date" format to the 2020-12 version of `format`
522+ setFormatHandler (" https://json-schema.org/keyword/draft-2020-12/format" , " iso-date" , isoDateFormatUri);
523+ setFormatHandler (" https://json-schema.org/keyword/draft-2020-12/format-assertion" , " iso-date" , isoDateFormatUri);
524+
525+ // Optional: Add the "iso-date" format to other dialects
526+ setFormatHandler (" https://json-schema.org/keyword/draft-2019-09/format" , " iso-date" , isoDateFormatUri);
527+ setFormatHandler (" https://json-schema.org/keyword/draft-2019-09/format-assertion" , " iso-date" , isoDateFormatUri);
528+ setFormatHandler (" https://json-schema.org/keyword/draft-07/format" , " iso-date" , isoDateFormatUri);
529+ setFormatHandler (" https://json-schema.org/keyword/draft-06/format" , " iso-date" , isoDateFormatUri);
530+ setFormatHandler (" https://json-schema.org/keyword/draft-04/format" , " iso-date" , isoDateFormatUri);
532531
533532const schemaUri = " https://example.com/main" ;
534533registerSchema ({
535- " $schema" : " https://json-schema.org/draft/2002 -12/schema" ,
534+ " $schema" : " https://json-schema.org/draft/2020 -12/schema" ,
536535
537536 " type" : " string" ,
538537 " format" : " iso-date"
0 commit comments