New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@cerebrusinc/qol

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cerebrusinc/qol

This is a host of quality of life features that take the load off of coding; A mix of random but cool functions!

  • 1.2.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

qoljs logo

qol

Are you tired of making the same module in every project? Not a problem! Qol has your back.

A suite of random but useful functions that are aimed at giving you 'piece of cake' level comfortability.

This package is also available as:

  • qolpy • py
  • qolrus • rust

Importing

// ES6 Module
import * as qol from "@techtronics/qol";

// ES6 Destructuring
import { randomColour } from "@techtronics/qol";

// ES5 Module
const qol = require("@techtronics/qol");

// ES5 Destructuring
const { randomColour } = require("@techtronics/qol");

Functions

randomColour

Get a random colour; For those scenarios where you couldn't care less!

Returns a string

const c = randomColour();
const cRGB = randomColour("rgb");
const cCMYK = randomColour("cmyk");
const cHSV = randomColour("hsv");
const cHSL = randomColour("hsl");

console.log(c, cRGB, cCMYK, cHSV, cHSL);
// #f7f7f7, rgb(247,247,247), cmyk(0%,0%,0%,3%), hsv(0,0%,97%), hsl(0,0%,97%)
Params
ParameterDefault SettingRequired?DefinitionOptions
settinghexNoThe type of colour you would like returnedhex, rgb, cmyk, hsv, hsl

parseDate

Send in date parameters and receive either an object with their metadata, or a parsed date (e.g 2 Sep 2020); American formatting is possible (e.g Sep 2 2020).

NOTE: You do not need to add 1 to the day or month, it will do that for you.

Returns a string or DateObject

const d = new Date();

const dateArr = [d.getDate(), d.getDay(), d.getMonth(), d.getFullYear()];

const pD = parseDate(...dateArr, "nll", true);
const pDfull = parseDate(...dateArr, "lll");

console.log(pD, pDfull);
// October 24 2022, Monday 24th October 2022
interface
interface DateObject {
	day: {
		short: string;
		long: string;
		ordinalMonth: string;
		ordinalWeek: string;
		weekNumber: number;
		monthNumber: number;
	};
	month: {
		short: string;
		long: string;
		ordinal: string;
		number: number;
	};
	year: {
		short: number;
		long: number;
	};
}

Params
ParameterDefault SettingRequired?DefinitionOptions
monthDaynoneYesThe day of the monthtype number
weekDaynoneYesThe day of the weektype number
monthnoneYesThe numeric monthtype number
yearnoneYesThe full numeric yeartype number
formatnoneNoThe date format you would liken = numeric, s = shorthand text, l = full text; nns, nnl, sss, ssl, lll, nss, nsl, nls, nll
americanfalseNoWhether or not you would like the format to be 'Americanised'true, false

numParse

Convert a number into a string as if it's MS Excel!

Returns a string

const num = numParse(2100.45, "space");
const numEurope = numParse(2100.45, "punct");
const numCustom = numParse(2100.45, "-" as any);

console.log(num, numEurope, numCustom);
// 2 100.45, 2.100,45, 2-100.45)
Params
ParameterDefault SettingRequired?DefinitionOptions
valueundefinedYesThe number you want to be parsednone
settingcommaNoThe delimiter for the numberspace, comma, punct, any other delimiter as a string

Logger

Log code executions, stats, and processing times in any framework in any environment; and chain the logs to see the entire process in the terminal!

Returns void

code example

import { Logger } from "@cerebrusinc/qol";
import someFunction from "./someFunction";
import { express } from "express";

const app = express();
logger = new Logger();

app.use((req, res, next) => {
	logger.newLog("log", req.method, req.path);
	logger.log("log", "someFunction", "Doing something...");
	someFunction();
	logger.procTime();
	next();
	logger.execTime();
});
// rest of your code

terminal output

[log • aGy5Op]: GET => /hello | 07/10/2023, 2:46:19 am
[log • aGy5Op]: someFunction => Doing something... | 07/10/2023, 2:46:20 am
[stats • aGy5Op]: someFunction => 53ms
[exec • aGy5Op]: 121ms
Variables
VariableDefault SettingRequired?Definition
idLength5NoA number that determines the length of the log id
americanDatefalseNoA boolean that determines whether the parseDate output should be american
locale?undefinedNoA Intl.LocalesArgument that determines the time locale
timeFormatOptions?undefinedNoA Intl.DateTimeFormatOptions that sets options for the time output

These can be set when initialising the Logger or dynamically. NOTE that you can initialise any of them as undefined through the constructor and it will set their default values, however, dynamically they will need a value of their type unless they can be undefined.

// Set the americanDate param through the constructor
const logger = new Logger(undefined, true);

// set the americanDate param dynamically
logger.americanDate = false;

Methods
MethodTypeDetails
newLog(config: "stats" or "log" or "error", process: string, message: string) => voidCreate a new log chain; This will change the log id
log(config: "stats" or "log" or "error", process: string, message: string) => voidAdd a log to the log chain; This will not change the log id
procTime() => voidLog the processing time between this call and the previous call to view their processing time
execTime() => voidView the entire execution time

sleep

Mimics python's time.sleep function when a delay is needed to mimic processes such as an API call.

Returns a Promise<unknown>

const fetchData = async (): Promise<string> => {
	try {
		await sleep(1200);
		return "data";
	} catch {
		return "fetchData error";
	}
};

console.log(fetchData());
// data

You can also mimick an error by setting the error arg to true:

const fetchData = async (): Promise<string> => {
	try {
		// set it to true
		await sleep(1200, true);
		return "data";
	} catch {
		return "fetchData error";
	}
};

console.log(fetchData());
// fetchData error
Params
ParameterDefault SettingRequired?DefinitionOptions
valueundefinedYesThe number you want to be parsednone
settingcommaNoThe delimiter for the numberspace, comma, punct, any other delimiter as a string

Changelog

v1.2.x

v1.2.1
  • Fixed negative number parsing error where the - symbol always followed a comma for values greater than 100

v1.2.0
  • added sleep async function
    • mimcs python's time.sleep

v1.1.x

v1.1.1
  • added lib

v1.1.0
  • parseDate() updates
    • Fixed incorrect return strings when format = "nns" or "nls"
  • Added Logger class
  • numParse() updates
    • Removed redundant code

v1.0.x

v1.0.0
  • numParse() updates; Breaking change
    • You can now send the value as a string
    • To use a custom seperator, you must declare it as any
    • The setting parameter is now options, it defaults to a comma
    • Parity with our python qolpy package
  • Added icon to README

v0.1.x

v0.1.3
  • Fully added numParse()
    • Add delimiters to your numbers, ideal for frontend
v0.1.2
  • Fully added parseDate()
    • Get date params (e.g long text version and numeric verison) in an object or a parsed date as text e.g '2 Sep 2020'
    • Can return in American format eg 'Sep 2 2020'
    • View the param options to see how many different types of date formats you can choose
v0.1.1
  • Type hint updates
  • README restructuring
  • Source resturing
  • Update to randomColour()
    • Get the colour as a hex, rgb, cmyk, hsv, or hsl string
  • Parse date funtion (WIP)
v0.1.0
  • Initial release
  • Sentence casing, title casing, and abrreviations added and typed

Keywords

FAQs

Package last updated on 02 Feb 2025

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