@choksheak/ts-utils 0.3.3 → 0.3.4
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/asNumber.cjs +4 -4
- package/asNumber.min.cjs +1 -1
- package/asNumber.min.cjs.map +1 -1
- package/asNumber.min.mjs +1 -1
- package/asNumber.min.mjs.map +1 -1
- package/asNumber.mjs +4 -4
- package/capLength.cjs +80 -0
- package/capLength.d.mts +3 -0
- package/capLength.d.ts +3 -0
- package/capLength.min.cjs +6 -0
- package/capLength.min.cjs.map +1 -0
- package/capLength.min.mjs +6 -0
- package/capLength.min.mjs.map +1 -0
- package/capLength.mjs +53 -0
- package/{iterators.cjs → concatIterators.cjs} +4 -4
- package/{iterators.min.cjs → concatIterators.min.cjs} +1 -1
- package/concatIterators.min.cjs.map +1 -0
- package/{iterators.min.mjs → concatIterators.min.mjs} +1 -1
- package/concatIterators.min.mjs.map +1 -0
- package/{iterators.mjs → concatIterators.mjs} +1 -1
- package/duration.min.cjs +1 -1
- package/duration.min.mjs +1 -1
- package/kvStore.min.cjs +1 -1
- package/kvStore.min.mjs +1 -1
- package/localStore.min.cjs +1 -1
- package/localStore.min.mjs +1 -1
- package/mean.cjs +4 -4
- package/mean.min.cjs +1 -1
- package/mean.min.cjs.map +1 -1
- package/mean.min.mjs +1 -1
- package/mean.min.mjs.map +1 -1
- package/mean.mjs +4 -4
- package/median.cjs +4 -4
- package/median.min.cjs +1 -1
- package/median.min.cjs.map +1 -1
- package/median.min.mjs +1 -1
- package/median.min.mjs.map +1 -1
- package/median.mjs +4 -4
- package/package.json +66 -49
- package/round.cjs +2 -10
- package/round.d.mts +2 -8
- package/round.d.ts +2 -8
- package/round.min.cjs +1 -1
- package/round.min.cjs.map +1 -1
- package/round.min.mjs +1 -1
- package/round.min.mjs.map +1 -1
- package/round.mjs +1 -8
- package/{logging.cjs → roundToString.cjs} +18 -22
- package/roundToString.d.mts +8 -0
- package/roundToString.d.ts +8 -0
- package/roundToString.min.cjs +2 -0
- package/roundToString.min.cjs.map +1 -0
- package/roundToString.min.mjs +2 -0
- package/roundToString.min.mjs.map +1 -0
- package/roundToString.mjs +16 -0
- package/sum.cjs +4 -4
- package/sum.min.cjs +1 -1
- package/sum.min.cjs.map +1 -1
- package/sum.min.mjs +1 -1
- package/sum.min.mjs.map +1 -1
- package/sum.mjs +4 -4
- package/timer.min.cjs +1 -1
- package/timer.min.mjs +1 -1
- package/toReadableString.cjs +69 -0
- package/toReadableString.d.mts +10 -0
- package/toReadableString.d.ts +10 -0
- package/toReadableString.min.cjs +6 -0
- package/toReadableString.min.cjs.map +1 -0
- package/toReadableString.min.mjs +6 -0
- package/toReadableString.min.mjs.map +1 -0
- package/toReadableString.mjs +44 -0
- package/average.cjs +0 -55
- package/average.d.mts +0 -7
- package/average.d.ts +0 -7
- package/average.min.cjs +0 -2
- package/average.min.cjs.map +0 -1
- package/average.min.mjs +0 -2
- package/average.min.mjs.map +0 -1
- package/average.mjs +0 -28
- package/iterators.min.cjs.map +0 -1
- package/iterators.min.mjs.map +0 -1
- package/logging.d.mts +0 -4
- package/logging.d.ts +0 -4
- package/logging.min.cjs +0 -2
- package/logging.min.cjs.map +0 -1
- package/logging.min.mjs +0 -2
- package/logging.min.mjs.map +0 -1
- package/logging.mjs +0 -21
- /package/{iterators.d.mts → concatIterators.d.mts} +0 -0
- /package/{iterators.d.ts → concatIterators.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/toReadableString.ts"],"sourcesContent":["/**\n * Make the given argument of unknown type into something human-readable.\n * For Error objects, you can specify options to make the string more verbose.\n */\nexport function toReadableString(\n u: unknown,\n options?: { includeStack?: boolean; includeErrorProps?: boolean },\n): string {\n if (typeof u === \"string\") {\n return u;\n }\n\n if (u instanceof Error) {\n const error = u as Error;\n let result = \"\";\n\n // Always include the name and message\n const errorName = error.name || \"Error\";\n const errorMessage =\n error.message || \"An error occurred with no message provided.\";\n\n result += `${errorName}: ${errorMessage}`;\n\n // Optionally include the stack trace\n if (options?.includeStack && error.stack) {\n // Clean up the stack trace to start on a new line,\n // removing potential duplicate header lines if the browser adds them.\n const stack = error.stack\n // Remove the first line if it duplicates the name/message\n .replace(new RegExp(`^${errorName}:.*\\\\n?`), \"\")\n .trim();\n\n if (stack) {\n result += `\\nStack Trace:\\n${stack}`;\n }\n }\n\n // Add any potential custom error properties (e.g., HTTP status code)\n if (options?.includeErrorProps) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const customProps: { [key: string]: unknown } = error as any;\n\n const additionalInfo = Object.keys(customProps)\n .filter(\n (key) =>\n key !== \"name\" &&\n key !== \"message\" &&\n key !== \"stack\" &&\n typeof customProps[key] !== \"function\" &&\n typeof customProps[key] !== \"object\",\n )\n .map((key) => `\\n- ${key}: ${customProps[key]}`);\n\n if (additionalInfo.length > 0) {\n result += `\\nAdditional Data:${additionalInfo.join(\"\")}`;\n }\n }\n\n return result;\n }\n\n // If the object has a custom toString(), then use it.\n if (\n u !== null &&\n typeof u === \"object\" &&\n u.toString !== Object.prototype.toString\n ) {\n return u.toString();\n }\n\n try {\n // Attempt to JSON stringify the object for inspection.\n return JSON.stringify(u);\n } catch {\n // Fallback if the object cannot be stringified (e.g., circular references).\n return String(u);\n }\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAIO,SAASE,EACdE,EACAC,EACQ,CACR,GAAI,OAAOD,GAAM,SACf,OAAOA,EAGT,GAAIA,aAAa,MAAO,CACtB,IAAME,EAAQF,EACVG,EAAS,GAGPC,EAAYF,EAAM,MAAQ,QAC1BG,EACJH,EAAM,SAAW,8CAKnB,GAHAC,GAAU,GAAGC,CAAS,KAAKC,CAAY,GAGnCJ,GAAS,cAAgBC,EAAM,MAAO,CAGxC,IAAMI,EAAQJ,EAAM,MAEjB,QAAQ,IAAI,OAAO,IAAIE,CAAS,SAAS,EAAG,EAAE,EAC9C,KAAK,EAEJE,IACFH,GAAU;AAAA;AAAA,EAAmBG,CAAK,GAEtC,CAGA,GAAIL,GAAS,kBAAmB,CAE9B,IAAMM,EAA0CL,EAE1CM,EAAiB,OAAO,KAAKD,CAAW,EAC3C,OACEE,GACCA,IAAQ,QACRA,IAAQ,WACRA,IAAQ,SACR,OAAOF,EAAYE,CAAG,GAAM,YAC5B,OAAOF,EAAYE,CAAG,GAAM,QAChC,EACC,IAAKA,GAAQ;AAAA,IAAOA,CAAG,KAAKF,EAAYE,CAAG,CAAC,EAAE,EAE7CD,EAAe,OAAS,IAC1BL,GAAU;AAAA,kBAAqBK,EAAe,KAAK,EAAE,CAAC,GAE1D,CAEA,OAAOL,CACT,CAGA,GACEH,IAAM,MACN,OAAOA,GAAM,UACbA,EAAE,WAAa,OAAO,UAAU,SAEhC,OAAOA,EAAE,SAAS,EAGpB,GAAI,CAEF,OAAO,KAAK,UAAUA,CAAC,CACzB,MAAQ,CAEN,OAAO,OAAOA,CAAC,CACjB,CACF","names":["toReadableString_exports","__export","toReadableString","__toCommonJS","u","options","error","result","errorName","errorMessage","stack","customProps","additionalInfo","key"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
function f(r,i){if(typeof r=="string")return r;if(r instanceof Error){let e=r,o="",a=e.name||"Error",s=e.message||"An error occurred with no message provided.";if(o+=`${a}: ${s}`,i?.includeStack&&e.stack){let n=e.stack.replace(new RegExp(`^${a}:.*\\n?`),"").trim();n&&(o+=`
|
|
2
|
+
Stack Trace:
|
|
3
|
+
${n}`)}if(i?.includeErrorProps){let n=e,c=Object.keys(n).filter(t=>t!=="name"&&t!=="message"&&t!=="stack"&&typeof n[t]!="function"&&typeof n[t]!="object").map(t=>`
|
|
4
|
+
- ${t}: ${n[t]}`);c.length>0&&(o+=`
|
|
5
|
+
Additional Data:${c.join("")}`)}return o}if(r!==null&&typeof r=="object"&&r.toString!==Object.prototype.toString)return r.toString();try{return JSON.stringify(r)}catch{return String(r)}}export{f as toReadableString};
|
|
6
|
+
//# sourceMappingURL=toReadableString.min.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/toReadableString.ts"],"sourcesContent":["/**\n * Make the given argument of unknown type into something human-readable.\n * For Error objects, you can specify options to make the string more verbose.\n */\nexport function toReadableString(\n u: unknown,\n options?: { includeStack?: boolean; includeErrorProps?: boolean },\n): string {\n if (typeof u === \"string\") {\n return u;\n }\n\n if (u instanceof Error) {\n const error = u as Error;\n let result = \"\";\n\n // Always include the name and message\n const errorName = error.name || \"Error\";\n const errorMessage =\n error.message || \"An error occurred with no message provided.\";\n\n result += `${errorName}: ${errorMessage}`;\n\n // Optionally include the stack trace\n if (options?.includeStack && error.stack) {\n // Clean up the stack trace to start on a new line,\n // removing potential duplicate header lines if the browser adds them.\n const stack = error.stack\n // Remove the first line if it duplicates the name/message\n .replace(new RegExp(`^${errorName}:.*\\\\n?`), \"\")\n .trim();\n\n if (stack) {\n result += `\\nStack Trace:\\n${stack}`;\n }\n }\n\n // Add any potential custom error properties (e.g., HTTP status code)\n if (options?.includeErrorProps) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const customProps: { [key: string]: unknown } = error as any;\n\n const additionalInfo = Object.keys(customProps)\n .filter(\n (key) =>\n key !== \"name\" &&\n key !== \"message\" &&\n key !== \"stack\" &&\n typeof customProps[key] !== \"function\" &&\n typeof customProps[key] !== \"object\",\n )\n .map((key) => `\\n- ${key}: ${customProps[key]}`);\n\n if (additionalInfo.length > 0) {\n result += `\\nAdditional Data:${additionalInfo.join(\"\")}`;\n }\n }\n\n return result;\n }\n\n // If the object has a custom toString(), then use it.\n if (\n u !== null &&\n typeof u === \"object\" &&\n u.toString !== Object.prototype.toString\n ) {\n return u.toString();\n }\n\n try {\n // Attempt to JSON stringify the object for inspection.\n return JSON.stringify(u);\n } catch {\n // Fallback if the object cannot be stringified (e.g., circular references).\n return String(u);\n }\n}\n"],"mappings":"AAIO,SAASA,EACdC,EACAC,EACQ,CACR,GAAI,OAAOD,GAAM,SACf,OAAOA,EAGT,GAAIA,aAAa,MAAO,CACtB,IAAME,EAAQF,EACVG,EAAS,GAGPC,EAAYF,EAAM,MAAQ,QAC1BG,EACJH,EAAM,SAAW,8CAKnB,GAHAC,GAAU,GAAGC,CAAS,KAAKC,CAAY,GAGnCJ,GAAS,cAAgBC,EAAM,MAAO,CAGxC,IAAMI,EAAQJ,EAAM,MAEjB,QAAQ,IAAI,OAAO,IAAIE,CAAS,SAAS,EAAG,EAAE,EAC9C,KAAK,EAEJE,IACFH,GAAU;AAAA;AAAA,EAAmBG,CAAK,GAEtC,CAGA,GAAIL,GAAS,kBAAmB,CAE9B,IAAMM,EAA0CL,EAE1CM,EAAiB,OAAO,KAAKD,CAAW,EAC3C,OACEE,GACCA,IAAQ,QACRA,IAAQ,WACRA,IAAQ,SACR,OAAOF,EAAYE,CAAG,GAAM,YAC5B,OAAOF,EAAYE,CAAG,GAAM,QAChC,EACC,IAAKA,GAAQ;AAAA,IAAOA,CAAG,KAAKF,EAAYE,CAAG,CAAC,EAAE,EAE7CD,EAAe,OAAS,IAC1BL,GAAU;AAAA,kBAAqBK,EAAe,KAAK,EAAE,CAAC,GAE1D,CAEA,OAAOL,CACT,CAGA,GACEH,IAAM,MACN,OAAOA,GAAM,UACbA,EAAE,WAAa,OAAO,UAAU,SAEhC,OAAOA,EAAE,SAAS,EAGpB,GAAI,CAEF,OAAO,KAAK,UAAUA,CAAC,CACzB,MAAQ,CAEN,OAAO,OAAOA,CAAC,CACjB,CACF","names":["toReadableString","u","options","error","result","errorName","errorMessage","stack","customProps","additionalInfo","key"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// src/toReadableString.ts
|
|
2
|
+
function toReadableString(u, options) {
|
|
3
|
+
if (typeof u === "string") {
|
|
4
|
+
return u;
|
|
5
|
+
}
|
|
6
|
+
if (u instanceof Error) {
|
|
7
|
+
const error = u;
|
|
8
|
+
let result = "";
|
|
9
|
+
const errorName = error.name || "Error";
|
|
10
|
+
const errorMessage = error.message || "An error occurred with no message provided.";
|
|
11
|
+
result += `${errorName}: ${errorMessage}`;
|
|
12
|
+
if (options?.includeStack && error.stack) {
|
|
13
|
+
const stack = error.stack.replace(new RegExp(`^${errorName}:.*\\n?`), "").trim();
|
|
14
|
+
if (stack) {
|
|
15
|
+
result += `
|
|
16
|
+
Stack Trace:
|
|
17
|
+
${stack}`;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (options?.includeErrorProps) {
|
|
21
|
+
const customProps = error;
|
|
22
|
+
const additionalInfo = Object.keys(customProps).filter(
|
|
23
|
+
(key) => key !== "name" && key !== "message" && key !== "stack" && typeof customProps[key] !== "function" && typeof customProps[key] !== "object"
|
|
24
|
+
).map((key) => `
|
|
25
|
+
- ${key}: ${customProps[key]}`);
|
|
26
|
+
if (additionalInfo.length > 0) {
|
|
27
|
+
result += `
|
|
28
|
+
Additional Data:${additionalInfo.join("")}`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
if (u !== null && typeof u === "object" && u.toString !== Object.prototype.toString) {
|
|
34
|
+
return u.toString();
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
return JSON.stringify(u);
|
|
38
|
+
} catch {
|
|
39
|
+
return String(u);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
toReadableString
|
|
44
|
+
};
|
package/average.cjs
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/average.ts
|
|
21
|
-
var average_exports = {};
|
|
22
|
-
__export(average_exports, {
|
|
23
|
-
average: () => average
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(average_exports);
|
|
26
|
-
|
|
27
|
-
// src/asNumber.ts
|
|
28
|
-
function asNumber(u) {
|
|
29
|
-
if (typeof u === "number" && isFinite(u)) {
|
|
30
|
-
return u;
|
|
31
|
-
}
|
|
32
|
-
const n = Number(u);
|
|
33
|
-
if (typeof n === "number" && isFinite(n)) {
|
|
34
|
-
return n;
|
|
35
|
-
}
|
|
36
|
-
return 0;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// src/sum.ts
|
|
40
|
-
function sum(numbers) {
|
|
41
|
-
return numbers.reduce((accumulated, current) => {
|
|
42
|
-
return accumulated + asNumber(current);
|
|
43
|
-
}, 0);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// src/average.ts
|
|
47
|
-
function average(numbers) {
|
|
48
|
-
if (numbers.length === 0) return 0;
|
|
49
|
-
const total = sum(numbers);
|
|
50
|
-
return total / numbers.length;
|
|
51
|
-
}
|
|
52
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
-
0 && (module.exports = {
|
|
54
|
-
average
|
|
55
|
-
});
|
package/average.d.mts
DELETED
package/average.d.ts
DELETED
package/average.min.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var a=(n,r)=>{for(var e in r)u(n,e,{get:r[e],enumerable:!0})},c=(n,r,e,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of b(r))!p.call(n,t)&&t!==e&&u(n,t,{get:()=>r[t],enumerable:!(o=f(r,t))||o.enumerable});return n};var l=n=>c(u({},"__esModule",{value:!0}),n);var d={};a(d,{average:()=>s});module.exports=l(d);function i(n){if(typeof n=="number"&&isFinite(n))return n;let r=Number(n);return typeof r=="number"&&isFinite(r)?r:0}function m(n){return n.reduce((r,e)=>r+i(e),0)}function s(n){return n.length===0?0:m(n)/n.length}0&&(module.exports={average});
|
|
2
|
-
//# sourceMappingURL=average.min.cjs.map
|
package/average.min.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/average.ts","../src/asNumber.ts","../src/sum.ts"],"sourcesContent":["import { sum } from \"./sum\";\n\n/**\n * Average all the numbers together in the given array. Treats null, undefined\n * and NaN as zero.\n */\nexport function average(numbers: (number | null | undefined)[]): number {\n if (numbers.length === 0) return 0;\n\n const total = sum(numbers);\n\n return total / numbers.length;\n}\n","/**\n * Coerce `u` into a number if possible, otherwise just return 0.\n */\nexport function asNumber(u: unknown): number {\n // No transformation needed if u is already a number.\n if (typeof u === \"number\" && isFinite(u)) {\n return u;\n }\n\n // Try to make into a number if possible.\n const n = Number(u);\n if (typeof n === \"number\" && isFinite(n)) {\n return n;\n }\n\n // Return 0 for everything else. This is usually ok if want to just ignore\n // all other noise.\n return 0;\n}\n","import { asNumber } from \"./asNumber\";\n\n/**\n * Add all the numbers together in the given array.\n * Non-numbers will be coerced into numbers if possible.\n */\nexport function sum(numbers: unknown[]): number {\n return numbers.reduce((accumulated: number, current: unknown) => {\n return accumulated + asNumber(current);\n }, 0);\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GCGO,SAASI,EAASC,EAAoB,CAE3C,GAAI,OAAOA,GAAM,UAAY,SAASA,CAAC,EACrC,OAAOA,EAIT,IAAMC,EAAI,OAAOD,CAAC,EAClB,OAAI,OAAOC,GAAM,UAAY,SAASA,CAAC,EAC9BA,EAKF,CACT,CCZO,SAASC,EAAIC,EAA4B,CAC9C,OAAOA,EAAQ,OAAO,CAACC,EAAqBC,IACnCD,EAAcE,EAASD,CAAO,EACpC,CAAC,CACN,CFJO,SAASE,EAAQC,EAAgD,CACtE,OAAIA,EAAQ,SAAW,EAAU,EAEnBC,EAAID,CAAO,EAEVA,EAAQ,MACzB","names":["average_exports","__export","average","__toCommonJS","asNumber","u","n","sum","numbers","accumulated","current","asNumber","average","numbers","sum"]}
|
package/average.min.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function e(n){if(typeof n=="number"&&isFinite(n))return n;let r=Number(n);return typeof r=="number"&&isFinite(r)?r:0}function t(n){return n.reduce((r,u)=>r+e(u),0)}function b(n){return n.length===0?0:t(n)/n.length}export{b as average};
|
|
2
|
-
//# sourceMappingURL=average.min.mjs.map
|
package/average.min.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/asNumber.ts","../src/sum.ts","../src/average.ts"],"sourcesContent":["/**\n * Coerce `u` into a number if possible, otherwise just return 0.\n */\nexport function asNumber(u: unknown): number {\n // No transformation needed if u is already a number.\n if (typeof u === \"number\" && isFinite(u)) {\n return u;\n }\n\n // Try to make into a number if possible.\n const n = Number(u);\n if (typeof n === \"number\" && isFinite(n)) {\n return n;\n }\n\n // Return 0 for everything else. This is usually ok if want to just ignore\n // all other noise.\n return 0;\n}\n","import { asNumber } from \"./asNumber\";\n\n/**\n * Add all the numbers together in the given array.\n * Non-numbers will be coerced into numbers if possible.\n */\nexport function sum(numbers: unknown[]): number {\n return numbers.reduce((accumulated: number, current: unknown) => {\n return accumulated + asNumber(current);\n }, 0);\n}\n","import { sum } from \"./sum\";\n\n/**\n * Average all the numbers together in the given array. Treats null, undefined\n * and NaN as zero.\n */\nexport function average(numbers: (number | null | undefined)[]): number {\n if (numbers.length === 0) return 0;\n\n const total = sum(numbers);\n\n return total / numbers.length;\n}\n"],"mappings":"AAGO,SAASA,EAASC,EAAoB,CAE3C,GAAI,OAAOA,GAAM,UAAY,SAASA,CAAC,EACrC,OAAOA,EAIT,IAAMC,EAAI,OAAOD,CAAC,EAClB,OAAI,OAAOC,GAAM,UAAY,SAASA,CAAC,EAC9BA,EAKF,CACT,CCZO,SAASC,EAAIC,EAA4B,CAC9C,OAAOA,EAAQ,OAAO,CAACC,EAAqBC,IACnCD,EAAcE,EAASD,CAAO,EACpC,CAAC,CACN,CCJO,SAASE,EAAQC,EAAgD,CACtE,OAAIA,EAAQ,SAAW,EAAU,EAEnBC,EAAID,CAAO,EAEVA,EAAQ,MACzB","names":["asNumber","u","n","sum","numbers","accumulated","current","asNumber","average","numbers","sum"]}
|
package/average.mjs
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// src/asNumber.ts
|
|
2
|
-
function asNumber(u) {
|
|
3
|
-
if (typeof u === "number" && isFinite(u)) {
|
|
4
|
-
return u;
|
|
5
|
-
}
|
|
6
|
-
const n = Number(u);
|
|
7
|
-
if (typeof n === "number" && isFinite(n)) {
|
|
8
|
-
return n;
|
|
9
|
-
}
|
|
10
|
-
return 0;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// src/sum.ts
|
|
14
|
-
function sum(numbers) {
|
|
15
|
-
return numbers.reduce((accumulated, current) => {
|
|
16
|
-
return accumulated + asNumber(current);
|
|
17
|
-
}, 0);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// src/average.ts
|
|
21
|
-
function average(numbers) {
|
|
22
|
-
if (numbers.length === 0) return 0;
|
|
23
|
-
const total = sum(numbers);
|
|
24
|
-
return total / numbers.length;
|
|
25
|
-
}
|
|
26
|
-
export {
|
|
27
|
-
average
|
|
28
|
-
};
|
package/iterators.min.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/iterators.ts"],"sourcesContent":["/** Memory-efficient way to concat two or more iterators. */\nexport function* concatIterators<T>(...iterators: Generator<T>[]) {\n for (const iterator of iterators) {\n yield* iterator;\n }\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GACO,SAAUE,KAAsBE,EAA2B,CAChE,QAAWC,KAAYD,EACrB,MAAOC,CAEX","names":["iterators_exports","__export","concatIterators","__toCommonJS","iterators","iterator"]}
|
package/iterators.min.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/iterators.ts"],"sourcesContent":["/** Memory-efficient way to concat two or more iterators. */\nexport function* concatIterators<T>(...iterators: Generator<T>[]) {\n for (const iterator of iterators) {\n yield* iterator;\n }\n}\n"],"mappings":"AACO,SAAUA,KAAsBC,EAA2B,CAChE,QAAWC,KAAYD,EACrB,MAAOC,CAEX","names":["concatIterators","iterators","iterator"]}
|
package/logging.d.mts
DELETED
package/logging.d.ts
DELETED
package/logging.min.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var o=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(t,n)=>{for(var r in n)o(t,r,{get:n[r],enumerable:!0})},l=(t,n,r,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of s(n))!c.call(t,i)&&i!==r&&o(t,i,{get:()=>n[i],enumerable:!(e=g(n,i))||e.enumerable});return t};var y=t=>l(o({},"__esModule",{value:!0}),t);var S={};p(S,{capLength:()=>u,stringify:()=>f});module.exports=y(S);function f(t){return typeof t=="string"?t:t!==null&&typeof t=="object"&&t.toString!==Object.prototype.toString?t.toString():JSON.stringify(t)}function u(t,n=400){let r=f(t);return r.length<=n?r:r.slice(0,n)+` ... (${r.length-n} more)`}0&&(module.exports={capLength,stringify});
|
|
2
|
-
//# sourceMappingURL=logging.min.cjs.map
|
package/logging.min.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/logging.ts"],"sourcesContent":["export function stringify(u: unknown): string {\n if (typeof u === \"string\") {\n return u;\n }\n\n // If the object has a custom toString(), then use it.\n if (\n u !== null &&\n typeof u === \"object\" &&\n u.toString !== Object.prototype.toString\n ) {\n return u.toString();\n }\n\n return JSON.stringify(u);\n}\n\nexport function capLength(u: unknown, maxLength = 400): string {\n const s = stringify(u);\n\n if (s.length <= maxLength) {\n return s;\n }\n\n return s.slice(0, maxLength) + ` ... (${s.length - maxLength} more)`;\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,cAAAC,IAAA,eAAAC,EAAAJ,GAAO,SAASG,EAAUE,EAAoB,CAC5C,OAAI,OAAOA,GAAM,SACRA,EAKPA,IAAM,MACN,OAAOA,GAAM,UACbA,EAAE,WAAa,OAAO,UAAU,SAEzBA,EAAE,SAAS,EAGb,KAAK,UAAUA,CAAC,CACzB,CAEO,SAASH,EAAUG,EAAYC,EAAY,IAAa,CAC7D,IAAMC,EAAIJ,EAAUE,CAAC,EAErB,OAAIE,EAAE,QAAUD,EACPC,EAGFA,EAAE,MAAM,EAAGD,CAAS,EAAI,SAASC,EAAE,OAASD,CAAS,QAC9D","names":["logging_exports","__export","capLength","stringify","__toCommonJS","u","maxLength","s"]}
|
package/logging.min.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function i(t){return typeof t=="string"?t:t!==null&&typeof t=="object"&&t.toString!==Object.prototype.toString?t.toString():JSON.stringify(t)}function o(t,r=400){let n=i(t);return n.length<=r?n:n.slice(0,r)+` ... (${n.length-r} more)`}export{o as capLength,i as stringify};
|
|
2
|
-
//# sourceMappingURL=logging.min.mjs.map
|
package/logging.min.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/logging.ts"],"sourcesContent":["export function stringify(u: unknown): string {\n if (typeof u === \"string\") {\n return u;\n }\n\n // If the object has a custom toString(), then use it.\n if (\n u !== null &&\n typeof u === \"object\" &&\n u.toString !== Object.prototype.toString\n ) {\n return u.toString();\n }\n\n return JSON.stringify(u);\n}\n\nexport function capLength(u: unknown, maxLength = 400): string {\n const s = stringify(u);\n\n if (s.length <= maxLength) {\n return s;\n }\n\n return s.slice(0, maxLength) + ` ... (${s.length - maxLength} more)`;\n}\n"],"mappings":"AAAO,SAASA,EAAUC,EAAoB,CAC5C,OAAI,OAAOA,GAAM,SACRA,EAKPA,IAAM,MACN,OAAOA,GAAM,UACbA,EAAE,WAAa,OAAO,UAAU,SAEzBA,EAAE,SAAS,EAGb,KAAK,UAAUA,CAAC,CACzB,CAEO,SAASC,EAAUD,EAAYE,EAAY,IAAa,CAC7D,IAAMC,EAAIJ,EAAUC,CAAC,EAErB,OAAIG,EAAE,QAAUD,EACPC,EAGFA,EAAE,MAAM,EAAGD,CAAS,EAAI,SAASC,EAAE,OAASD,CAAS,QAC9D","names":["stringify","u","capLength","maxLength","s"]}
|
package/logging.mjs
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// src/logging.ts
|
|
2
|
-
function stringify(u) {
|
|
3
|
-
if (typeof u === "string") {
|
|
4
|
-
return u;
|
|
5
|
-
}
|
|
6
|
-
if (u !== null && typeof u === "object" && u.toString !== Object.prototype.toString) {
|
|
7
|
-
return u.toString();
|
|
8
|
-
}
|
|
9
|
-
return JSON.stringify(u);
|
|
10
|
-
}
|
|
11
|
-
function capLength(u, maxLength = 400) {
|
|
12
|
-
const s = stringify(u);
|
|
13
|
-
if (s.length <= maxLength) {
|
|
14
|
-
return s;
|
|
15
|
-
}
|
|
16
|
-
return s.slice(0, maxLength) + ` ... (${s.length - maxLength} more)`;
|
|
17
|
-
}
|
|
18
|
-
export {
|
|
19
|
-
capLength,
|
|
20
|
-
stringify
|
|
21
|
-
};
|
|
File without changes
|
|
File without changes
|