Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

influx

Package Overview
Dependencies
Maintainers
2
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

influx - npm Package Compare versions

Comparing version 5.7.0 to 5.8.0

72

lib/src/index.d.ts

@@ -108,2 +108,17 @@ /// <reference types="node" />

}
export interface IParsedPoint extends IPoint {
/**
* Fields Pairs is the list of key/value pairs for each field on the point
*/
fieldsPairs: Array<[string, string]>;
/**
* Tags Names is the list of tag names in the point
*/
tagsNames: string[];
/**
* Casted Timestamp is the timestamp value after being casted to the
* desired precision. Default 'n'
*/
castedTimestamp?: string;
}
export interface IWriteOptions {

@@ -147,2 +162,13 @@ /**

}
export interface IParseOptions {
/**
* Precision at which the points are written, defaults to nanoseconds 'n'.
*/
precision?: grammar.TimePrecision;
/**
* Database under which to write the points. This is required if a default
* database is not provided in Influx.
*/
database?: string;
}
/**

@@ -680,2 +706,48 @@ * IRetentionOptions are passed into passed into the {@link

/**
* ParsePoint will perform the coercions/schema checks and return the data
* required for writing a point. This will throw an error if a schema check
* or coercion fails. This can be useful for flagging or "throwing out" bad
* points in a batch write to prevent the entire batch from getting aborted
*
* ---
*
* A note when using this function, {@link InfluxDB#writePoints} will still perform
* the same checks, so any pre-processed data will be checked for validity twice which
* has potential performance implications on large data sets
*
* @param point
* @param [options]
* @return
* @example
* // parse a point as if it is getting written to the default
* // databse with the default time precision
* influx.parsePoint({
* measurement: 'perf',
* tags: { host: 'box1.example.com' },
* fields: { cpu: getCpuUsage(), mem: getMemUsage() },
* })
*
* // you can manually specify the database and time precision
* influx.parsePoint({
* measurement: 'perf',
* tags: { host: 'box1.example.com' },
* fields: { cpu: getCpuUsage(), mem: getMemUsage() },
* }, {
* precision: 's',
* database: 'my_db'
* })
*
* // if an error occurs, you can catch the error with try...catch
* try {
* influx.parsePoint({
* measurement: 'perf',
* tags: { host: 'box1.example.com', myExtraneousTag: 'value' },
* fields: { cpu: getCpuUsage(), mem: getMemUsage(), myExtraneousField: 'value' },
* })
* } catch(err) {
* handleError(err);
* }
*/
parsePoint(point: IPoint, options?: IParseOptions): IParsedPoint;
/**
* WriteMeasurement functions similarly to {@link InfluxDB#writePoints}, but

@@ -682,0 +754,0 @@ * it automatically fills in the `measurement` value for all points for you.

75

lib/src/index.js

@@ -834,8 +834,3 @@ "use strict";

points.forEach((point) => {
const { fields = {}, tags = {}, measurement, timestamp } = point;
const schema = this._schema[database] && this._schema[database][measurement];
const fieldsPairs = schema
? schema.coerceFields(fields)
: schema_1.coerceBadly(fields);
const tagsNames = schema ? schema.checkTags(tags) : Object.keys(tags);
const { measurement, tags, fieldsPairs, tagsNames, castedTimestamp, } = this.parsePoint(point, { database, precision });
payload += (payload.length > 0 ? "\n" : "") + measurement;

@@ -856,4 +851,4 @@ for (let tagsName of tagsNames) {

}
if (timestamp !== undefined) {
payload += " " + grammar.castTimestamp(timestamp, precision);
if (castedTimestamp !== undefined) {
payload += " " + castedTimestamp;
}

@@ -875,2 +870,66 @@ });

/**
* ParsePoint will perform the coercions/schema checks and return the data
* required for writing a point. This will throw an error if a schema check
* or coercion fails. This can be useful for flagging or "throwing out" bad
* points in a batch write to prevent the entire batch from getting aborted
*
* ---
*
* A note when using this function, {@link InfluxDB#writePoints} will still perform
* the same checks, so any pre-processed data will be checked for validity twice which
* has potential performance implications on large data sets
*
* @param point
* @param [options]
* @return
* @example
* // parse a point as if it is getting written to the default
* // databse with the default time precision
* influx.parsePoint({
* measurement: 'perf',
* tags: { host: 'box1.example.com' },
* fields: { cpu: getCpuUsage(), mem: getMemUsage() },
* })
*
* // you can manually specify the database and time precision
* influx.parsePoint({
* measurement: 'perf',
* tags: { host: 'box1.example.com' },
* fields: { cpu: getCpuUsage(), mem: getMemUsage() },
* }, {
* precision: 's',
* database: 'my_db'
* })
*
* // if an error occurs, you can catch the error with try...catch
* try {
* influx.parsePoint({
* measurement: 'perf',
* tags: { host: 'box1.example.com', myExtraneousTag: 'value' },
* fields: { cpu: getCpuUsage(), mem: getMemUsage(), myExtraneousField: 'value' },
* })
* } catch(err) {
* handleError(err);
* }
*/
parsePoint(point, options = {}) {
const { database = this._defaultDB(), precision = "n" } = options;
const { fields = {}, tags = {}, measurement, timestamp } = point;
const schema = this._schema[database] && this._schema[database][measurement];
const fieldsPairs = schema
? schema.coerceFields(fields)
: schema_1.coerceBadly(fields);
const tagsNames = schema ? schema.checkTags(tags) : Object.keys(tags);
const castedTimestamp = timestamp && grammar.castTimestamp(timestamp, precision);
return {
fields,
tags,
measurement,
timestamp,
fieldsPairs,
tagsNames,
castedTimestamp,
};
}
/**
* WriteMeasurement functions similarly to {@link InfluxDB#writePoints}, but

@@ -877,0 +936,0 @@ * it automatically fills in the `measurement` value for all points for you.

8

package.json
{
"name": "influx",
"version": "5.7.0",
"version": "5.8.0",
"description": "InfluxDB Client",

@@ -50,3 +50,3 @@ "main": "./lib/src/index.js",

"awesome-typescript-loader": "5.2.1",
"chai": "4.2.0",
"chai": "4.3.3",
"coveralls": "^3.1.0",

@@ -64,3 +64,3 @@ "esdoc": "1.1.0",

"karma-webpack": "^5.0.0-alpha.5",
"lodash": "4.17.20",
"lodash": "4.17.21",
"mocha": "^8.2.1",

@@ -71,3 +71,3 @@ "node-fetch": "2.6.1",

"prettier": "^2.0.5",
"puppeteer": "^5.5.0",
"puppeteer": "^8.0.0",
"semantic-release": "^17.1.1",

@@ -74,0 +74,0 @@ "sinon": "^9.0.2",

@@ -12,5 +12,5 @@ <p align="center">

<p align="center">
<a href="https://travis-ci.org/node-influx/node-influx">
<img src="https://img.shields.io/travis/node-influx/node-influx/master.svg?style=flat-square"
alt="Travis Build">
<a href="https://github.com/node-influx/node-influx/actions">
<img src="https://img.shields.io/github/workflow/status/node-influx/node-influx/CI/master?style=flat-square"
alt="CI Status">
</a>

@@ -17,0 +17,0 @@ <a href="">

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc