Skip to content

Supermodel browser library and CLI tool for working with JSON Schema data models

Notifications You must be signed in to change notification settings

davidilling/supermodel

 
 

Repository files navigation

Supermodel npm packages CircleCI

Collection of npm packages supporting supermodel.io

Table of Contents

Introduction

TODO

Packages

@supermodel/cli README Version

Main package used for installing system wide binary supermodel for manipulating schemas

@supermodel/lib README Version

Collection of utils on top of json schema. Used in @supermodel/cli and on supermodel.io

@supermodel/file README Version

Utils for manipulating json schema on file system. Used in @supermodel/cli

Contributing

We are using lerna for managing all packages together

Installation

  1. yarn global add [email protected] (npm i -g [email protected]) - to install orchstrating tool lerna

  2. yarn bootstrap - resolves and install root and packages dependencies

    • ⚠️ use this instead of yarn [install]
    • ensures presence of global installation of lerna and install it for you when missing
  3. 🤔 optional When developing against local supermodel.io instance setup .env for CLI. Choose symlink or copy:

    • symlink: ln -s ./packages/cli/.env.development ./packages/cli/.env
    • copy: cp ./packages/cli/.env.development ./packages/cli/.env and change variables for your needs

Usage

  • yarn build:watch
    • should be running while you want to use ./packages/cli/bin/supermodel or supermodel after yarn local:install
  • yarn test:watch - watch tests in all packages at once
  • yarn build - make production builds
  • yarn test - run lint, type checks and run tests in all packages at once
    • yarn test:lint - code linting
    • yarn test:types - type checks
    • yarn test:unit - unit tests

Local linking

To try @supermodel/cli locally with simple supermodel command we need to link all packages. There is shortcut to link all packages

  • yarn local:install
  • yarn local:uninstall

Principes

Every new module which manipulates with schemas (conversion, resolving, transforming etc.) or helps to work with schemas and environment around should be placed inside @supermodel/lib. Exposed modules for outside usage should return a value, or throw an error. Or promise analogy (resolve, reject) for async modules.

TODO

Publishing

lerna publish

  • useses lerna publish
  • It is most streightforward way to publish. It compile typescript with yarn build command, tag changed packages with new versions and publish it to npm

A Good API Project

supermodel.io, and supermodel CLI are Good API non-profit projects, aimed at promoting modern, reusable, and sustainable data modeling.

License

The MIT License (MIT) 2019 Good API

About

Supermodel browser library and CLI tool for working with JSON Schema data models

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 68.8%
  • TypeScript 31.0%
  • Shell 0.2%