All files / schemas/oada/indexes geohash-length-index.schema.cts

100% Statements 69/69
100% Branches 1/1
100% Functions 0/0
100% Lines 69/69

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 701x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 15x 15x 15x 15x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
/**
 * @license
 * Copyright 2022 Open Ag Data Alliance
 *
 * Use of this source code is governed by an MIT-style
 * license that can be found in the LICENSE file or at
 * https://opensource.org/licenses/MIT.
 */
 
import type { JSONSchema8 as Schema } from 'jsonschema8';
 
const schema: Schema = {
  $id: 'https://formats.openag.io/oada/indexes/geohash-length-index.schema.json',
  $schema: 'http://json-schema.org/draft-07/schema#',
  description:
    'geohash-length-index is an indexing scheme that groups data by geohash string lengths. As with all indexes, it is not a document type itself and therefore cannot be linked to.  It can also have a "datum" key which tells the earth model used for GPS.',
  properties: {
    datum: {
      description:
        'datum describes the model of the earth used for GPS coordinates. It can be from a set of known strings, or an EPSG model from http://spatialreference.org',
      anyOf: [
        {
          type: 'string',
          examples: ['WGS84'],
        },
        {
          required: ['type', 'properties'],
          properties: {
            type: {
              enum: ['EPSG'],
            },
            properties: {
              required: ['code'],
              properties: {
                code: {
                  type: 'number',
                },
              },
              type: 'object',
            },
          },
          type: 'object',
        },
      ],
    },
    // FIXME: Hack because the below patternProperties breaks the TS compiler
    ...Object.fromEntries(
      Array.from({ length: 15 })
        .fill(0)
        .map(
          (_, index) =>
            [
              `geohash-${index + 1}` as const,
              { $ref: '../link/v1.schema.json#/definitions/link' },
            ] as const
        )
    ),
  },
  /*
      PatternProperties: {
        '^geohash-[1-9][0-9]*$': {
          { $ref: '../link/v1.schema.json#/definitions/link' },
        },
      },
  */
  type: 'object',
};
 
export = schema;