diff options
Diffstat (limited to 'common/jsonschema.js')
-rw-r--r-- | common/jsonschema.js | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/common/jsonschema.js b/common/jsonschema.js index cde3fca..9c4a70c 100644 --- a/common/jsonschema.js +++ b/common/jsonschema.js @@ -57,6 +57,8 @@ #FROM common/jsonschema/scan.js IMPORT SchemaScanResult, scan +#FROM common/entities.js IMPORT haketilo_schema_name_regex + #EXPORT scan #EXPORT SchemaScanResult @@ -67,14 +69,32 @@ function validate(instance, schema, options) { #EXPORT validate const haketilo_schemas = [ -#INCLUDE schemas/api_query_result-1.0.1.schema.json + /* 1.x Hydrilla JSON schema series */ +#INCLUDE schemas/1.x/api_query_result-1.0.1.schema.json + , +#INCLUDE schemas/1.x/api_mapping_description-1.0.1.schema.json + , +#INCLUDE schemas/1.x/api_resource_description-1.0.1.schema.json + , +#INCLUDE schemas/1.x/common_definitions-1.0.1.schema.json , -#INCLUDE schemas/api_mapping_description-1.0.1.schema.json + /* 2.x Hydrilla JSON schema series */ +#INCLUDE schemas/2.x/api_query_result-2.schema.json , -#INCLUDE schemas/api_resource_description-1.0.1.schema.json +#INCLUDE schemas/2.x/api_mapping_description-2.schema.json , -#INCLUDE schemas/common_definitions-1.0.1.schema.json +#INCLUDE schemas/2.x/api_resource_description-2.schema.json + , +#INCLUDE schemas/2.x/common_definitions-2.schema.json ].reduce((ac, s) => Object.assign(ac, {[s.$id]: s}), {}); + +for (const [$id, schema] of [...Object.entries(haketilo_schemas)]) { + const match = haketilo_schema_name_regex.exec($id); + const schema_name = + `${match.groups.name_base}-${match.groups.major}.schema.json`; + haketilo_schemas[schema_name] = schema; +} + #EXPORT haketilo_schemas const haketilo_validator = new Validator(); |