Skip to content

inkdropapp/inkdrop-model

Repository files navigation

Inkdrop Model

Inkdrop data model definitions in json-schema and TypeScript

Documentations

Human readable definitions are here.

Install

npm install inkdrop-model

Usage

TypeScript

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