inkdrop-model

Data model for Inkdrop

Usage no npm install needed!

<script type="module">
  import inkdropModel from 'https://cdn.skypack.dev/inkdrop-model';
</script>

README

Inkdrop Model

Inkdrop data model definitions in json-schema and flowtype

Documentations

Human readable definitions are here.

Install

npm install inkdrop-model

Usage

Flowtype

import type { Note, Book, Tag, File } from 'inkdrop-model'

Json Schema

import { NoteSchema, BookSchema, TagSchema, FileSchema } from 'inkdrop-model'

You can validate data with json schemas. Below example uses ajv as a validator:

import { NoteSchema } from 'inkdrop-model'
import Ajv from 'ajv'
const ajv = new Ajv()
const validate = ajv.compile(NoteSchema)

const data = {
  _id: 'note:BkgOZZUJzf',
  title: 'link',
  doctype: 'markdown',
  updatedAt: 1513330812556,
  createdAt: 1513214207639,
  tags: [],
  status: 'none',
  share: 'private',
  body: 'markdown note body',
  bookId: 'book:first',
  _rev: '38-636e505958d24f9c21614d95ea03b5a1'
}
const valid = validate(data)
console.log(valid) // => true