data-schema

1.4.4 • Public • Published

data-schema

Defines & manages the properties – the columns – of tabular data using json-schema

install

npm i --save data-schema

properties format

Properties are stored in this format:

{
  'unique key': {
    type: 'type of the property. string, integer, etc.'
    key: 'unique key',
    name: 'Human identifier, renamable',
    default: 'a default value'
  }
}

You end up with a json-schema that looks something like this:

{ 
  title: 'Tabular data properties',
  type: 'array',
  items: { 
    type: 'object',
    properties: {
      cia8qzipj0000bawmt4s9hm30: [Object],
      cia8qzipl0001bawmf0b2cqv2: [Object],
      cia8qzipl0002bawmhhnpmh4j: [Object],
      cia8qzipm0004bawmvc0bgl8v: [Object] 
    } 
  } 
}

Validating

Internally this module uses is-my-json-valid to validate data.

Usage & API

var dataSchema = require('data-schema')

var schema = dataSchema(options)

options:

  • schema: the full json schema object for the tabular data
  • static: default is false. if true, properties can't be added, removed, or updated

Methods

schema.create(property)

Example:

schema.create({
  name: 'example'
  type: 'string'
})

schema.get(key)

Example:

var property = schema.get(key)

schema.update(property)

Example:

var property = schema.update({
  key: 'the key',
  name: 'new name'
})

key is required for updating a property

schema.delete(key)

Example:

schema.delete(key)

schema.validate(data)

Example:

var property = schema.create({
  name: 'validatethis',
  type: 'string'
})

var validated = schema.validateProperty(property.key, 'this is a string')

validated // -> true

schema.validateProperty(key, value)

var data = [
  {
    'test': 'string',
    'validatethis': 'string'
  }
]

var validated = schema.validate({
  test: 'cool',
  validatethis: 'ok'
})

validated // -> true

schema.all()

Returns object of all properties

schema.newRow()

Returns object with keys for all properties in the schema and default values

schema.addProperty(property)

Add a property. Will create a new one or update an existing one depending on if the property has a key.

schema.addProperties(properties)

Add an array or object of properties to the schema. Internally uses schema.addProperty().

Properties

schema.schema

The json schema representation of your tabular data.

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i data-schema

Weekly Downloads

17

Version

1.4.4

License

none

Last publish

Collaborators

  • sethvincent