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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@dashevo/dash-schema

v3.0.0-alpha.3

Published

[![NPM](https://nodei.co/npm/dash-schema.png?downloads=true)](https://nodei.co/npm/dash-schema/)

Downloads

5

Readme

NPM

Dependency Status devDependency Status

Build Status

Dash Schema

A consensus-code library for validating Dash Schema instances against System and DAP Schema definitions within the Dash protocol.

Getting Started

Ensure you have the latest NodeJS installed.

Clone the repo:

git clone https://github.com/dashevo/dash-schema && cd dash-schema

Install npm packages:

npm install

Run tests:

npm test

Build docs, browser bundle and run all tests:

npm run build

Usage

Install the library as a Node module.

$ npm install --save @dashevo/dash-schema

Reference the library within a Node module.

let Schema = require('dash-schema');

// validate the System schema
let valid = Schema.validate.sysschema(Schema.System);
console.log(valid.valid));
// -> true

Include the browserified library in your HTML.

<html>
<head>
  <script src='./dist/dash-schema.js'></script>
  <script>
    let Schema = require('dash-schema');

    // validate the System schema
    let valid = Schema.validate.sysschema(Schema.System);
    console.log(valid.valid));
    // -> true

  </script>
</head>
<body></body>
</html>

Validation Results

Dash Schema validation has a standardized format for reporting the results of Schema instance validation and any errors occurring within that validation.

Exception stratgy

  • Exceptions are thrown when usage of the library is incorrect, such as missing or null expected parameters
  • Exceptions are not thrown when library usage is correct but schema instance data is invalid according to schema definitions. In this case a validation result is returned containing the validation error in question

ValidationResult object

{
    valid: { boolean }
    errCode: { number } Error code
    errMsg: { string } Error message
    objData: { object } The object being validated
    objType: { string } Name of the object subschema
    rootSchema: { object } Definition of the root Schema used to validate this object
}
  • valid is a boolean value that is true when validation succeeded and false when validation failed
  • error an object {} when validation succeeded or a ValidationError object when validation failed

The error object always exists, either as an empty object {} or a ValidationObject. Therefore it is not sufficient to check for the existance of the error object in a ValidationResult. Instead, positive confirmation must be obtained by checking that the .valid property === true, to avoid situations where a bug returned null from some validation code.