npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

jsone-ui

v0.0.4

Published

JSON Editor with configurable editing, validation and documentation using json schema

Readme

jsone

JSON Editor with configurable editing, validation and documentation using json schema. Great for providing an easy guided way to edit and view JSON.

This project is under heavy development. Do not adopt yet. Try the demo

demo.png

Basic Usage (web component)

<jsone id="jsone" data-json="demoJSON.json" data-schema="demoSchema.json"></jsone>
<script src="jsone.js"></script>

Basic Usage (javascript)


var demo = new jsone({
    node: document.getElementById('jsone'), // target html element to place jsone
    json: 'demoJSON.json', // js object or url to jsone file
    schema: 'demoSchema.json' // js object or url to schema file
});

demo.on('change', function(path){
    console.log('change to path', path);

    demo.getChanges().forEach(function(change){
        console.log('path', change.path, 'changed to', change.value)
    })
})

Webpack/NPM

    require('jsone-ui');

Config Options

// when using the <jsone> tag to display jsone, all of these configurations will be attributes
// prefixed by data- (to satisfy w3c) and all non-string values will be JSON.parse'd
{
    "node": "", // the html element to populate with the jsone ui
    "json": "", // a javascript object or the URL to the JSON file to use
    "schema": "", // a javascript object or the URL to the JSON file to use as the schema/rules for the JSON file
    "hashnavigation": false, // (boolean) use window.locaton.hash to provide browser history back/foward
    "urlreplace": {}, // (object) a key/value object of replace from/replace to strings for URL's which is handy for local dev testing schema's,
    "jsonname": automatic, // (string) a string to name the json file/object being edited
}

Events

| name | arguments | description | | --- | --- | --- | | error | error object | there is an error of any kind | init | null | jsone is initialized and is going to try to get the schema/json files | schemaready | null | the schema and all referenced schema's are loaded and ready | jsonready | null | the JSON is loaded and the schema is associated with it | change | pathstring, value | when a change is made this event emits the path as a string delimited by "/" to the changed node | autofix | pathstring, value, change object | when a json file node type is different than the schema type it is automatically fixed and this event is fired for every node that is fixed

Methods

| name | arguments | description | | --- | --- | --- | | on | event, callback | executes call back on the specified event | getChanges | null | returns an array of changes with the path (array) joinpath (path string) and value of each change | json | json url or javascript object | change the active json file | schema | schema url or javascript object | change the active schema file

Schema Support

The schema's used with jsone try to conform to the jsone schema spec at http://json-schema.org/ and use the same structure of properties, items, definitions and references. It should be compatible with the structure starting now and feature gaps will be filled over time.

Local Dev/Local Demo

Needs to run on localhost for XMLHttpRequest to grab files from the local disk.

python -m SimpleHTTPServer 8080
http://localhost:8080/demo.html

jsone

Pronounced "jase own" and is a play off "json for everyone" or "jsone editor" as it fills both needs.

License

MIT