gerror
TypeScript icon, indicating that this package has built-in type declarations

1.0.16 • Public • Published

GError

NPM Version NPM TypeScript ES Modules

Mixer of gRPC Error & ECMAScript Error

GError

Motivation

We are writing async programs with gRPC with Node.js(ECMAScript) so we need to mix gRPC Error & ECMAScript Error.

In order to make it easy, we build GError module

Features

  1. GError.from(anyting: any)
  2. gerror.toJSON()

Examples

TBW

API Reference

class GError

GError can be used to replace the standard Error as a drop in replacement.

import { GError } from 'gerror'

const gerror = GError.from(new Error('test'))

GError.stringify(e: any)

Convert anything to a JSON.stringify()-ed GError payload

GError.stringify('this is a string error')

// It acepts any type of args
GError.stringify(new Error() as unknown)

wrapAsyncError()

It has been designed to convert a Async to Sync, for example:

  1. async (...args: any[]) => Promise<any> will be converted to (...args: any[]) => void
  2. Promise<any> will be converted to void

The error will be send via the onError callback.

import { wrapAsyncError } from 'gerror'

const onError = (e: any) => console.error(e)
const wrapAsync = wrapAsyncError(onError)

const asyncFunc = async () => Promise.reject('rejection')
const syncFunc = wrapAsync(asyncFunc)
// ReturnType<typeof syncFunc> === 'void'

asyncFunc() // <- nothing happens (no unhandled rejections)
// console.error('Rejection')

Resources

  1. Google Cloud APIs - Errors

History

master v1.0 (Oct 30, 2021)

  1. Initial code from wechaty-puppet module
  2. Add timeoutPromise() function

Author

Huan LI (李卓桓), Google Developer Export (GDE), zixia@zixia.net

Profile of Huan LI (李卓桓) on StackOverflow

Copyright & License

  • Docs released under Creative Commons
  • Code released under the Apache-2.0 License
  • Code & Docs © 2021 Huan LI <zixia@zixia.net>

/gerror/

    Package Sidebar

    Install

    npm i gerror

    Weekly Downloads

    1,118

    Version

    1.0.16

    License

    Apache-2.0

    Unpacked Size

    121 kB

    Total Files

    147

    Last publish

    Collaborators

    • zixia