Package detail

@neo9/n9-node-utils

neo91.4kGPL-3.0-or-later3.0.0

Node Utils Module

node utils, utils, async await, waitFor

readme

n9-node-utils

Neo9 Node Utils Module.

npm version Travis Coverage license

Installation

npm install --save @neo9/n9-node-utils

or

yarn add --dev @neo9/n9-node-utils

V2 Breaking changes

  • Drop Node 8 support
  • Rename N9JsonStreamResponse to N9JSONStreamResponse

Contents

N9Error

Custom error class (extends Error), used by n9-node-micro for API errors with status code and context.

new N9Error(message [, statusCode] [, context])

Arguments:

  • message: String, required
  • status: Number, default: 500
  • context: Object, default: {}

Example:

import { N9Error } from '@neo9/n9-node-utils';

throw new N9Error('file-not-found', 404, { path: '/tmp/my-file.txt' });

ok

Waits for the value of promise. If promise throws an Error, returns undefined.

ok(promise: Object): Promise

Arguments:

  • promise: Promise

Example:

import { readFile } from 'fs-extra';
import { ok } from '@neo9/n9-node-utils';

// readFile sends back a Promise since we use fs-extra
const file = await ok(readFile('./my-file.txt', 'utf-8'));

if (file) console.log('File found:', file);

cb

Calls a function fn that takes arguments args and an (err, result) callback. Waits for the callback result, throwing an Error if err is truthy.

cb(fn: Function, ...args: any[]): Promise

Arguments:

  • fn: Function, a function that takes a callback
  • args: (...any) arguments to pass to fn

Example:

import { cb } from '@neo9/n9-node-utils';

const file = await cb(readFile('./my-file.txt', 'utf-8'));

console.log('File content:', file);

waitFor

Waits for ms milliseconds to pass, use setTimeout under the hood.

waitFor(ms: number): Promise

Arguments:

  • ms: Number, default: 0

Example:

import { waitFor } from '@neo9/n9-node-utils';

await waitFor(1000); // wait for 1s

waitForEvent

Waits for emitter to emit an eventName event.

waitForEvent(emitter: EventEmitter, eventName: string): Promise<Array>

Arguments:

  • emitter: EventEmitter
  • eventName: String

Example:

import { waitForEvent } from '@neo9/n9-node-utils';

await waitForEvent(sever, 'listen');

asyncObject

Waits for all Promises in the keys of obj to resolve.

asyncObject(obj: Object): Promise<Object>

Arguments:

  • obj: Object, default: {}

Example:

import { asyncObject } from '@neo9/n9-node-utils';

const results = await asyncObject({
    pictures: getPictures(),
    comments: getComments(),
    tweets: getTweets(),
});

console.log(results.pictures, results.comments, results.tweets);

changelog

3.0.0-rc.0 (2023-10-13)

node

  • Drop support of node below 16 and support for node 20 #30 (0e6f807), closes #30

yarn

2.2.1 (2022-07-26)

types

  • Fix type metadata usage on n9-json-stream (3fdb85a)

2.2.0 (2022-07-26)

build

  • Use github-actions for build instead of travis (b7800bf)

types

  • Add type on n9-json-stream metadata (21e000c)

2.1.0 (2021-05-18)

node

  • Drop support of node 10 and add node 16 (a31ef82)

yarn

  • Update all dev dependencies (c3df3f9)

2.0.2 (2020-10-12)

n9errors

  • Remove readonly on context (a5dc9ac)

2.0.1 (2020-10-09)

types

2.0.0 (2020-10-09)

2.0.0-beta.0 (2020-10-09)

errors

  • Add date and hostname to n9-errors (1c501a1)

yarn

  • Switch from npm to yarn (72ce9f2)

1.10.0 (2019-11-14)

errors

  • Keep stack in error when stringify to JSON (ea5b2a8)

1.9.0 (2019-10-10)

error

  • Handle error message from contexte when stringified (9a6306a)

errors

  • Fix errors toJSON function (7546573)
  • Keep stack in error context (698df48)

json

release

1.7.2 (2018-07-13)

base

docs

  • Update syntax highlight (002549f)

feat

pacakge

  • Upgrade n9-sonar-generate (8bb789e)

package

readme

sonar

  • add sonar project to gitignore (77ef794)
  • delete project properties (312307f)

stream

tag

test

  • Add test on asyncObject with no parameter (48240e9)

ts

versions