0.1.3 • Published 10 years ago

table-to-schema v0.1.3

Weekly downloads
1
License
MIT
Repository
-
Last release
10 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

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago