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

larvitutils

Package Overview
Dependencies
Maintainers
0
Versions
184
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

larvitutils

Misc utils

  • 5.1.110
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.5K
increased by75.8%
Maintainers
0
Weekly downloads
 
Created
Source

Build Status

larvitutils

Misc utilities

Compability

Since v4.x this library is ECMA script module only, no support for CommonJS.

Loading of library

The library takes one parameter as option, "log". It is designed to take an instance of winston, but more exactly it should be an object with the methods "silly", "debug", "verbose", "info", "warn" and "error". An example of this can be found in the VERY simplified logging utility built in to this library. See documentation below.

Example of loading the library with no configured logger (using the default):

import { Utils } from 'larvitutils';
const utils = new Utils();

Example of loading the library with an instance of winston as logger:

import winston from 'winston';
import { Utils } from 'larvitutils';
const log = winston.createLogger({ 'transports': [new winston.transprots.Console()] });
const utils = new Utils({ log });

Changelog

Very summarized, see specific commits for more details

v5.0.0 - Updated dependency versions and fixed some TypeScript errors. Removed coveralls since it's dependent on deprecated packages.

v4.0.2 - Even stricter control of process not being set for some environments

v4.0.1 - Fixed bug where process.env.NODE_LOG_LVL was expected to be set in browsers if no log level was provided on instansiation

v4.0.0 - ECMA Module distribution, dropped support for CommonJS

v3.2.0 - Added getUniqueCombinations()

v3.0.4 - Rewrite to TypeScript. Different initialization of the library (Log is no longer part of Utils). Log() now require exactly 'none' for no log output. Random strings will no longer be accepted.

v2.0.0 - Rewrite to all tings being instanciated

Get unique combinations

Breaks up object with key-values to an array of all possible, unique key-values.

Example:

import { Utils } from 'larvitutils';
const utils = new Utils();

console.log(utils.getUniqueCombinations({
	foo: ['bar', 'baz'],
	buu: ['lenny', 'bosse']
}));

/*
Outputs:
[
	{ "foo": "bar, "buu": "lenny" },
	{ "foo": "bar, "buu": "bosse" },
	{ "foo": "baz, "buu": "lenny" },
	{ "foo": "baz, "buu": "bosse" },
]
*/

Async setTimeout

import { Utils } from 'larvitutils';
const utils = new Utils();
await utils.setTimeout(1000);
console.log('1000ms later');

Convert a buffer to an Uuid

import { Utils } from 'larvitutils';
const utils = new Utils();
const uuid = utils.formatUuid(new Buffer('f9684592b24542fa88c69f16b9236ac3', 'hex'));

console.log(uuid); // f9684592-b245-42fa-88c6-9f16b9236ac3

Example usecase: fetch a binary column from a database and convert to a readable Uuid string

Format a hex string to uuid

import { Utils } from 'larvitutils';
const utils = new Utils();
const uuid = utils.formatUuid(' f9684592b24542fa88c69f16b9236ac3'); // Notice the starting space getting trimmed away

console.log(uuid); // f9684592-b245-42fa-88c6-9f16b9236ac3

hrtimeToMs()

Used to convert hrtime() calls to milliseconds, since hrtime() output is messy (seconrds + nanoseconrds)

Usage:

import { Utils } from 'larvitutils';
const utils = new Utils();
const startTime = process.hrtime();

setTimeout(function() {
	console.log('benchmark took %d ms', utils.hrtimeToMs(startTime, 4));
 // benchmark took 34.0005 ms
}, 34);

Uuid string to buffer

import { Utils } from 'larvitutils';
const utils = new Utils();
const uuidStr = 'f9684592-b245-42fa-88c6-9f16b9236ac3';

utils.uuidToBuffer(uuidStr); // Will return a buffer or false on failure

Replace all for strings

import { Utils } from 'larvitutils';
const utils = new Utils();
const str = 'f9684592-b245-42fa-88c6-9f16b9236ac3';

utils.replaceAll('-', '_', str); // f9684592_b245_42fa_88c6_9f16b9236ac3

Validate an uuid string

import { Utils } from 'larvitutils';
const utils = new Utils();
const validUuid = 'f9684592-b245-42fa-88c6-9f16b9236ac3';
const invalidUuid1 = false;
const invalidUuid2 = 'foobar';
const invalidUuid3 = {höhö: 'oveboll'};

utils.formatUuid(validUuid); // true
utils.formatUuid(invalidUuid1); // false
utils.formatUuid(invalidUuid2); // false
utils.formatUuid(invalidUuid3); // false

Check if input is an int

import { Utils } from 'larvitutils';
const utils = new Utils();

utils.isInt(10); // true
utils.isInt(10.0); // true
utils.isInt(10.5); // false
utils.isInt('oveboll'); // false

Simple logger

This is ment as a very simple replacement for winston

import { Log } from 'larvitutils';
const log = new Log();

log.info('Hello', { foo: 'bar' }); // prints to stdout "2018-08-08T20:02:34Z [inf] Hello {"foo":"bar}
log.error('Hello'); // prints to stderr "2018-08-08T20:02:48Z [err] Hello

By default only info, warn and error are printed to screen. Set minimum level by string, like this:

import { Log } from 'larvitutils';
const log = new Log('debug');

log.debug('Hello'); // prints to stdout "2018-08-08T20:02:34Z [deb] Debug

Or disable output entirely

import { Log } from 'larvitutils';
const log = new Log('none');

log.error('Hello'); // prints nothing

The default log level can be changed by setting environment variable NODE_LOG_LVL

All logging methods: silly, debug, verbose, info, warn and error.

Keywords

FAQs

Package last updated on 23 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

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