@wmfs/relationize
v1.32.0
Published
Takes a set of JSON Schema definitions and returns a relational database structure capable of storing compliant data.
Downloads
1,495
Maintainers
Readme
relationize
Takes a set of JSON Schema definitions and returns a relational database structure capable of storing compliant data.
Install
$ npm install relationize --save
Usage
const relationize = require('relationize')
relationize (
{
source: {
paths: [
{
namespace: 'relationizeTest',
path: '/somewhere/json-schemas/live'
}
]
}
},
function (err, dbStructure) {
// Done!
// - The value of 'dbStructure' takes the same form
// as the output generated by the 'pg-info' package.
}
)
API
relationize(options, callback)
Options:
| Option | Type | Notes |
| ------ | ----- | ------ |
| source
| object
| A source
object for configuring where to derive JSON Schema data from.
source
object
Examples
- From files:
{
paths: [
{
namespace: 'relationizeTest',
path: '/somewhere/json-schemas/live'
}
]
}
- From Javascript object:
{
schemas: [
{
namespace: 'relationizeTest',
schema: {
// JSON schema here
}
}
]
}
Properties
| property | Type | Notes |
| -------- | ----- | ----- |
| paths
| [object]
| An array of objects containing a namespace
property (used to separate related tables into schemas_ and path
(a file-path from where to load JSON files from - uses glob, so the **
pattern is supported)
| schemas
| [object]
| An array of objects containing a namespace
property (used to separate related tables into schemas_ and schema
(a ready-to-use JSON Schema)
Output
Relationize returns objects of the same form as those returned by the pg-info package. The output of Relationize can then be used to generate a relational database (complete with comments, tables, indexes and foreign key constraints) to store your JSON-structured data.
- Please refer to the pg-info docs for more details.
Testing
$ npm test