All files / schemas/oada/tree v1.schema.cts

100% Statements 52/52
100% Branches 0/0
100% Functions 0/0
100% Lines 52/52

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 531x 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 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 tsType = `
{
/**
 * _type identifies the content-type of a resource in the OADA API and is required for all OADA-defined formats.
 * It usually looks like application/vnd.oada.something.1+json.
 */
_type?: string
/**
 * _rev is the revision for a resource in the OADA API
 */
_rev?: number
} & { [k: string]: Tree }`;
 
const schema: Schema = {
  $id: 'https://formats.openag.io/oada/tree/v1.schema.json',
  $schema: 'http://json-schema.org/draft-07/schema#',
  description: 'An object representation of an OADA "tree".',
  definitions: {
    tree: {
      // FIXME: Override TypeScript type for Tree
      // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
      ...({ tsType } as Record<string, unknown>),
      type: 'object',
      properties: {
        _type: {
          $ref: '../../oada.schema.json#/definitions/_type',
        },
        _rev: {
          $ref: '../../oada.schema.json#/definitions/_rev',
        },
      },
      additionalProperties: {
        $ref: '#/definitions/tree',
      },
    },
  },
  type: 'object',
  additionalProperties: { $ref: '#/definitions/tree' },
};
 
export = schema;