2.6.0 • Published 8 years ago

generate-schema v2.6.0

Weekly downloads
27,870
License
MIT
Repository
github
Last release
8 years ago

Generate Schemas

Convert JSON Objects to MySQL Table Schema, JSON Schema, Mongoose Schema, ClickHouse Schema, Google BigQuery, or a Generic template for documentation, code generation, and more.

Build Status version License Downloads

Table of Contents

Installation

Install with npm:

$ npm i --save generate-schema

Optionally, add -g to the above if you want the generate-schema command line executable.

CLI

  Usage: generate-schema [options ...] [file]

  Common Options:

    -h, --help         output usage information
    -V, --version      output the version number
    -q, --quiet        Skip help message in program output

  Mode Options:
    -g, --generic      Generic JSON Primitives schema output
    -j, --json-schema  JSON Schema output
    -s, --mysql        MySQL Table Schema output
    -m, --mongoose     Mongoose Schema output
    -b, --big-query    Google BigQuery Schema output
    -c, --clickhouse   Clickhouse Table Schema output

REPL Mode

When no file is specified, generate-schema enters a REPL mode.

Example

$ generate-schema -b
generate-schema v2.5.1 (bigquery)
Type "exit" to quit.
Type {a:"b"} to see an example.
> {a:"b"}
[
  {
    "name": "a",
    "type": "STRING",
    "mode": "NULLABLE"
  }
]

Usage

var GenerateSchema = require('generate-schema')

Example

// Capture Schema Output
var schema = GenerateSchema.json('Product', [
    {
        "id": 2,
        "name": "An ice sculpture",
        "price": 12.50,
        "tags": ["cold", "ice"],
        "dimensions": {
            "length": 7.0,
            "width": 12.0,
            "height": 9.5
        },
        "warehouseLocation": {
            "latitude": -78.75,
            "longitude": 20.4
        }
    },
    {
        "id": 3,
        "name": "A blue mouse",
        "price": 25.50,
        "dimensions": {
            "length": 3.1,
            "width": 1.0,
            "height": 1.0
        },
        "warehouseLocation": {
            "latitude": 54.4,
            "longitude": -32.7
        }
    }
])

Outputs:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Product Set",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "number"
      },
      "name": {
        "type": "string"
      },
      "price": {
        "type": "number"
      },
      "tags": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "dimensions": {
        "type": "object",
        "properties": {
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          }
        }
      },
      "warehouseLocation": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          }
        }
      }
    },
    "required": [
      "id",
      "name",
      "price",
      "dimensions",
      "warehouseLocation"
    ],
    "title": "Product"
  }
}

Methods

g.generic(Object object)

Generates a generic schema from object. Property types are described using primitives.

g.mysql([String tableName,] Mixed object)

Generates MySQL Table Schema from object.

  • tableName is optional, defaults to generic
  • object must be of type Object or Array

g.json([String title,] Mixed object)

Generates JSON Schema from object.

  • title is optional
  • object must be of type Object or Array

g.mongoose(Object object)

Generates a Mongoose Schema from object.

g.bigquery(Object object)

Generates a Google BigQuery schema from object.

g.clickhouse([String tableName,] Mixed object, String dateField)

Generates ClickHouse Table Schema from object.

  • tableName is optional, defaults to generic
  • object must be of type Object or Array
  • dateField Date field for ENGINE, must be of type Date

License

MIT

json-schema-editor-zapijson-schema-editor-visual-labpeckertestyapidoctdp-datamodeler@pixiebrix/extension@everything-registry/sub-chunk-1731financial-insightstasty-apiswagger-api-codegentechubank-mlabtemplate-processor-v2test2apidocvisual-json-editorvalidate-by-examplevane@runly/corejest-snapshots-json-rest-apijson-schema-react-editorjson-schema-visualjson-schema-to-react-schemajson-sdk-wwgjson-schema-show-visualjson-to-typescriptjs2schemajson-editor-gaojson-schema-editjson-schema-editor-hsjson-schema-editor-rcjson-schema-editor-visual-antd4json-schema-editor-visual-antd4-externalsjson-schema-editor-visual-basedjson-schema-editor-visual-customjson-schema-editor-vuejson-schema-editor-vue-sangelxiu1json-schema-editor-bkclabjson-schema-editor-bkclab-1json-schema-editor-blockjson-schema-editor-reactjson-schema-editor-starjson-schema-editor-thaontjson-schema-editor-tooljson-schema-editor-visualjson-schema-editor-visual-ideallifejson-schema-editor-visual-tdpjson-schema-editor-visual-v4json-schema-editor-visual-ycjso-clijupyter-ijavascript-utilslastejobbsqlite-json-importumi-plugin-fast-createut-port-swaggerut-service@artsdatabanken/lastejobb@asyncapi/java-templateyapi-proyapi-vendoryapi-verndoryapi-wfasdfartyapi-toolsyapi-enyach.open.yapiynov-expressionjsvue3-json-schema@firebaseextensions/firestore-bigquery-change-tracker@firebaseextensions/fs-bq-import-collection@firebaseextensions/fs-bq-schema-views@huan007/json-schema-editor-new@ifed/json-schema-editor@infinitebrahmanuniverse/nolb-generate@kopeckyales/fs-bq-schema-views@lambdacurry/express-oas-generator@leeonfield/json-schema-editor-visual@leslieliu/react-jsonschema-editor@newgameplus/firestore-bigquery-change-tracker@n8n/n8n-nodes-langchain@fabiansharp/express-oas-generator@mockswitch/cli@inceptiongt/json-schema-editor-visual@inceptiongt/json-schema-editor-visual-new@inceptiongt/yapi-vendor@olsoybakk/lastejobb@omkartech/generate-schema@saasquatch/json-schema-editor-visual@posiek07/fbct@plexplatform/sdk@outsauced/firestore-bigquery-change-tracker@outsauced/fs-bq-schema-views@solana-mobile/dapp-store-cli@resword/json-schema-editor-visual@reuters-graphics/graphics-binmoon-ui-generatemoon-utilmoon-wanmi-app-taromoon-wanmi-core-taromojoin-coremission.climoon-appmoon-app-types
2.6.0

8 years ago

2.5.1

8 years ago

2.5.0

8 years ago

2.4.0

8 years ago

2.3.3

8 years ago

2.3.2

8 years ago

2.3.1

9 years ago

2.3.0

9 years ago

2.1.1

10 years ago

2.1.0

10 years ago

2.0.2

10 years ago

2.0.1

10 years ago

2.0.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago