3.1.0 • Published 9 months ago

@eds-fw/utils v3.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

API

  • formatNumber (x: number): string
  • reportMemory (): void
  • random (min: number, max: number): number
  • arrRandom <T>(arr: T[]): T
  • chanceRandom (elements: Record<string, number>): string
  • equal (v1: any, v2: any): boolean
  • includesAll <T extends any[]>(arr: T, values: T): boolean
  • async wait (time_ms: number): Promise<void>
  • namespace VersionBits
    • var zeroVersion: number[]
    • var delimiter: string
    • type Version
    • from (input: string): Version
    • toTrimmedString (version: number[]): string
    • toString (version: Version): string
    • increase (version: Version, majority: "major"|"minor"|"patch"): Version
  • class PacketBuffer <T>
    • constructor (drain_callback: (items: T[]) => unknown, limit: number, auto_drain: boolean = true)
    • getter total_elements_count: number
    • put (item: T): void
    • async forceDrain (): Promise<void>
    • supports using declarations
  • splitIntoPortions <T>(arr: T[], portionSize: number): T[][]
  • expandDir (dir_path: string): string[]
  • type JSONSupported
  • type JSONLikeObj

Requirements

  • NodeJS, recommended v18 or newer

Setup

  1. Install utils via npm:
npm i @eds-fw/utils
  1. Use utils:
// file.js, type: CJS
const { random, arrRandom } = require("@eds-fw/utils");
let colors = ["red", "green", "blue"];
console.log(`Random int: ${random(1, 100)}, random color: ${arrRandom(colors)}`);
//> Random int: 32, random color: blue
//...it is one of 300 variants

...or:

// file.js, type: ESM
import { random, arrRandom } from "@eds-fw/utils";
let colors = ["red", "green", "blue"];
console.log(`Random int: ${random(1, 100)}, random color: ${arrRandom(colors)}`);
//> Random int: 32, random color: blue
//...it is one of 300 variants

Benchmarks

(cjs) formatNumber(10num): x 2,252,317 ops/sec ±0.92% (87 runs sampled)
(cjs) includesAll(5elem, 5elem): x 27,021,264 ops/sec ±1.62% (92 runs sampled)
(cjs) await wait(1) x 737,596 ops/sec ±3.04% (76 runs sampled)
(cjs) random(1, 100) x 91,501,458 ops/sec ±2.01% (86 runs sampled)
(cjs) arrRandom(5 elem) x 92,061,808 ops/sec ±4.58% (88 runs sampled)
(cjs) chanceRandom(5 elem) x 2,197,700 ops/sec ±0.36% (95 runs sampled)
(cjs) equal(str 5 char) x 194,625,122 ops/sec ±1.45% (91 runs sampled)
(cjs) equal(arr 5 elem) x 193,778,653 ops/sec ±1.28% (91 runs sampled)
(cjs) equal(obj 5 elem) x 5,905,956 ops/sec ±1.90% (86 runs sampled)
(cjs) quickTextCompare(5 words) x 1,099,023 ops/sec ±1.48% (94 runs sampled)
(cjs) quickTextCompare(500 words) x 21,729 ops/sec ±8.20% (79 runs sampled)
(cjs) quickTextCompare(50_000 words) x 208 ops/sec ±1.79% (76 runs sampled)

(esm) formatNumber(10num): x 2,181,306 ops/sec ±2.01% (92 runs sampled)
(esm) includesAll(5elem, 5elem): x 22,414,885 ops/sec ±10.02% (79 runs sampled)
(esm) await wait(1) x 757,943 ops/sec ±3.41% (71 runs sampled)
(esm) random(1, 100) x 91,093,429 ops/sec ±1.08% (89 runs sampled)
(esm) arrRandom(5 elem) x 83,803,868 ops/sec ±3.04% (88 runs sampled)
(esm) chanceRandom(5 elem) x 2,029,170 ops/sec ±1.58% (87 runs sampled)
(esm) equal(str 5 char) x 167,883,950 ops/sec ±5.04% (81 runs sampled)
(esm) equal(arr 5 elem) x 150,356,521 ops/sec ±7.22% (88 runs sampled)
(esm) equal(obj 5 elem) x 4,846,467 ops/sec ±6.70% (74 runs sampled)
(esm) quickTextCompare(5 words) x 982,934 ops/sec ±3.75% (84 runs sampled)
(esm) quickTextCompare(500 words) x 23,448 ops/sec ±3.43% (84 runs sampled)
(esm) quickTextCompare(50_000 words) x 213 ops/sec ±2.49% (84 runs sampled)

Source (git)

Issues (git)

3.1.0

9 months ago

3.0.1

9 months ago

3.0.0

10 months ago

2.0.2

11 months ago

2.0.1

1 year ago

2.0.0

1 year ago