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

@jsonql/errors

v0.8.0

Published

Jsonql Errors class

Downloads

98

Readme

@jsonql/errors

**This package was call jsonql-errors and now publish under the @jsonql scope. The old package offer several different format for use. But now only offer as .mjs Javascript module (because this is not really a standalone package and mainly use for develop other modules) **

This module exports custom Error class for developer to use. When the server side throw error, the client side will try to throw exactly the same error and as developer you can clearly understand what is happening.

Example

// bunch of setup
client.query.getSomething(1)
  .then(result => /* do your thing */)
  .catch(err => {
    if (err instanceof JsonqlValidateError) {
      // update your UI to show the validation error

    } else if (err instanceof Jsonql500Error) {
      // ooops the server is down
    } else {
      // then this will NOT be an error throw from jsonql system
    }
  })

List of Errors

Server side errors

  • Jsonql406Error
  • Jsonql500Error
  • JsonqlAuthorisationError
  • JsonqlContractAuthError
  • JsonqlResolverAppError
  • JsonqlResolverNotFoundError

Check Options errors

  • JsonqlCheckerError
  • JsonqlEnumError
  • JsonqlTypeError

Share errors

  • ValidationError
  • JsonqlError
  • JsonqlServerError

general error

This is a standalone error type for use in a different type of module.

  • GeneralException

Functions

This package also export several useful functions, and we use this across multiple jsonql modules.

getErrorByStatus

Get the error class name by it's status code, use on client side

arguments:

  • statusCode {number} the status code
  • contract {boolean} if this is from the contract hack

returns:

  • {string} the name of the error class

clientErrorsHandler

Check the resolver return result for error, use on client side

arguments:

  • result {object} after we call a resolver and check the result if it's contain an error

returns:

  • {object} if its passed then just return the result or throw a new error

finalCatch

Repackage the error throw from the application

arguments:

  • e {object} the error we catch

returns:

  • throw the correct structure in our own error classes

getErrorNameByInstance

Compare a list of errors class with the error we catch, then get it's name

arguments:

  • errs {array} list of error classes
  • e {object} the error object we captured

returns:

  • {string} the name of the error class or unknown if it's not ours

CONSTANTS

There are two constants export from this module as well

  • JSONQL_ERRORS_INFO gives you the version number
  • UNKNOWN_ERROR this is to use with the getErrorNameByInstance when we could not determine what type of error it is.

ISC (c) 2019 NEWBRAN LTD / TO1SOURCE.CN