Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

jsonforms

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jsonforms

Generating forms for JSON schema

  • 2.0.0-alpha.5
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
237
decreased by-16.25%
Maintainers
1
Weekly downloads
 
Created
Source

JSONForms - More Forms. Less Code

JSONForms uses HTML custom elements and eliminates the need to write HTML templates in order to create forms by leveraging the capabilities of JSON and JSON schema.

Usage

JSONForms is based on Custom elements, which are not yet supported by all browsers, hence you'll need to include additional files in order to enable Custom Elements support: These files are webcomponents-lite.js and native-shim.js as well as JSONForms itself via jsonforms.js. Pay attention to the order when including these files.

Once you add a json-forms element to the DOM with at least a data attribute set, a form will be rendered for you. Data and UI schemas can be configured by the dataSchema and uiSchema attributes. Use CSS to style the form however you want.

Step by Step Example Usage

  1. Install JSONForms via npm install jsonforms@next
  2. Add webcomponents-lite.js, native-shim.js, jsonforms.js and jsonforms-example.css to your HTML
  <head>
  <script src="/node_modules/@webcomponents/webcomponentsjs/webcomponents-lite.js"></script>
  <script src="node_modules/jsonforms/lib/native-shim.js"></script>
  <script src="node_modules/jsonforms/dist/jsonforms.js"></script>
  <link rel="stylesheet" type="text/css" href="node_modules/jsonforms/dist/jsonforms-example.css">
  </head>
  1. Add Javascript to create a json-forms element:
<script>
  var jsonForms = document.createElement('json-forms');
  jsonForms.data = {name:'John Doe'};
  document.body.appendChild(jsonForms);
</script>

The whole document may for example now look like this:

<!DOCTYPE html>
<html>
  <head>
    <script src="node_modules/jsonforms/lib/native-shim.js"></script>
    <script src="node_modules/jsonforms/dist/jsonforms.js"></script>
    <link rel="stylesheet" type="text/css" href="node_modules/jsonforms/dist/jsonforms-example.css">
  </head>
  <body></body>
  <script>
    var jsonForms = document.createElement('json-forms');
    jsonForms.data = {name:'John Doe'};
    document.body.appendChild(jsonForms);
  </script>
</html>
  1. Optional: Add you own Data and UI schema within the script
  <script>
    var jsonForms = document.createElement('json-forms');
    jsonForms.data = {name:'John Doe'};
    jsonForms.dataSchema = {type: "object", properties: {name : { type: "string"}}};
    jsonForms.uiSchema = {type: "Control", scope: { $ref: "#/properties/name" } };
    document.body.appendChild(jsonForms);
  </script>

Developers Documentation

First time setup

  • Install node.js(version > 4.x.x)
  • Clone this repository
  • Install dependencies: npm install
  • Install typescript: npm install -g typescript

Build & Testing

  • Normal Build: npm run build
  • Test: npm run test
  • Watch: npm run dev, point your browser to http://localhost:8080/

Continuous Integration

The JSONForms project is build and tested via Travis. Coverage is documented by Coveralls.

Current status: Build Status Coverage Status

Deployment

  • Locally login as one of the (npm) owners of the package (npm doc)
  • Make sure your workspace looks exactly the way you want to release it. (Files specified in .npmignore are normally ignored by npm, but this functionality is buggy. Therefore to be sure you should still remove all unwanted files before deploying.)
  • Run either npm run publish-patch,npm run publish-minor or npm run publish-major.

The script does the following:

  • Build JSONForms
  • Execute tests
  • Increase version in package.json
  • Commit version bump to the current branch
  • Checkout a new temporary deploy-branch
  • Commit dist/**/* directory
  • Create a new version tag
  • Push the version tag to 'upstream'
  • Release the workspace to npmjs

If any of the steps fail the script will abort. If the script was successful you should create a pull-request with the version bump commit to 'upstream'.

License

The JSONForms project is licensed under the MIT License. See the LICENSE file for more information.

Roadmap

Our current roadmap is available here.

FAQs

Package last updated on 06 Jul 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc