cafe-utility 32.0.0 → 32.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +3 -1
- package/index.js +18 -11
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -66,6 +66,7 @@ declare function roundToNearest(value: number, nearest: number): number
|
|
|
66
66
|
declare function formatDistance(meters: number): string
|
|
67
67
|
declare function triangularNumber(n: number): number
|
|
68
68
|
declare function searchFloat(string: string): number
|
|
69
|
+
declare function binomialSample(n: number, p: number, generator?: () => number): number
|
|
69
70
|
declare function isObject(value: any, checkForPlainObject?: boolean): value is object
|
|
70
71
|
declare function isStrictlyObject(value: any): value is object
|
|
71
72
|
declare function isEmptyArray(value: any): boolean
|
|
@@ -449,7 +450,7 @@ declare function minutes(value: number): number
|
|
|
449
450
|
declare function hours(value: number): number
|
|
450
451
|
declare function days(value: number): number
|
|
451
452
|
declare function makeDate(numberWithUnit: string): number
|
|
452
|
-
declare function makeStorage(numberWithUnit: string): number
|
|
453
|
+
declare function makeStorage(numberWithUnit: string, conversionMultiplier?: number): number
|
|
453
454
|
declare function getPreLine(string: string): string
|
|
454
455
|
declare function getCached<T>(key: string, ttlMillis: number, handler: () => Promise<T>): Promise<T>
|
|
455
456
|
declare function deleteFromCache(key: string): void
|
|
@@ -889,6 +890,7 @@ export declare const Numbers: {
|
|
|
889
890
|
formatDistance: typeof formatDistance
|
|
890
891
|
triangularNumber: typeof triangularNumber
|
|
891
892
|
searchFloat: typeof searchFloat
|
|
893
|
+
binomialSample: typeof binomialSample
|
|
892
894
|
}
|
|
893
895
|
export declare const Promises: {
|
|
894
896
|
raceFulfilled: typeof raceFulfilled
|
package/index.js
CHANGED
|
@@ -267,6 +267,13 @@ function searchFloat(n) {
|
|
|
267
267
|
if (!e) throw Error('No float found in ' + n)
|
|
268
268
|
return parseFloat(e[0])
|
|
269
269
|
}
|
|
270
|
+
function binomialSample(n, e, t = Math.random) {
|
|
271
|
+
const r = n * e,
|
|
272
|
+
o = Math.sqrt(n * e * (1 - e)),
|
|
273
|
+
u = (t() + t() + t() + t() + t() + t() - 3) * Math.SQRT2,
|
|
274
|
+
s = Math.round(r + o * u)
|
|
275
|
+
return Math.max(0, Math.min(n, s))
|
|
276
|
+
}
|
|
270
277
|
function isObject(n, e = !0) {
|
|
271
278
|
return !n || (e && !isUndefined(n._readableState)) || (e && n.constructor && (n.constructor.isBuffer || n.constructor.name == 'Uint8Array' || n.constructor.name === 'ArrayBuffer' || n.constructor.name === 'ReadableStream')) ? !1 : typeof n == 'object'
|
|
272
279
|
}
|
|
@@ -1409,21 +1416,21 @@ function makeDate(n) {
|
|
|
1409
1416
|
.replace(/^-?[0-9.]+/, '')
|
|
1410
1417
|
.trim()
|
|
1411
1418
|
.toLowerCase(),
|
|
1412
|
-
r = dateUnits[t]
|
|
1419
|
+
r = t === '' ? 1 : dateUnits[t]
|
|
1413
1420
|
if (!r) throw Error(`Unknown unit: "${t}"`)
|
|
1414
|
-
return e * r
|
|
1421
|
+
return Math.ceil(e * r)
|
|
1415
1422
|
}
|
|
1416
|
-
const
|
|
1417
|
-
function makeStorage(n) {
|
|
1418
|
-
const
|
|
1419
|
-
if (isNaN(
|
|
1420
|
-
const
|
|
1423
|
+
const storageUnitExponents = { b: 0, byte: 0, bytes: 0, kb: 1, kilobyte: 1, kilobytes: 1, mb: 2, megabyte: 2, megabytes: 2, gb: 3, gigabyte: 3, gigabytes: 3, tb: 4, terabyte: 4, terabytes: 4 }
|
|
1424
|
+
function makeStorage(n, e = 1024) {
|
|
1425
|
+
const t = parseFloat(n)
|
|
1426
|
+
if (isNaN(t)) throw Error('makeStorage got NaN for input')
|
|
1427
|
+
const r = n
|
|
1421
1428
|
.replace(/^-?[0-9.]+/, '')
|
|
1422
1429
|
.trim()
|
|
1423
1430
|
.toLowerCase(),
|
|
1424
|
-
|
|
1425
|
-
if (
|
|
1426
|
-
return
|
|
1431
|
+
o = r === '' ? 0 : storageUnitExponents[r]
|
|
1432
|
+
if (o == null) throw Error(`Unknown unit: "${r}"`)
|
|
1433
|
+
return Math.ceil(t * e ** o)
|
|
1427
1434
|
}
|
|
1428
1435
|
function getPreLine(n) {
|
|
1429
1436
|
return n.replace(/ +/g, ' ').replace(/^ /gm, '')
|
|
@@ -2716,7 +2723,7 @@ class TrieRouter {
|
|
|
2716
2723
|
(exports.Random = { intBetween, floatBetween, chance, signed: signedRandom, makeSeededRng, point: randomPoint, procs }),
|
|
2717
2724
|
(exports.Arrays = { countUnique, makeUnique, splitBySize, splitByCount, index: indexArray, indexCollection: indexArrayToCollection, onlyOrThrow, onlyOrNull, firstOrThrow, firstOrNull, shuffle, initialize: initializeArray, initialize2D: initialize2DArray, rotate2D: rotate2DArray, containsShape, glue, pluck, pick, pickMany, pickManyUnique, pickWeighted, pickRandomIndices, pickGuaranteed, last, pipe, makePipe, sortWeighted, pushAll, unshiftAll, filterAndRemove, merge: mergeArrays, empty, pushToBucket, unshiftAndLimit, atRolling, group, createOscillator, organiseWithLimits, tickPlaybook, getArgument, getBooleanArgument, getNumberArgument, requireStringArgument, requireNumberArgument, bringToFront, bringToFrontInPlace, findInstance, filterInstances, interleave, toggle, createHierarchy, multicall, maxBy }),
|
|
2718
2725
|
(exports.System = { sleepMillis, forever, scheduleMany, waitFor, expandError, runAndSetInterval, whereAmI }),
|
|
2719
|
-
(exports.Numbers = { make: makeNumber, sum, average, median, getDistanceFromMidpoint, clamp, range, interpolate, createSequence, increment, decrement, format: formatNumber, fromDecimals, makeStorage, asMegabytes, convertBytes, hexToRgb, rgbToHex, haversineDistanceToMeters, roundToNearest, formatDistance, triangularNumber, searchFloat }),
|
|
2726
|
+
(exports.Numbers = { make: makeNumber, sum, average, median, getDistanceFromMidpoint, clamp, range, interpolate, createSequence, increment, decrement, format: formatNumber, fromDecimals, makeStorage, asMegabytes, convertBytes, hexToRgb, rgbToHex, haversineDistanceToMeters, roundToNearest, formatDistance, triangularNumber, searchFloat, binomialSample }),
|
|
2720
2727
|
(exports.Promises = { raceFulfilled, invert: invertPromise, runInParallelBatches }),
|
|
2721
2728
|
(exports.Dates = { getTimestamp, getTimeDelta, secondsToHumanTime, countCycles, isoDate, throttle, timeSince, dateTimeSlug, unixTimestamp, fromUtcString, fromMillis, getProgress, humanizeTime, humanizeProgress, createTimeDigits, mapDayNumber, getDayInfoFromDate, getDayInfoFromDateTimeString, seconds, minutes, hours, days, make: makeDate, normalizeTime, absoluteDays }),
|
|
2722
2729
|
(exports.Objects = { safeParse, deleteDeep, getDeep, setDeep, incrementDeep, ensureDeep, replaceDeep, getFirstDeep, deepMergeInPlace, deepMerge2, deepMerge3, mapAllAsync, cloneWithJson, sortObject, sortArray, sortAny, deepEquals, deepEqualsEvery, runOn, ifPresent, zip, zipSum, removeEmptyArrays, removeEmptyValues, flatten, unflatten, match, sort: sortObjectValues, map: mapObject, mapIterable, filterKeys: filterObjectKeys, filterValues: filterObjectValues, rethrow, setSomeOnObject, setSomeDeep, flip, getAllPermutations, countTruthyValues, transformToArray, setMulti, incrementMulti, createBidirectionalMap, createTemporalBidirectionalMap, pushToBidirectionalMap, unshiftToBidirectionalMap, addToTemporalBidirectionalMap, getFromTemporalBidirectionalMap, createStatefulToggle, diffKeys, pickRandomKey, mapRandomKey, fromObjectString, toQueryString, parseQueryString, hasKey, selectMax, reposition, unwrapSingleKey, parseKeyValues }),
|