good-js

A standard library of tools missing from JavaScript. Works for any ECMA Script runtime (2016 or later).

import DateTime from "https://deno.land/x/good@1.5.0.2/date.js"
import { zip, enumerate, count, permute, combinations, wrapAroundGet } from "https://deno.land/x/good@1.5.0.2/array.js"
import { intersection, subtract } from "https://deno.land/x/good@1.5.0.2/set.js"
import { stats, sum, spread, normalizeZeroToOne, roundedUpToNearest, roundedDownToNearest } from "https://deno.land/x/good@1.5.0.2/math.js"
import { capitalize, indent, toCamelCase, digitsToEnglishArray, toPascalCase, toKebabCase, toSnakeCase, toScreamingtoKebabCase, toScreamingtoSnakeCase, toRepresentation, toString, regex, findAll, iterativelyFindAll, escapeRegexMatch, escapeRegexReplace, extractFirst, isValidIdentifier } from "https://deno.land/x/good@1.5.0.2/string.js"
import { generateKeys, encrypt, decrypt, hashers } from "https://deno.land/x/good@1.5.0.2/encryption.js"
import { deferredPromise, recursivePromiseAll } from "https://deno.land/x/good@1.5.0.2/async.js"
import { Event, trigger, everyTime, once } from "https://deno.land/x/good@1.5.0.2/events.js"
import { recursivelyOwnKeysOf, get, set, hasKeyList, hasDirectKeyList, remove, merge, compareProperty, recursivelyIterateOwnKeysOf } from "https://deno.land/x/good@1.5.0.2/object.js"
import { deepCopy, deepCopySymbol, allKeyDescriptions, deepSortObject, shallowSortObject, isGeneratorType,isAsyncIterable, isSyncIterable, isTechnicallyIterable, isSyncIterableObjectOrContainer, allKeys } from "https://deno.land/x/good@1.5.0.2/value.js"
import { iter, next, Stop, Iterable, map, filter, reduce, frequencyCount, zip, count, enumerate, permute, combinations, slices, asyncIteratorToList, concurrentlyTransform, forkBy } from "https://deno.land/x/good@1.5.0.2/iterable.js"
import { parseCsv, createCsv } from "https://deno.land/x/good@1.5.0.2/csv.js"
import { BinaryHeap } from "https://deno.land/x/good@1.5.0.2/binary_heap.js"

How to use

Use intellisense, view the docs, or take a look at the tests for how to use

Versioning

1.2.3.4

  • 1st number is API overhaul
  • 2nd number is breaking change
  • 3rd number is new (backwards compatible) feature
  • 4th number is patch/bugfix