0.1.3 • Published 8 years ago

table-to-schema v0.1.3

Weekly downloads
1
License
MIT
Repository
-
Last release
8 years ago

Super tiny fast library for convert sql result to json schema

website repo

Motivation

Library table-to-schema solves problem with converting 2 dimensional data from sql select to structure json schema.

With simple configuration you can set parameters which split 2 dimensional arrays by 1:N → 1:N → .. → 1:N and return new generated json schema.

Getting started

Installation

Using npm:

npm install table-to-schema --save

Import

You reqire only function (update from last version)

ES5

 var tableToSchema = require('table-to-schema').tableToSchema

ES6

import { tableToSchema } from 'table-to-schema'

Example

//ES6
import { tableToSchema } from 'table-to-schema'
//or ES5
var tableToSchema = require('table-to-schema').tableToSchema


var resultSql = [
  { manufact: 'VV(Skoda)',
    manufactId: 123,
    car: 'Octavia',
    carId: 67,
    engine: 'Ax154',
    engineId: 100,
  },
  { manufact: 'VV(Skoda)',
    manufactId: 123,
    car: 'Fabia',
    carId: 68,
    engine: 'Xe754',
    engineId: 911,
  },
  { manufact: 'VV(Skoda)',
    manufactId: 123,
    car: 'Fabia',
    carId: 68,
    engine: 'MP42Q',
    engineId: 478,
  }
]


var  config = [
  { distinctKey: 'manufact',
    childrenName: 'manufacts',
    keys: [ 'manufact', 'manufactId' ]
  },
  { distinctKey: 'car',
    childrenName: 'carList',
    keys: [ 'car', "carId" ]
  },
  { distinctKey: 'engine',
    keys: [ 'engine', "engineId" ]
  },
]

var results = tableToSchema(config, resultSql);

// results (return json schema created from config)
// if I'll test it with deep equal of course
// return true
results === [
  {
    manufact: "VV(Skoda)",
    manufactId: 123,
    manufacts: [
      {
        car: "Octavia",
        carId: 67,
        carList: [
          {
            engine: "Ax154",
            engineId: 100
          }
        ]
      },
      {
        car: "Fabia",
        carId: 68,
        carList: [
          {
            engine: "Xe754",
            engineId: 911
          },
          {
            engine: "MP42Q",
            engineId: 478
          }
        ]
      }
    ]
  }
]  

Configuration function

const results = tableToSchema(config, sqlTableData);

2 params

  • config
  • source data

Configuration config's parameter

For every dimension of your structure you define new item of config array.

Config object

  • DistinctKey → Name of column (unique key for new structure)
  • ChildrenName → Name of key value which serve children (relation 1:N) (defualt value is __childrens)
  • Keys → List of visible column name
const config = [
  { distinctKey: 'manufact',
    childrenName: 'manufacts',
    keys: [ 'manufact', 'manufactId' ]
  },
  { distinctKey: 'car',
    childrenName: 'cars',
    keys: [ 'car', "carId" ]
  },
]

for real example look to official repo website repo and exec these basic commands

npm install

npm run dev

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago