@nerdvision/agent

The official node agent for NerdVision

Usage no npm install needed!

<script type="module">
  import nerdvisionAgent from 'https://cdn.skypack.dev/@nerdvision/agent';
</script>

README

https://nerd.vision node agent

Join us on Discord

This is the official nerd.vision node agent. We're constantly looking to improve, so please send us feedback on it's usability and if you find any issues! You can see the known issues at the bottom of this readme.

Requirements

  • Node 10+

Documentation

You can find the documentation at docs.nerd.vision

Installation

npm i @nerdvision/agent

Configuration Properties

All configuration properties are defined in NerdVisionConfig

interface NerdVisionConfig {
    api_key: string;
    name?: string; // default: my-node-app
    debug?: boolean; // default: false
    tags?: { [key: string]: string }; // default: {}
}
⚠ Breaking change in v1.0.0: ️apiKey has been renamed to api_key

Usage

Both init and wrap accept an API key, or the configuration object. The example below is typescript, but nerd.vision works perfectly with normal javascript as well.

const {nerdvision, NerdVisionConfig} = require('@nerdvision/agent');

const config: NerdVisionConfig = {
    api_key: 'API_KEY', // you can find yours at https://account.nerd.vision/account/apikeys
};

//
// THEN
//

nerdvision.init('API_KEY').then(() => {
    // application code
});

//
// OR
//

nerdvision.init(config).then(() => {
    // application code
});

When Node exits, nerd.vision should automatically disconnect. If you want to ensure that it has disconnected, you can explicitly call close in your shutdown handler:

nerdvision.close();

You can also use .wrap to automatically disconnect after your code has run. This is more useful for applications that shut down after processing.

nerdvision.wrap(config, async () => {
    // application code
    
    // this function must return a promise
    // when it resolves, nerd.vision will disconnect automatically
});

Examples

There are three example applications available for nerd.vision. Two are simple command line applications which generate a new uuid every second. The other is a very small todo web application. You can find the source code and installation instructions for all of them here:

Troubleshooting

I get the error TS7016: Could not find a declaration file for module 'google-protobuf'

  • You need to install types for google-protobuf: npm i -D @types/google-protobuf

I get errors when i use import on nerd.vision

  • Please use the require syntax above for now, we're actively looking into fixing this

Known issues

  • When using a pre-processor for JavaScript, like TypeScript, files that are lazy loaded may not trigger until they are run for a second time.
  • ts-node is not supported yet. As a work around, you can build your code with tsc and run it directly with node for tracepoints to fire