This package has been deprecated

Author message:

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

@multiversx/sdk-json-schema-expander

1.0.8 • Public • Published

npm

Utility for converting short-handed configuration schemas to JSON schemas

Example

ConfigurationSchemaExpander.expand(shortHandedConfig);
title: config
apps:
  api:
    urls:
      prefix: string
    features:
      publicApi:
        enabled: boolean
        port: integer
      privateApi:
        enabled: boolean
        port: integer
libs:
  common:
    urls:
      api: string
    redis:
      host: string
      port: integer

will result into the following JSON schema:

{
  "title":"config",
  "$schema":"http://json-schema.org/draft-07/schema#",
  "type":"object",
  "properties":{
    "apps":{
      "type":"object",
      "properties":{
        "api":{
          "type":"object",
          "properties":{
            "urls":{
              "type":"object",
              "properties":{
                "prefix":{
                  "type":"string"
                }
              },
              "required":[
                "prefix"
              ],
              "additionalProperties":false
            },
            "features":{
              "type":"object",
              "properties":{
                "publicApi":{
                  "type":"object",
                  "properties":{
                    "enabled":{
                      "type":"boolean"
                    },
                    "port":{
                      "type":"integer"
                    }
                  },
                  "required":[
                    "enabled",
                    "port"
                  ],
                  "additionalProperties":false
                },
                "privateApi":{
                  "type":"object",
                  "properties":{
                    "enabled":{
                      "type":"boolean"
                    },
                    "port":{
                      "type":"integer"
                    }
                  },
                  "required":[
                    "enabled",
                    "port"
                  ],
                  "additionalProperties":false
                }
              },
              "required":[
                "publicApi",
                "privateApi"
              ],
              "additionalProperties":false
            }
          },
          "required":[
            "urls",
            "features"
          ],
          "additionalProperties":false
        }
      },
      "required":[
        "api"
      ],
      "additionalProperties":false
    },
    "libs":{
      "type":"object",
      "properties":{
        "common":{
          "type":"object",
          "properties":{
            "urls":{
              "type":"object",
              "properties":{
                "api":{
                  "type":"string"
                }
              },
              "required":[
                "api"
              ],
              "additionalProperties":false
            },
            "redis":{
              "type":"object",
              "properties":{
                "host":{
                  "type":"string"
                },
                "port":{
                  "type":"integer"
                }
              },
              "required":[
                "host",
                "port"
              ],
              "additionalProperties":false
            }
          },
          "required":[
            "urls",
            "redis"
          ],
          "additionalProperties":false
        }
      },
      "required":[
        "common"
      ],
      "additionalProperties":false
    }
  },
  "required":[
    "apps",
    "libs"
  ],
  "additionalProperties":false
}

Readme

Keywords

none

Package Sidebar

Install

npm i @multiversx/sdk-json-schema-expander

Weekly Downloads

13

Version

1.0.8

License

UNLICENSED

Unpacked Size

65.2 kB

Total Files

28

Last publish

Collaborators

  • andreibancioiu
  • arhtudormorar
  • ccorcoveanu
  • cipriand
  • dragosrebegea
  • lucian.mincu
  • radumojic
  • tanghel
  • titel
  • valentinlup