Neo9 Node Utils Module.
npm install --save @neo9/n9-node-utils
or
yarn add --dev @neo9/n9-node-utils
- Drop Node 8 support
- Rename
N9JsonStreamResponse
toN9JSONStreamResponse
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' });
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);
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 tofn
Example:
import { cb } from '@neo9/n9-node-utils';
const file = await cb(readFile('./my-file.txt', 'utf-8'));
console.log('File content:', file);
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
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');
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);