@colophon/schema
v2.0.3
Published
Schema & Validator for https://colophon.id
Downloads
22
Readme
Colophon Schema
Schema & Validator for Colophon
Schema Specification
Versions
| # | status |
| -------------------- | ------------- |
| 2.0
| stable |
| | |
| 1.1
| deprecated |
| 1.0
| deprecated |
see an example of this repo's own
.colophon.yml
...
Install
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
Usage
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']
API
parser(colophon: String | Object): Promise<Object>
Resolves with
content
as a valid JavaScript Colophon Object Rejects withColophonError
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
id: my-app
`
parser(invalid)
.then(colophon)
.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
}
Credits
- Original Idea: @crimeminister
- Name: @andrewkumar
Author: Ahmad Nassri • Github: @project-colophon • Twitter: @ColophonID