Fork of Schema & Validator for https://colophon.id

Usage no npm install needed!

<script type="module">
  import telusColophonSchema from 'https://cdn.skypack.dev/@telus/colophon-schema';


Colophon Schema

License version Build Status

Schema & Validator for Colophon

Schema Specification


# status
3.0 stable
2.0 stable
1.1 deprecated
1.0 deprecated

see an example of this repo's own .colophon.yml...


Available as an npm package for validation purposes, exposes validation helper, and the schema itself (compatible with any JSON Schema validation tool)

npm install @colophon/schema


const parser = require('@colophon/schema')
const { schema, regex } = require('@colophon/schema/versions/latest')

Referencing older versions

const schemas = require('@colophon/schema/versions')

const { schema, regex } = schemas['1.0']


parser(colophon: String | Object): Promise<Object>

Resolves with content as a valid JavaScript Colophon Object Rejects with ColophonError on invalid schema test

Example: Valid Colophon
const parser = require('@colophon/schema')

const valid = { ... } // supply an Object or YAML String

const colophon = await parser(valid)
// colophon is a JavaScript Object (parsed from YAML string, or returned as is)
Example: Invalid Colophon
const parser = require('@colophon/schema')

// invalid
const invalid = `
version: 2.0 // or version 3.0

id: my-app

  .catch(err => console.error(err.message, err.errors))
    // invalid colophon content
    // "err.errors" object contains schema errors
    // e.g. "err.errors": [ { message: "should have required property 'contacts'" } ]
    // see https://github.com/epoberezkin/ajv#validation-errors for details


Author: Ahmad Nassri • Github: @project-colophon • Twitter: @ColophonID