{"version":3,"sources":["../src/sum.ts","../src/asNumber.ts"],"sourcesContent":["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","/**\n * Coerce `u` into a number if possible, otherwise just return 0.\n */\nexport function asNumber(u: unknown, defaultValue = 0): number {\n  // If u is a valid number, return it.\n  if (typeof u === \"number\") {\n    return isFinite(u) ? u : defaultValue;\n  }\n\n  // Try to make into a number if not already a number.\n  u = Number(u);\n\n  // If u is a valid number, return it.\n  if (typeof u === \"number\" && isFinite(u)) {\n    return u;\n  }\n\n  // Return `defaultValue` for everything else. This is usually ok if want to\n  // just ignore all other noise.\n  return defaultValue;\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,SAAAE,IAAA,eAAAC,EAAAH,GCGO,SAASI,EAASC,EAAYC,EAAe,EAAW,CAE7D,OAAI,OAAOD,GAAM,SACR,SAASA,CAAC,EAAIA,EAAIC,GAI3BD,EAAI,OAAOA,CAAC,EAGR,OAAOA,GAAM,UAAY,SAASA,CAAC,EAC9BA,EAKFC,EACT,CDdO,SAASC,EAAIC,EAA4B,CAC9C,OAAOA,EAAQ,OAAO,CAACC,EAAqBC,IACnCD,EAAcE,EAASD,CAAO,EACpC,CAAC,CACN","names":["sum_exports","__export","sum","__toCommonJS","asNumber","u","defaultValue","sum","numbers","accumulated","current","asNumber"]}