Skip to content

digidem/comapeo-schema

Repository files navigation

@comapeo/schema

JSON Schema and TypeScript types for CoMapeo.

Original draft: https://hackmd.io/wlMcMM65TmuPXGYOEbOR2g#

Table of Contents

Install

npm install --save @comapeo/schema

Usage

JS validation functions

import { validate } from '@comapeo/schema'

const testObservation = {
  /* ... */
}

const isValid = validate('observation', testObservation)
// returns true if validates against schema, false otherwise.

TypeScript types

import type { Observation } from '@comapeo/schema'

const myObs: Observation = {
  /* ... */
}

API

Adding new values

  • Find the JSON schema inside schemas/{name}/v1.json
  • Add your fields with descriptions
  • Update the corresponding protocol buffer schema inside proto/{name}/v1.proto
  • Add the new field to src/lib/decode-conversions.js and src/lib/encode-conversions.js
  • Run npm run build to build the types and encoders.
  • Add the field to test/fixtures/good-docs-completed.js
  • If there is extra validation happening add a failing doc to test/fixtures/bad-docs.js
  • Run npm run test and make sure tests and linting pass

Maintainers

@digidem

License

MIT © 2024 Awana Digital