0.4.2 • Published 6 years ago

@hugorper/excel-2-jsonschema v0.4.2

Weekly downloads
-
License
MIT
Repository
github
Last release
6 years ago

js-standard-style Dependency Status Build Status

A tool to generate JSON Schema files from Excel Sheet

Why

JSON Schema creation is difficult, especially for non-technical people. Excel is widely used and proves to be a good tool for defining schema

Excel-2-jsonschema CLI tool?

The excel-2-jsonschema CLI tool, allows to generate JSON Schema from Excel Sheet table.

Excel Table (input)

NamePropertyTypeDescription
HotelIdstringHotel unique identifier.
HoteldescriptionstringHotel description.
HoteldisplayNamestringDisplay name of hotel.
HotelcapacitystringCapacity of the hotel, ex: 44 people.
HotelimagestringImage URL representing the hotel.

JSON Schema (output)

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "hotel",
    "description": "hotel",
    "type": "object",
    "properties": {
        "id": {
            "description": "Hotel unique identifier.",
            "type": "string"
        },
        "description": {
            "description": "Hotel description.",
            "type": "string"
        },
        "displayName": {
            "description": "Display name of hotel.",
            "type": "string"
        },
        "capacity": {
            "description": "Capacity of the hotel, ex: 44 people.",
            "type": "string"
        },
        "image": {
            "description": "Image URL representing the hotel.",
            "type": "string"
        }
    },
    "required": []
}

CLI Tool (global mode)

CLI install

npm install -g @hugorper/excel-2-jsonschema

CLI Usage

How to Execute (with default args -e -v):
  excel-2-jsonschema -i ./sample.xls -s Schema -o ./dist 

Usage: excel-2-jsonschema [options]
  Options:
  -i, --inputExcelFile <inputExcelFile>  'File Localtion' which contains Schema definations
  -s, --sheetName <sheetName>            'Sheet Name' which contains Schema definations
  -o, --outputDir <outputDir>            'Output Directory' where JSON Schema files should be generated## Install
  -e, --embedded <embedded>              'Embedded' If embedded Schema should be generated (default: false)
  -v, --versionSchema <versionSchema>'    Contains Schema version (default: http://json-schema.org/draft-07/schema#)

Developer

Install

npm install @hugorper/excel-2-jsonschema --save-dev

Usage

Generate schemas.

const generateJSONSchema = require('generate-json-schema');
const path = require('path');

var options = {
    inputExcelFile: path.join(__dirname, 'example/sample.xlsx'),
    outputDir: path.join(__dirname, 'dist'),
    sheetName: 'Schema',
    embedded: false,
    versionSchema: 'http://json-schema.org/draft-07/schema#'  
};


generateJSONSchema(options.inputExcelFile, options.sheetName, options.outputDir, options.embedded, options.versionSchema);

Generate json example files.

const generateJSONExample = require('./src/generate-json-example');
const path = require('path');

var options = {
    inputExcelFile: path.join(__dirname, 'example/sample.xlsx'),
    outputDir: path.join(__dirname, 'dist'),
    sheetName: 'Schema'  
};

generateJSONExample(options.inputExcelFile, options.sheetName, options.outputDir);

List Gulp Tasks

  • clean: clean all output files
  • schema: Use generate json
  • example: Run example json output
  • build: Build project
  • lint: execute lint

For more informations about npm run-script, go to scripts of file package.json.

Excel sample files