dce-commonkit 4.4.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.
Files changed (401) hide show
  1. package/.eslintrc.js +93 -0
  2. package/LICENSE +21 -0
  3. package/README.md +2 -0
  4. package/lib/constants/DAY_IN_MS.d.ts +6 -0
  5. package/lib/constants/DAY_IN_MS.js +9 -0
  6. package/lib/constants/DAY_IN_MS.js.map +1 -0
  7. package/lib/constants/HOUR_IN_MS.d.ts +6 -0
  8. package/lib/constants/HOUR_IN_MS.js +9 -0
  9. package/lib/constants/HOUR_IN_MS.js.map +1 -0
  10. package/lib/constants/LOG_REVIEW_GET_LOGS_ROUTE.d.ts +6 -0
  11. package/lib/constants/LOG_REVIEW_GET_LOGS_ROUTE.js +13 -0
  12. package/lib/constants/LOG_REVIEW_GET_LOGS_ROUTE.js.map +1 -0
  13. package/lib/constants/LOG_REVIEW_ROUTE_PATH_PREFIX.d.ts +6 -0
  14. package/lib/constants/LOG_REVIEW_ROUTE_PATH_PREFIX.js +13 -0
  15. package/lib/constants/LOG_REVIEW_ROUTE_PATH_PREFIX.js.map +1 -0
  16. package/lib/constants/LOG_REVIEW_STATUS_ROUTE.d.ts +7 -0
  17. package/lib/constants/LOG_REVIEW_STATUS_ROUTE.js +14 -0
  18. package/lib/constants/LOG_REVIEW_STATUS_ROUTE.js.map +1 -0
  19. package/lib/constants/LOG_ROUTE_PATH.d.ts +6 -0
  20. package/lib/constants/LOG_ROUTE_PATH.js +13 -0
  21. package/lib/constants/LOG_ROUTE_PATH.js.map +1 -0
  22. package/lib/constants/MINUTE_IN_MS.d.ts +6 -0
  23. package/lib/constants/MINUTE_IN_MS.js +9 -0
  24. package/lib/constants/MINUTE_IN_MS.js.map +1 -0
  25. package/lib/constants/ROUTE_PATH_PREFIX.d.ts +6 -0
  26. package/lib/constants/ROUTE_PATH_PREFIX.js +9 -0
  27. package/lib/constants/ROUTE_PATH_PREFIX.js.map +1 -0
  28. package/lib/constants/SELECT_ADMIN_CHECK_ROUTE.d.ts +6 -0
  29. package/lib/constants/SELECT_ADMIN_CHECK_ROUTE.js +9 -0
  30. package/lib/constants/SELECT_ADMIN_CHECK_ROUTE.js.map +1 -0
  31. package/lib/errors/ErrorWithCode.d.ts +9 -0
  32. package/lib/errors/ErrorWithCode.js +33 -0
  33. package/lib/errors/ErrorWithCode.js.map +1 -0
  34. package/lib/helpers/abbreviate.d.ts +10 -0
  35. package/lib/helpers/abbreviate.js +24 -0
  36. package/lib/helpers/abbreviate.js.map +1 -0
  37. package/lib/helpers/abbreviate.test.d.ts +5 -0
  38. package/lib/helpers/abbreviate.test.js +28 -0
  39. package/lib/helpers/abbreviate.test.js.map +1 -0
  40. package/lib/helpers/asyncArrayFunctions/everyAsync.d.ts +13 -0
  41. package/lib/helpers/asyncArrayFunctions/everyAsync.js +81 -0
  42. package/lib/helpers/asyncArrayFunctions/everyAsync.js.map +1 -0
  43. package/lib/helpers/asyncArrayFunctions/everyAsync.test.d.ts +1 -0
  44. package/lib/helpers/asyncArrayFunctions/everyAsync.test.js +219 -0
  45. package/lib/helpers/asyncArrayFunctions/everyAsync.test.js.map +1 -0
  46. package/lib/helpers/asyncArrayFunctions/filterAsync.d.ts +13 -0
  47. package/lib/helpers/asyncArrayFunctions/filterAsync.js +81 -0
  48. package/lib/helpers/asyncArrayFunctions/filterAsync.js.map +1 -0
  49. package/lib/helpers/asyncArrayFunctions/filterAsync.test.d.ts +1 -0
  50. package/lib/helpers/asyncArrayFunctions/filterAsync.test.js +244 -0
  51. package/lib/helpers/asyncArrayFunctions/filterAsync.test.js.map +1 -0
  52. package/lib/helpers/asyncArrayFunctions/forEachAsync.d.ts +10 -0
  53. package/lib/helpers/asyncArrayFunctions/forEachAsync.js +72 -0
  54. package/lib/helpers/asyncArrayFunctions/forEachAsync.js.map +1 -0
  55. package/lib/helpers/asyncArrayFunctions/forEachAsync.test.d.ts +1 -0
  56. package/lib/helpers/asyncArrayFunctions/forEachAsync.test.js +223 -0
  57. package/lib/helpers/asyncArrayFunctions/forEachAsync.test.js.map +1 -0
  58. package/lib/helpers/asyncArrayFunctions/mapAsync.d.ts +11 -0
  59. package/lib/helpers/asyncArrayFunctions/mapAsync.js +77 -0
  60. package/lib/helpers/asyncArrayFunctions/mapAsync.js.map +1 -0
  61. package/lib/helpers/asyncArrayFunctions/mapAsync.test.d.ts +1 -0
  62. package/lib/helpers/asyncArrayFunctions/mapAsync.test.js +219 -0
  63. package/lib/helpers/asyncArrayFunctions/mapAsync.test.js.map +1 -0
  64. package/lib/helpers/asyncArrayFunctions/someAsync.d.ts +13 -0
  65. package/lib/helpers/asyncArrayFunctions/someAsync.js +80 -0
  66. package/lib/helpers/asyncArrayFunctions/someAsync.js.map +1 -0
  67. package/lib/helpers/asyncArrayFunctions/someAsync.test.d.ts +1 -0
  68. package/lib/helpers/asyncArrayFunctions/someAsync.test.js +227 -0
  69. package/lib/helpers/asyncArrayFunctions/someAsync.test.js.map +1 -0
  70. package/lib/helpers/avg.d.ts +8 -0
  71. package/lib/helpers/avg.js +24 -0
  72. package/lib/helpers/avg.js.map +1 -0
  73. package/lib/helpers/avg.test.d.ts +5 -0
  74. package/lib/helpers/avg.test.js +25 -0
  75. package/lib/helpers/avg.test.js.map +1 -0
  76. package/lib/helpers/capitalize.d.ts +7 -0
  77. package/lib/helpers/capitalize.js +20 -0
  78. package/lib/helpers/capitalize.js.map +1 -0
  79. package/lib/helpers/ceilToNumDecimals.d.ts +9 -0
  80. package/lib/helpers/ceilToNumDecimals.js +15 -0
  81. package/lib/helpers/ceilToNumDecimals.js.map +1 -0
  82. package/lib/helpers/ceilToNumDecimals.test.d.ts +5 -0
  83. package/lib/helpers/ceilToNumDecimals.test.js +38 -0
  84. package/lib/helpers/ceilToNumDecimals.test.js.map +1 -0
  85. package/lib/helpers/cloneDeep.d.ts +8 -0
  86. package/lib/helpers/cloneDeep.js +15 -0
  87. package/lib/helpers/cloneDeep.js.map +1 -0
  88. package/lib/helpers/compareArraysByProp.d.ts +13 -0
  89. package/lib/helpers/compareArraysByProp.js +62 -0
  90. package/lib/helpers/compareArraysByProp.js.map +1 -0
  91. package/lib/helpers/compareArraysByProp.test.d.ts +5 -0
  92. package/lib/helpers/compareArraysByProp.test.js +140 -0
  93. package/lib/helpers/compareArraysByProp.test.js.map +1 -0
  94. package/lib/helpers/extractProp.d.ts +12 -0
  95. package/lib/helpers/extractProp.js +19 -0
  96. package/lib/helpers/extractProp.js.map +1 -0
  97. package/lib/helpers/extractProp.test.d.ts +5 -0
  98. package/lib/helpers/extractProp.test.js +36 -0
  99. package/lib/helpers/extractProp.test.js.map +1 -0
  100. package/lib/helpers/floorToNumDecimals.d.ts +9 -0
  101. package/lib/helpers/floorToNumDecimals.js +15 -0
  102. package/lib/helpers/floorToNumDecimals.js.map +1 -0
  103. package/lib/helpers/floorToNumDecimals.test.d.ts +5 -0
  104. package/lib/helpers/floorToNumDecimals.test.js +38 -0
  105. package/lib/helpers/floorToNumDecimals.test.js.map +1 -0
  106. package/lib/helpers/forceNumIntoBounds.d.ts +10 -0
  107. package/lib/helpers/forceNumIntoBounds.js +15 -0
  108. package/lib/helpers/forceNumIntoBounds.js.map +1 -0
  109. package/lib/helpers/forceNumIntoBounds.test.d.ts +5 -0
  110. package/lib/helpers/forceNumIntoBounds.test.js +34 -0
  111. package/lib/helpers/forceNumIntoBounds.test.js.map +1 -0
  112. package/lib/helpers/genCSV.d.ts +18 -0
  113. package/lib/helpers/genCSV.js +69 -0
  114. package/lib/helpers/genCSV.js.map +1 -0
  115. package/lib/helpers/genCSV.test.d.ts +5 -0
  116. package/lib/helpers/genCSV.test.js +75 -0
  117. package/lib/helpers/genCSV.test.js.map +1 -0
  118. package/lib/helpers/genCommaList.d.ts +12 -0
  119. package/lib/helpers/genCommaList.js +20 -0
  120. package/lib/helpers/genCommaList.js.map +1 -0
  121. package/lib/helpers/genCommaList.test.d.ts +1 -0
  122. package/lib/helpers/genCommaList.test.js +94 -0
  123. package/lib/helpers/genCommaList.test.js.map +1 -0
  124. package/lib/helpers/getHumanReadableDate.d.ts +8 -0
  125. package/lib/helpers/getHumanReadableDate.js +32 -0
  126. package/lib/helpers/getHumanReadableDate.js.map +1 -0
  127. package/lib/helpers/getHumanReadableDate.test.d.ts +5 -0
  128. package/lib/helpers/getHumanReadableDate.test.js +31 -0
  129. package/lib/helpers/getHumanReadableDate.test.js.map +1 -0
  130. package/lib/helpers/getLocalTimeInfo.d.ts +19 -0
  131. package/lib/helpers/getLocalTimeInfo.js +51 -0
  132. package/lib/helpers/getLocalTimeInfo.js.map +1 -0
  133. package/lib/helpers/getLocalTimeInfo.test.d.ts +6 -0
  134. package/lib/helpers/getLocalTimeInfo.test.js +50 -0
  135. package/lib/helpers/getLocalTimeInfo.test.js.map +1 -0
  136. package/lib/helpers/getMonthName.d.ts +14 -0
  137. package/lib/helpers/getMonthName.js +31 -0
  138. package/lib/helpers/getMonthName.js.map +1 -0
  139. package/lib/helpers/getMonthName.test.d.ts +5 -0
  140. package/lib/helpers/getMonthName.test.js +70 -0
  141. package/lib/helpers/getMonthName.test.js.map +1 -0
  142. package/lib/helpers/getOrdinal.d.ts +8 -0
  143. package/lib/helpers/getOrdinal.js +16 -0
  144. package/lib/helpers/getOrdinal.js.map +1 -0
  145. package/lib/helpers/getOrdinal.test.d.ts +5 -0
  146. package/lib/helpers/getOrdinal.test.js +74 -0
  147. package/lib/helpers/getOrdinal.test.js.map +1 -0
  148. package/lib/helpers/getPartOfDay.d.ts +7 -0
  149. package/lib/helpers/getPartOfDay.js +24 -0
  150. package/lib/helpers/getPartOfDay.js.map +1 -0
  151. package/lib/helpers/getPartOfDay.test.d.ts +5 -0
  152. package/lib/helpers/getPartOfDay.test.js +49 -0
  153. package/lib/helpers/getPartOfDay.test.js.map +1 -0
  154. package/lib/helpers/getTimeInfoInET.d.ts +21 -0
  155. package/lib/helpers/getTimeInfoInET.js +67 -0
  156. package/lib/helpers/getTimeInfoInET.js.map +1 -0
  157. package/lib/helpers/getTimeInfoInET.test.d.ts +5 -0
  158. package/lib/helpers/getTimeInfoInET.test.js +74 -0
  159. package/lib/helpers/getTimeInfoInET.test.js.map +1 -0
  160. package/lib/helpers/getTimestampFromTimeInfoInET.d.ts +20 -0
  161. package/lib/helpers/getTimestampFromTimeInfoInET.js +136 -0
  162. package/lib/helpers/getTimestampFromTimeInfoInET.js.map +1 -0
  163. package/lib/helpers/getWordCount.d.ts +10 -0
  164. package/lib/helpers/getWordCount.js +24 -0
  165. package/lib/helpers/getWordCount.js.map +1 -0
  166. package/lib/helpers/idify.d.ts +9 -0
  167. package/lib/helpers/idify.js +24 -0
  168. package/lib/helpers/idify.js.map +1 -0
  169. package/lib/helpers/onlyKeepLetters.d.ts +8 -0
  170. package/lib/helpers/onlyKeepLetters.js +13 -0
  171. package/lib/helpers/onlyKeepLetters.js.map +1 -0
  172. package/lib/helpers/padDecimalZeros.d.ts +10 -0
  173. package/lib/helpers/padDecimalZeros.js +30 -0
  174. package/lib/helpers/padDecimalZeros.js.map +1 -0
  175. package/lib/helpers/padZerosLeft.d.ts +9 -0
  176. package/lib/helpers/padZerosLeft.js +21 -0
  177. package/lib/helpers/padZerosLeft.js.map +1 -0
  178. package/lib/helpers/parallelLimit.d.ts +12 -0
  179. package/lib/helpers/parallelLimit.js +104 -0
  180. package/lib/helpers/parallelLimit.js.map +1 -0
  181. package/lib/helpers/prefixWithAOrAn.d.ts +10 -0
  182. package/lib/helpers/prefixWithAOrAn.js +28 -0
  183. package/lib/helpers/prefixWithAOrAn.js.map +1 -0
  184. package/lib/helpers/roundToNumDecimals.d.ts +9 -0
  185. package/lib/helpers/roundToNumDecimals.js +15 -0
  186. package/lib/helpers/roundToNumDecimals.js.map +1 -0
  187. package/lib/helpers/shuffleArray.d.ts +8 -0
  188. package/lib/helpers/shuffleArray.js +29 -0
  189. package/lib/helpers/shuffleArray.js.map +1 -0
  190. package/lib/helpers/startMinWait.d.ts +9 -0
  191. package/lib/helpers/startMinWait.js +79 -0
  192. package/lib/helpers/startMinWait.js.map +1 -0
  193. package/lib/helpers/stringsToHumanReadableList.d.ts +10 -0
  194. package/lib/helpers/stringsToHumanReadableList.js +37 -0
  195. package/lib/helpers/stringsToHumanReadableList.js.map +1 -0
  196. package/lib/helpers/sum.d.ts +8 -0
  197. package/lib/helpers/sum.js +15 -0
  198. package/lib/helpers/sum.js.map +1 -0
  199. package/lib/helpers/validators/ChicagoTitleCase.d.ts +9 -0
  200. package/lib/helpers/validators/ChicagoTitleCase.js +31 -0
  201. package/lib/helpers/validators/ChicagoTitleCase.js.map +1 -0
  202. package/lib/helpers/validators/ChicagoTitleCase.test.d.ts +0 -0
  203. package/lib/helpers/validators/ChicagoTitleCase.test.js +79 -0
  204. package/lib/helpers/validators/ChicagoTitleCase.test.js.map +1 -0
  205. package/lib/helpers/validators/findURL.d.ts +0 -0
  206. package/lib/helpers/validators/findURL.js +39 -0
  207. package/lib/helpers/validators/findURL.js.map +1 -0
  208. package/lib/helpers/validators/findURL.test.d.ts +0 -0
  209. package/lib/helpers/validators/findURL.test.js +77 -0
  210. package/lib/helpers/validators/findURL.test.js.map +1 -0
  211. package/lib/helpers/validators/shared/constants/ERROR_MESSAGES.d.ts +10 -0
  212. package/lib/helpers/validators/shared/constants/ERROR_MESSAGES.js +21 -0
  213. package/lib/helpers/validators/shared/constants/ERROR_MESSAGES.js.map +1 -0
  214. package/lib/helpers/validators/shared/helpers/validateRegex.d.ts +19 -0
  215. package/lib/helpers/validators/shared/helpers/validateRegex.js +34 -0
  216. package/lib/helpers/validators/shared/helpers/validateRegex.js.map +1 -0
  217. package/lib/helpers/validators/shared/types/ValidationResult.d.ts +12 -0
  218. package/lib/helpers/validators/shared/types/ValidationResult.js +3 -0
  219. package/lib/helpers/validators/shared/types/ValidationResult.js.map +1 -0
  220. package/lib/helpers/validators/validURL.d.ts +8 -0
  221. package/lib/helpers/validators/validURL.js +20 -0
  222. package/lib/helpers/validators/validURL.js.map +1 -0
  223. package/lib/helpers/validators/validURL.test.d.ts +0 -0
  224. package/lib/helpers/validators/validURL.test.js +83 -0
  225. package/lib/helpers/validators/validURL.test.js.map +1 -0
  226. package/lib/helpers/validators/validateEmail.d.ts +11 -0
  227. package/lib/helpers/validators/validateEmail.js +39 -0
  228. package/lib/helpers/validators/validateEmail.js.map +1 -0
  229. package/lib/helpers/validators/validateEmail.test.d.ts +1 -0
  230. package/lib/helpers/validators/validateEmail.test.js +140 -0
  231. package/lib/helpers/validators/validateEmail.test.js.map +1 -0
  232. package/lib/helpers/validators/validatePhoneNumber.d.ts +11 -0
  233. package/lib/helpers/validators/validatePhoneNumber.js +40 -0
  234. package/lib/helpers/validators/validatePhoneNumber.js.map +1 -0
  235. package/lib/helpers/validators/validatePhoneNumber.test.d.ts +1 -0
  236. package/lib/helpers/validators/validatePhoneNumber.test.js +123 -0
  237. package/lib/helpers/validators/validatePhoneNumber.test.js.map +1 -0
  238. package/lib/helpers/validators/validateString.d.ts +22 -0
  239. package/lib/helpers/validators/validateString.js +124 -0
  240. package/lib/helpers/validators/validateString.js.map +1 -0
  241. package/lib/helpers/validators/validateString.test.d.ts +1 -0
  242. package/lib/helpers/validators/validateString.test.js +163 -0
  243. package/lib/helpers/validators/validateString.test.js.map +1 -0
  244. package/lib/helpers/waitMs.d.ts +7 -0
  245. package/lib/helpers/waitMs.js +68 -0
  246. package/lib/helpers/waitMs.js.map +1 -0
  247. package/lib/index.d.ts +63 -0
  248. package/lib/index.js +124 -0
  249. package/lib/index.js.map +1 -0
  250. package/lib/types/CommonKitErrorCode.d.ts +10 -0
  251. package/lib/types/CommonKitErrorCode.js +15 -0
  252. package/lib/types/CommonKitErrorCode.js.map +1 -0
  253. package/lib/types/DayOfWeek.d.ts +14 -0
  254. package/lib/types/DayOfWeek.js +18 -0
  255. package/lib/types/DayOfWeek.js.map +1 -0
  256. package/lib/types/Log/LogMainInfo.d.ts +39 -0
  257. package/lib/types/Log/LogMainInfo.js +3 -0
  258. package/lib/types/Log/LogMainInfo.js.map +1 -0
  259. package/lib/types/Log/LogSourceSpecificInfo.d.ts +13 -0
  260. package/lib/types/Log/LogSourceSpecificInfo.js +3 -0
  261. package/lib/types/Log/LogSourceSpecificInfo.js.map +1 -0
  262. package/lib/types/Log/LogTypeSpecificInfo.d.ts +17 -0
  263. package/lib/types/Log/LogTypeSpecificInfo.js +3 -0
  264. package/lib/types/Log/LogTypeSpecificInfo.js.map +1 -0
  265. package/lib/types/Log/index.d.ts +10 -0
  266. package/lib/types/Log/index.js +3 -0
  267. package/lib/types/Log/index.js.map +1 -0
  268. package/lib/types/LogAction.d.ts +29 -0
  269. package/lib/types/LogAction.js +55 -0
  270. package/lib/types/LogAction.js.map +1 -0
  271. package/lib/types/LogBuiltInMetadata.d.ts +16 -0
  272. package/lib/types/LogBuiltInMetadata.js +21 -0
  273. package/lib/types/LogBuiltInMetadata.js.map +1 -0
  274. package/lib/types/LogFunction.d.ts +24 -0
  275. package/lib/types/LogFunction.js +3 -0
  276. package/lib/types/LogFunction.js.map +1 -0
  277. package/lib/types/LogLevel.d.ts +10 -0
  278. package/lib/types/LogLevel.js +14 -0
  279. package/lib/types/LogLevel.js.map +1 -0
  280. package/lib/types/LogMetadataContextMap.d.ts +11 -0
  281. package/lib/types/LogMetadataContextMap.js +3 -0
  282. package/lib/types/LogMetadataContextMap.js.map +1 -0
  283. package/lib/types/LogMetadataTagMap.d.ts +8 -0
  284. package/lib/types/LogMetadataTagMap.js +3 -0
  285. package/lib/types/LogMetadataTagMap.js.map +1 -0
  286. package/lib/types/LogMetadataTargetMap.d.ts +8 -0
  287. package/lib/types/LogMetadataTargetMap.js +3 -0
  288. package/lib/types/LogMetadataTargetMap.js.map +1 -0
  289. package/lib/types/LogMetadataType.d.ts +13 -0
  290. package/lib/types/LogMetadataType.js +3 -0
  291. package/lib/types/LogMetadataType.js.map +1 -0
  292. package/lib/types/LogSource.d.ts +9 -0
  293. package/lib/types/LogSource.js +15 -0
  294. package/lib/types/LogSource.js.map +1 -0
  295. package/lib/types/LogType.d.ts +9 -0
  296. package/lib/types/LogType.js +15 -0
  297. package/lib/types/LogType.js.map +1 -0
  298. package/lib/types/ParamType.d.ts +17 -0
  299. package/lib/types/ParamType.js +21 -0
  300. package/lib/types/ParamType.js.map +1 -0
  301. package/package.json +47 -0
  302. package/src/constants/DAY_IN_MS.ts +7 -0
  303. package/src/constants/HOUR_IN_MS.ts +7 -0
  304. package/src/constants/LOG_REVIEW_GET_LOGS_ROUTE.ts +9 -0
  305. package/src/constants/LOG_REVIEW_ROUTE_PATH_PREFIX.ts +9 -0
  306. package/src/constants/LOG_REVIEW_STATUS_ROUTE.ts +10 -0
  307. package/src/constants/LOG_ROUTE_PATH.ts +9 -0
  308. package/src/constants/MINUTE_IN_MS.ts +7 -0
  309. package/src/constants/ROUTE_PATH_PREFIX.ts +7 -0
  310. package/src/constants/SELECT_ADMIN_CHECK_ROUTE.ts +7 -0
  311. package/src/errors/ErrorWithCode.ts +15 -0
  312. package/src/helpers/abbreviate.test.ts +26 -0
  313. package/src/helpers/abbreviate.ts +25 -0
  314. package/src/helpers/asyncArrayFunctions/everyAsync.test.ts +114 -0
  315. package/src/helpers/asyncArrayFunctions/everyAsync.ts +51 -0
  316. package/src/helpers/asyncArrayFunctions/filterAsync.test.ts +126 -0
  317. package/src/helpers/asyncArrayFunctions/filterAsync.ts +50 -0
  318. package/src/helpers/asyncArrayFunctions/forEachAsync.test.ts +136 -0
  319. package/src/helpers/asyncArrayFunctions/forEachAsync.ts +40 -0
  320. package/src/helpers/asyncArrayFunctions/mapAsync.test.ts +125 -0
  321. package/src/helpers/asyncArrayFunctions/mapAsync.ts +46 -0
  322. package/src/helpers/asyncArrayFunctions/someAsync.test.ts +92 -0
  323. package/src/helpers/asyncArrayFunctions/someAsync.ts +49 -0
  324. package/src/helpers/avg.test.ts +24 -0
  325. package/src/helpers/avg.ts +22 -0
  326. package/src/helpers/capitalize.ts +20 -0
  327. package/src/helpers/ceilToNumDecimals.test.ts +39 -0
  328. package/src/helpers/ceilToNumDecimals.ts +13 -0
  329. package/src/helpers/cloneDeep.ts +11 -0
  330. package/src/helpers/compareArraysByProp.test.ts +147 -0
  331. package/src/helpers/compareArraysByProp.ts +56 -0
  332. package/src/helpers/extractProp.test.ts +34 -0
  333. package/src/helpers/extractProp.ts +17 -0
  334. package/src/helpers/floorToNumDecimals.test.ts +39 -0
  335. package/src/helpers/floorToNumDecimals.ts +13 -0
  336. package/src/helpers/forceNumIntoBounds.test.ts +34 -0
  337. package/src/helpers/forceNumIntoBounds.ts +19 -0
  338. package/src/helpers/genCSV.test.ts +77 -0
  339. package/src/helpers/genCSV.ts +87 -0
  340. package/src/helpers/genCommaList.test.ts +57 -0
  341. package/src/helpers/genCommaList.ts +21 -0
  342. package/src/helpers/getHumanReadableDate.test.ts +29 -0
  343. package/src/helpers/getHumanReadableDate.ts +36 -0
  344. package/src/helpers/getLocalTimeInfo.test.ts +48 -0
  345. package/src/helpers/getLocalTimeInfo.ts +58 -0
  346. package/src/helpers/getMonthName.test.ts +79 -0
  347. package/src/helpers/getMonthName.ts +29 -0
  348. package/src/helpers/getOrdinal.test.ts +84 -0
  349. package/src/helpers/getOrdinal.ts +14 -0
  350. package/src/helpers/getPartOfDay.test.ts +56 -0
  351. package/src/helpers/getPartOfDay.ts +20 -0
  352. package/src/helpers/getTimeInfoInET.test.ts +72 -0
  353. package/src/helpers/getTimeInfoInET.ts +79 -0
  354. package/src/helpers/getTimestampFromTimeInfoInET.ts +179 -0
  355. package/src/helpers/getWordCount.ts +26 -0
  356. package/src/helpers/idify.ts +24 -0
  357. package/src/helpers/onlyKeepLetters.ts +11 -0
  358. package/src/helpers/padDecimalZeros.ts +32 -0
  359. package/src/helpers/padZerosLeft.ts +21 -0
  360. package/src/helpers/parallelLimit.ts +63 -0
  361. package/src/helpers/prefixWithAOrAn.ts +29 -0
  362. package/src/helpers/roundToNumDecimals.ts +13 -0
  363. package/src/helpers/shuffleArray.ts +19 -0
  364. package/src/helpers/startMinWait.ts +33 -0
  365. package/src/helpers/stringsToHumanReadableList.ts +39 -0
  366. package/src/helpers/sum.ts +16 -0
  367. package/src/helpers/validators/ChicagoTitleCase.test.ts +85 -0
  368. package/src/helpers/validators/ChicagoTitleCase.ts +32 -0
  369. package/src/helpers/validators/findURL.test.ts +83 -0
  370. package/src/helpers/validators/findURL.ts +43 -0
  371. package/src/helpers/validators/shared/constants/ERROR_MESSAGES.ts +18 -0
  372. package/src/helpers/validators/shared/helpers/validateRegex.ts +47 -0
  373. package/src/helpers/validators/shared/types/ValidationResult.ts +20 -0
  374. package/src/helpers/validators/validURL.test.ts +90 -0
  375. package/src/helpers/validators/validURL.ts +18 -0
  376. package/src/helpers/validators/validateEmail.test.ts +110 -0
  377. package/src/helpers/validators/validateEmail.ts +47 -0
  378. package/src/helpers/validators/validatePhoneNumber.test.ts +94 -0
  379. package/src/helpers/validators/validatePhoneNumber.ts +49 -0
  380. package/src/helpers/validators/validateString.test.ts +173 -0
  381. package/src/helpers/validators/validateString.ts +171 -0
  382. package/src/helpers/waitMs.ts +12 -0
  383. package/src/index.ts +139 -0
  384. package/src/types/CommonKitErrorCode.ts +13 -0
  385. package/src/types/DayOfWeek.ts +15 -0
  386. package/src/types/Log/LogMainInfo.ts +69 -0
  387. package/src/types/Log/LogSourceSpecificInfo.ts +25 -0
  388. package/src/types/Log/LogTypeSpecificInfo.ts +33 -0
  389. package/src/types/Log/index.ts +17 -0
  390. package/src/types/LogAction.ts +52 -0
  391. package/src/types/LogBuiltInMetadata.ts +19 -0
  392. package/src/types/LogFunction.ts +46 -0
  393. package/src/types/LogLevel.ts +11 -0
  394. package/src/types/LogMetadataContextMap.ts +15 -0
  395. package/src/types/LogMetadataTagMap.ts +9 -0
  396. package/src/types/LogMetadataTargetMap.ts +9 -0
  397. package/src/types/LogMetadataType.ts +16 -0
  398. package/src/types/LogSource.ts +12 -0
  399. package/src/types/LogType.ts +12 -0
  400. package/src/types/ParamType.ts +18 -0
  401. package/tsconfig.json +19 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Test file for the compareArraysByProp helper
3
+ * @author Gabe Abrams
4
+ */
5
+ export {};
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ /**
3
+ * Test file for the compareArraysByProp helper
4
+ * @author Gabe Abrams
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ // Import main helper
11
+ var compareArraysByProp_1 = __importDefault(require("./compareArraysByProp"));
12
+ describe('compareArraysByProp', function () {
13
+ it('should return true for two empty arrays', function () {
14
+ var result = (0, compareArraysByProp_1.default)([], [], 'id');
15
+ expect(result).toEqual(true);
16
+ });
17
+ it('should return true for two arrays with the same objects in the same order', function () {
18
+ var a = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }];
19
+ var b = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }];
20
+ var result = (0, compareArraysByProp_1.default)(a, b, 'id');
21
+ expect(result).toEqual(true);
22
+ });
23
+ it('should return true for two arrays with the same objects in a different order', function () {
24
+ var a = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }];
25
+ var b = [{ id: 3, name: 'Charlie' }, { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }];
26
+ var result = (0, compareArraysByProp_1.default)(a, b, 'id');
27
+ expect(result).toEqual(true);
28
+ });
29
+ it('should return false for two arrays with different objects', function () {
30
+ var a = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }];
31
+ var b = [{ id: 4, name: 'Dave' }, { id: 5, name: 'Eve' }, { id: 6, name: 'Frank' }];
32
+ var result = (0, compareArraysByProp_1.default)(a, b, 'id');
33
+ expect(result).toEqual(false);
34
+ });
35
+ it('should return false for two arrays with different objects and some shared objects', function () {
36
+ var a = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }];
37
+ var b = [{ id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }, { id: 4, name: 'Dave' }];
38
+ var result = (0, compareArraysByProp_1.default)(a, b, 'id');
39
+ expect(result).toEqual(false);
40
+ });
41
+ it('should return true for two arrays with the same objects with multiple properties', function () {
42
+ var a = [
43
+ { id: 1, name: 'Alice', age: 25 },
44
+ { id: 2, name: 'Bob', age: 30 },
45
+ { id: 3, name: 'Charlie', age: 35 },
46
+ ];
47
+ var b = [
48
+ { id: 1, name: 'Alice', age: 25 },
49
+ { id: 2, name: 'Bob', age: 30 },
50
+ { id: 3, name: 'Charlie', age: 35 },
51
+ ];
52
+ var result = (0, compareArraysByProp_1.default)(a, b, 'id');
53
+ expect(result).toEqual(true);
54
+ });
55
+ it('should return true for two arrays with the same objects with multiple properties in a different order', function () {
56
+ var a = [
57
+ { id: 1, name: 'Alice', age: 25 },
58
+ { id: 2, name: 'Bob', age: 30 },
59
+ { id: 3, name: 'Charlie', age: 35 },
60
+ ];
61
+ var b = [
62
+ { id: 3, name: 'Charlie', age: 35 },
63
+ { id: 1, name: 'Alice', age: 25 },
64
+ { id: 2, name: 'Bob', age: 30 },
65
+ ];
66
+ var result = (0, compareArraysByProp_1.default)(a, b, 'id');
67
+ expect(result).toEqual(true);
68
+ });
69
+ it('should return false for two arrays with different objects with multiple properties', function () {
70
+ var a = [
71
+ { id: 1, name: 'Alice', age: 25 },
72
+ { id: 2, name: 'Bob', age: 30 },
73
+ { id: 3, name: 'Charlie', age: 35 },
74
+ ];
75
+ var b = [
76
+ { id: 4, name: 'Dave', age: 40 },
77
+ { id: 5, name: 'Eve', age: 45 },
78
+ { id: 6, name: 'Frank', age: 50 },
79
+ ];
80
+ var result = (0, compareArraysByProp_1.default)(a, b, 'id');
81
+ expect(result).toEqual(false);
82
+ });
83
+ it('should return false for two arrays with different objects with multiple properties and some shared objects', function () {
84
+ var a = [
85
+ { id: 1, name: 'Alice', age: 25 },
86
+ { id: 2, name: 'Bob', age: 30 },
87
+ { id: 3, name: 'Charlie', age: 35 },
88
+ ];
89
+ var b = [
90
+ { id: 2, name: 'Bob', age: 30 },
91
+ { id: 3, name: 'Charlie', age: 35 },
92
+ { id: 4, name: 'Dave', age: 40 },
93
+ ];
94
+ var result = (0, compareArraysByProp_1.default)(a, b, 'id');
95
+ expect(result).toEqual(false);
96
+ });
97
+ it('should return true for two arrays with the same objects with multiple properties and multiple props', function () {
98
+ var a = [
99
+ { id: 1, name: 'Alice', age: 25 },
100
+ { id: 2, name: 'Bob', age: 30 },
101
+ { id: 3, name: 'Charlie', age: 35 },
102
+ ];
103
+ var b = [
104
+ { id: 1, name: 'Alice', age: 25 },
105
+ { id: 2, name: 'Bob', age: 30 },
106
+ { id: 3, name: 'Charlie', age: 35 },
107
+ ];
108
+ var result = (0, compareArraysByProp_1.default)(a, b, ['id', 'name']);
109
+ expect(result).toEqual(true);
110
+ });
111
+ it('should return true for two arrays with the same objects with multiple properties and multiple props in a different order', function () {
112
+ var a = [
113
+ { id: 1, name: 'Alice', age: 25 },
114
+ { id: 2, name: 'Bob', age: 30 },
115
+ { id: 3, name: 'Charlie', age: 35 },
116
+ ];
117
+ var b = [
118
+ { id: 3, name: 'Charlie', age: 35 },
119
+ { id: 1, name: 'Alice', age: 25 },
120
+ { id: 2, name: 'Bob', age: 30 },
121
+ ];
122
+ var result = (0, compareArraysByProp_1.default)(a, b, ['id', 'name']);
123
+ expect(result).toEqual(true);
124
+ });
125
+ it('should return false for two arrays with different objects with multiple properties and multiple props', function () {
126
+ var a = [
127
+ { id: 1, name: 'Alice', age: 25 },
128
+ { id: 2, name: 'Bob', age: 30 },
129
+ { id: 3, name: 'Charlie', age: 35 },
130
+ ];
131
+ var b = [
132
+ { id: 1, name: 'Bob', age: 40 },
133
+ { id: 2, name: 'Alice', age: 45 },
134
+ { id: 3, name: 'Charlie', age: 50 },
135
+ ];
136
+ var result = (0, compareArraysByProp_1.default)(a, b, ['id', 'name']);
137
+ expect(result).toEqual(false);
138
+ });
139
+ });
140
+ //# sourceMappingURL=compareArraysByProp.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compareArraysByProp.test.js","sourceRoot":"","sources":["../../src/helpers/compareArraysByProp.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * For every element in an array, extract the value of a prop
3
+ * (e.g. for all user objects, extract their ages and put that into a new
4
+ * ages array)
5
+ * @author Gabe Abrams
6
+ * @param arr the array of objects to operate on
7
+ * @param prop the property to extract from each object
8
+ * @returns new array containing the corresponding values, in order, of each
9
+ * object in the original array
10
+ */
11
+ declare const extractProp: (arr: any[], prop: string) => any[];
12
+ export default extractProp;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * For every element in an array, extract the value of a prop
5
+ * (e.g. for all user objects, extract their ages and put that into a new
6
+ * ages array)
7
+ * @author Gabe Abrams
8
+ * @param arr the array of objects to operate on
9
+ * @param prop the property to extract from each object
10
+ * @returns new array containing the corresponding values, in order, of each
11
+ * object in the original array
12
+ */
13
+ var extractProp = function (arr, prop) {
14
+ return arr.map(function (item) {
15
+ return item[prop];
16
+ });
17
+ };
18
+ exports.default = extractProp;
19
+ //# sourceMappingURL=extractProp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractProp.js","sourceRoot":"","sources":["../../src/helpers/extractProp.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;GASG;AACH,IAAM,WAAW,GAAG,UAAC,GAAU,EAAE,IAAY;IAC3C,OAAO,GAAG,CAAC,GAAG,CAAC,UAAC,IAAI;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Test file for the extractProp helper
3
+ * @author Gabe Abrams
4
+ */
5
+ export {};
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Test file for the extractProp helper
4
+ * @author Gabe Abrams
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ // Import main helper
11
+ var extractProp_1 = __importDefault(require("./extractProp"));
12
+ describe('extractProp', function () {
13
+ it('should return an empty array if the input array is empty', function () {
14
+ var result = (0, extractProp_1.default)([], 'age');
15
+ expect(result).toEqual([]);
16
+ });
17
+ it('should extract the correct property from each object in the array', function () {
18
+ var users = [
19
+ { name: 'Alice', age: 25 },
20
+ { name: 'Bob', age: 30 },
21
+ { name: 'Charlie', age: 35 },
22
+ ];
23
+ var result = (0, extractProp_1.default)(users, 'age');
24
+ expect(result).toEqual([25, 30, 35]);
25
+ });
26
+ it('should return undefined for objects that do not have the specified property', function () {
27
+ var users = [
28
+ { name: 'Alice', age: 25 },
29
+ { name: 'Bob' },
30
+ { name: 'Charlie', age: 35 },
31
+ ];
32
+ var result = (0, extractProp_1.default)(users, 'age');
33
+ expect(result).toEqual([25, undefined, 35]);
34
+ });
35
+ });
36
+ //# sourceMappingURL=extractProp.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractProp.test.js","sourceRoot":"","sources":["../../src/helpers/extractProp.test.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH,qBAAqB;AACrB,8DAAwC;AAExC,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,0DAA0D,EAAE;QAC7D,IAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE;QACtE,IAAM,KAAK,GAAG;YACZ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;YAC1B,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;YACxB,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;SAC7B,CAAC;QACF,IAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE;QAChF,IAAM,KAAK,GAAG;YACZ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;YAC1B,EAAE,IAAI,EAAE,KAAK,EAAE;YACf,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;SAC7B,CAAC;QACF,IAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Round a number (floor) to a certain number of decimals
3
+ * @author Gabe Abrams
4
+ * @param num the number to round
5
+ * @param numDecimals the number of decimals to round to
6
+ * @returns rounded number
7
+ */
8
+ declare const floorToNumDecimals: (num: number, numDecimals: number) => number;
9
+ export default floorToNumDecimals;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Round a number (floor) to a certain number of decimals
5
+ * @author Gabe Abrams
6
+ * @param num the number to round
7
+ * @param numDecimals the number of decimals to round to
8
+ * @returns rounded number
9
+ */
10
+ var floorToNumDecimals = function (num, numDecimals) {
11
+ var rounder = Math.pow(10, numDecimals);
12
+ return (Math.floor(num * rounder) / rounder);
13
+ };
14
+ exports.default = floorToNumDecimals;
15
+ //# sourceMappingURL=floorToNumDecimals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floorToNumDecimals.js","sourceRoot":"","sources":["../../src/helpers/floorToNumDecimals.ts"],"names":[],"mappings":";;AAAA;;;;;;GAMG;AACH,IAAM,kBAAkB,GAAG,UAAC,GAAW,EAAE,WAAmB;IAC1D,IAAM,OAAO,GAAG,SAAA,EAAE,EAAI,WAAW,CAAA,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Test file for the floorToNumDecimals helper
3
+ * @author Gabe Abrams
4
+ */
5
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * Test file for the floorToNumDecimals helper
4
+ * @author Gabe Abrams
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ // Import main function
11
+ var floorToNumDecimals_1 = __importDefault(require("./floorToNumDecimals"));
12
+ describe('floorToNumDecimals', function () {
13
+ it('should return 0 for 0 with 0 decimals', function () {
14
+ var result = (0, floorToNumDecimals_1.default)(0, 0);
15
+ expect(result).toEqual(0);
16
+ });
17
+ it('should return 1 for 1 with 0 decimals', function () {
18
+ var result = (0, floorToNumDecimals_1.default)(1, 0);
19
+ expect(result).toEqual(1);
20
+ });
21
+ it('should return 1.23 for 1.234 with 2 decimals', function () {
22
+ var result = (0, floorToNumDecimals_1.default)(1.234, 2);
23
+ expect(result).toEqual(1.23);
24
+ });
25
+ it('should return -1.24 for -1.234 with 2 decimals', function () {
26
+ var result = (0, floorToNumDecimals_1.default)(-1.234, 2);
27
+ expect(result).toEqual(-1.24);
28
+ });
29
+ it('should return 1234 for 1234 with 0 decimals', function () {
30
+ var result = (0, floorToNumDecimals_1.default)(1234, 0);
31
+ expect(result).toEqual(1234);
32
+ });
33
+ it('should return 0.001 for 0.00123 with 3 decimals', function () {
34
+ var result = (0, floorToNumDecimals_1.default)(0.00123, 3);
35
+ expect(result).toEqual(0.001);
36
+ });
37
+ });
38
+ //# sourceMappingURL=floorToNumDecimals.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floorToNumDecimals.test.js","sourceRoot":"","sources":["../../src/helpers/floorToNumDecimals.test.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH,uBAAuB;AACvB,4EAAsD;AAEtD,QAAQ,CAAC,oBAAoB,EAAE;IAC7B,EAAE,CAAC,uCAAuC,EAAE;QAC1C,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE;QAC1C,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE;QACjD,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE;QACnD,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE;QAChD,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE;QACpD,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Force a number to stay within specific bounds
3
+ * @author Gabe Abrams
4
+ * @param num the number to move into the bounds
5
+ * @param min the minimum number in the bound
6
+ * @param max the maximum number in the bound
7
+ * @returns bounded number
8
+ */
9
+ declare const forceNumIntoBounds: (num: number, min: number, max: number) => number;
10
+ export default forceNumIntoBounds;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Force a number to stay within specific bounds
5
+ * @author Gabe Abrams
6
+ * @param num the number to move into the bounds
7
+ * @param min the minimum number in the bound
8
+ * @param max the maximum number in the bound
9
+ * @returns bounded number
10
+ */
11
+ var forceNumIntoBounds = function (num, min, max) {
12
+ return Math.max(min, Math.min(max, num));
13
+ };
14
+ exports.default = forceNumIntoBounds;
15
+ //# sourceMappingURL=forceNumIntoBounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forceNumIntoBounds.js","sourceRoot":"","sources":["../../src/helpers/forceNumIntoBounds.ts"],"names":[],"mappings":";;AAAA;;;;;;;GAOG;AACH,IAAM,kBAAkB,GAAG,UAAC,GAAW,EAAE,GAAW,EAAE,GAAW;IAC/D,OAAO,IAAI,CAAC,GAAG,CACb,GAAG,EACH,IAAI,CAAC,GAAG,CACN,GAAG,EACH,GAAG,CACJ,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Test file for the forceNumIntoBounds helper
3
+ * @author Gabe Abrams
4
+ */
5
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * Test file for the forceNumIntoBounds helper
4
+ * @author Gabe Abrams
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ // Import main helper
11
+ var forceNumIntoBounds_1 = __importDefault(require("./forceNumIntoBounds"));
12
+ describe('forceNumIntoBounds', function () {
13
+ it('should return the number if it is within the bounds', function () {
14
+ var result = (0, forceNumIntoBounds_1.default)(5, 0, 10);
15
+ expect(result).toEqual(5);
16
+ });
17
+ it('should return the minimum bound if the number is less than the minimum', function () {
18
+ var result = (0, forceNumIntoBounds_1.default)(-5, 0, 10);
19
+ expect(result).toEqual(0);
20
+ });
21
+ it('should return the maximum bound if the number is greater than the maximum', function () {
22
+ var result = (0, forceNumIntoBounds_1.default)(15, 0, 10);
23
+ expect(result).toEqual(10);
24
+ });
25
+ it('should return the minimum bound if the number is equal to the minimum', function () {
26
+ var result = (0, forceNumIntoBounds_1.default)(0, 0, 10);
27
+ expect(result).toEqual(0);
28
+ });
29
+ it('should return the maximum bound if the number is equal to the maximum', function () {
30
+ var result = (0, forceNumIntoBounds_1.default)(10, 0, 10);
31
+ expect(result).toEqual(10);
32
+ });
33
+ });
34
+ //# sourceMappingURL=forceNumIntoBounds.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forceNumIntoBounds.test.js","sourceRoot":"","sources":["../../src/helpers/forceNumIntoBounds.test.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH,qBAAqB;AACrB,4EAAsD;AAEtD,QAAQ,CAAC,oBAAoB,EAAE;IAC7B,EAAE,CAAC,qDAAqD,EAAE;QACxD,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE;QAC3E,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE;QAC9E,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE;QAC1E,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE;QAC1E,IAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Generate a CSV file
3
+ * @author Gabe Abrams
4
+ * @param data list of row data in the form of json objects
5
+ * @param columns list of columns to include in the csv where each column is an object with:
6
+ * - title: the column title
7
+ * - param: the key in the data object to use for this column
8
+ * - textIfUndefined: optional text to use if the value is undefined (defaults to empty string)
9
+ * @returns multiline csv string
10
+ */
11
+ declare const genCSV: (data: {
12
+ [k: string]: any;
13
+ }[], columns: {
14
+ title: string;
15
+ param: string;
16
+ textIfUndefined?: string;
17
+ }[]) => string;
18
+ export default genCSV;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Escape a CSV cell if needed
5
+ * @author Gabe Abrams
6
+ * @param text the cell contents
7
+ * @returns escaped cell text
8
+ */
9
+ var escapeCellText = function (text) {
10
+ if (!String(text).includes(',')
11
+ && !String(text).includes('"')) {
12
+ // No need to escape
13
+ return String(text);
14
+ }
15
+ // Perform escape
16
+ return "\"".concat(String(text).replace(/"/g, '""'), "\"");
17
+ };
18
+ /**
19
+ * Generate a CSV file
20
+ * @author Gabe Abrams
21
+ * @param data list of row data in the form of json objects
22
+ * @param columns list of columns to include in the csv where each column is an object with:
23
+ * - title: the column title
24
+ * - param: the key in the data object to use for this column
25
+ * - textIfUndefined: optional text to use if the value is undefined (defaults to empty string)
26
+ * @returns multiline csv string
27
+ */
28
+ var genCSV = function (data, columns) {
29
+ var csv = '';
30
+ // Add header
31
+ csv += (columns
32
+ .map(function (column) {
33
+ return escapeCellText(column.title);
34
+ })
35
+ .join(','));
36
+ // Add each row
37
+ data.forEach(function (datum) {
38
+ csv += '\n';
39
+ csv += (columns
40
+ .map(function (column) {
41
+ var _a;
42
+ var contents;
43
+ var cell = datum[column.param];
44
+ if (typeof cell === 'string'
45
+ || typeof cell === 'number'
46
+ || typeof cell === 'boolean') {
47
+ contents = String(cell);
48
+ }
49
+ else if (cell === null) {
50
+ contents = '';
51
+ }
52
+ else if (typeof cell === 'undefined') {
53
+ contents = ((_a = column.textIfUndefined) !== null && _a !== void 0 ? _a : '');
54
+ }
55
+ else if (typeof cell === 'object') {
56
+ contents = JSON.stringify(cell);
57
+ }
58
+ else {
59
+ contents = '';
60
+ }
61
+ return escapeCellText(contents);
62
+ })
63
+ .join(','));
64
+ });
65
+ // Return
66
+ return csv;
67
+ };
68
+ exports.default = genCSV;
69
+ //# sourceMappingURL=genCSV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genCSV.js","sourceRoot":"","sources":["../../src/helpers/genCSV.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,IAAM,cAAc,GAAG,UAAC,IAAY;IAClC,IACE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;WACxB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC9B,CAAC;QACD,oBAAoB;QACpB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,iBAAiB;IACjB,OAAO,YAAI,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAG,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,IAAM,MAAM,GAAG,UACb,IAEG,EACH,OAIG;IAEH,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,aAAa;IACb,GAAG,IAAI,CACL,OAAO;SACJ,GAAG,CAAC,UAAC,MAAM;QACV,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CACb,CAAC;IAEF,eAAe;IACf,IAAI,CAAC,OAAO,CAAC,UAAC,KAAK;QACjB,GAAG,IAAI,IAAI,CAAC;QACZ,GAAG,IAAI,CACL,OAAO;aACJ,GAAG,CAAC,UAAC,MAAM;;YACV,IAAI,QAAgB,CAAC;YACrB,IAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjC,IACE,OAAO,IAAI,KAAK,QAAQ;mBACrB,OAAO,IAAI,KAAK,QAAQ;mBACxB,OAAO,IAAI,KAAK,SAAS,EAC5B,CAAC;gBACD,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACzB,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;gBACvC,QAAQ,GAAG,CACT,MAAA,MAAM,CAAC,eAAe,mCACnB,EAAE,CACN,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS;IACT,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Test file for the genCSV helper
3
+ * @author Gabe Abrams
4
+ */
5
+ export {};
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * Test file for the genCSV helper
4
+ * @author Gabe Abrams
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ // Import main helper
11
+ var genCSV_1 = __importDefault(require("./genCSV"));
12
+ describe('genCSV', function () {
13
+ it('should return an empty string for empty data', function () {
14
+ var result = (0, genCSV_1.default)([], []);
15
+ expect(result).toEqual('');
16
+ });
17
+ it('should generate a CSV with the correct headers and data', function () {
18
+ var columns = [
19
+ { title: 'Name', param: 'name' },
20
+ { title: 'Age', param: 'age' },
21
+ { title: 'Email', param: 'email' },
22
+ ];
23
+ var data = [
24
+ { name: 'Alice', age: 25, email: 'alice@example.com' },
25
+ { name: 'Bob', age: 30, email: 'bob@example.com' },
26
+ { name: 'Charlie', age: 35, email: 'charlie@example.com' },
27
+ ];
28
+ var expected = 'Name,Age,Email\nAlice,25,alice@example.com\nBob,30,bob@example.com\nCharlie,35,charlie@example.com';
29
+ var result = (0, genCSV_1.default)(data, columns);
30
+ expect(result).toEqual(expected);
31
+ });
32
+ it('should handle undefined and null values correctly', function () {
33
+ var columns = [
34
+ { title: 'Name', param: 'name' },
35
+ { title: 'Age', param: 'age' },
36
+ { title: 'Email', param: 'email' },
37
+ ];
38
+ var data = [
39
+ { name: 'Alice', age: undefined, email: null },
40
+ { name: 'Bob', age: null, email: 'bob@example.com' },
41
+ { name: 'Charlie', age: 35, email: undefined },
42
+ ];
43
+ var expected = 'Name,Age,Email\nAlice,,\nBob,,bob@example.com\nCharlie,35,';
44
+ var result = (0, genCSV_1.default)(data, columns);
45
+ expect(result).toEqual(expected);
46
+ });
47
+ it('should handle objects in cells correctly', function () {
48
+ var columns = [
49
+ { title: 'Name', param: 'name' },
50
+ { title: 'Data', param: 'data' },
51
+ ];
52
+ var data = [
53
+ { name: 'Alice', data: { foo: 'bar' } },
54
+ { name: 'Bob', data: [1, 2, 3] },
55
+ { name: 'Charlie', data: null },
56
+ ];
57
+ var expected = 'Name,Data\nAlice,"{""foo"":""bar""}"\nBob,"[1,2,3]"\nCharlie,';
58
+ var result = (0, genCSV_1.default)(data, columns);
59
+ expect(result).toEqual(expected);
60
+ });
61
+ it('should use textIfUndefined for undefined values', function () {
62
+ var columns = [
63
+ { title: 'Name', param: 'name' },
64
+ { title: 'Age', param: 'age', textIfUndefined: 'N/A' },
65
+ ];
66
+ var data = [
67
+ { name: 'Alice', age: undefined },
68
+ { name: 'Bob', age: 30 },
69
+ ];
70
+ var expected = 'Name,Age\nAlice,N/A\nBob,30';
71
+ var result = (0, genCSV_1.default)(data, columns);
72
+ expect(result).toEqual(expected);
73
+ });
74
+ });
75
+ //# sourceMappingURL=genCSV.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genCSV.test.js","sourceRoot":"","sources":["../../src/helpers/genCSV.test.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH,qBAAqB;AACrB,oDAA8B;AAE9B,QAAQ,CAAC,QAAQ,EAAE;IACjB,EAAE,CAAC,8CAA8C,EAAE;QACjD,IAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE;QAC5D,IAAM,OAAO,GAAG;YACd,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC9B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SACnC,CAAC;QACF,IAAM,IAAI,GAAG;YACX,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACtD,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAClD,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE;SAC3D,CAAC;QACF,IAAM,QAAQ,GAAG,oGAAoG,CAAC;QACtH,IAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE;QACtD,IAAM,OAAO,GAAG;YACd,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC9B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SACnC,CAAC;QACF,IAAM,IAAI,GAEJ;YACJ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9C,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACpD,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;SAC/C,CAAC;QACF,IAAM,QAAQ,GAAG,4DAA4D,CAAC;QAC9E,IAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE;QAC7C,IAAM,OAAO,GAAG;YACd,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACjC,CAAC;QACF,IAAM,IAAI,GAAG;YACX,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YACvC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;YAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;SAChC,CAAC;QACF,IAAM,QAAQ,GAAG,+DAA+D,CAAC;QACjF,IAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE;QACpD,IAAM,OAAO,GAAG;YACd,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;SACvD,CAAC;QACF,IAAM,IAAI,GAAG;YACX,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE;YACjC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;SACzB,CAAC;QACF,IAAM,QAAQ,GAAG,6BAA6B,CAAC;QAC/C,IAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Given an array of strings, create a single comma-separated string that includes
3
+ * 'and' as well as an oxford comma.
4
+ * Ex: ['apples'] => 'apples'
5
+ * Ex: ['apples', 'bananas'] => 'apples and bananas'
6
+ * Ex: ['apples', 'bananas', 'grapes'] => 'apples, bananas, and grapes'
7
+ * @author Austen Money
8
+ * @param list an array of elements to be made into a single comma-separated string.
9
+ * @returns a comma-separated string.
10
+ */
11
+ declare const genCommaList: (list: string[]) => string;
12
+ export default genCommaList;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Given an array of strings, create a single comma-separated string that includes
5
+ * 'and' as well as an oxford comma.
6
+ * Ex: ['apples'] => 'apples'
7
+ * Ex: ['apples', 'bananas'] => 'apples and bananas'
8
+ * Ex: ['apples', 'bananas', 'grapes'] => 'apples, bananas, and grapes'
9
+ * @author Austen Money
10
+ * @param list an array of elements to be made into a single comma-separated string.
11
+ * @returns a comma-separated string.
12
+ */
13
+ var genCommaList = function (list) {
14
+ var length = list.length;
15
+ return (length < 2
16
+ ? list.join('')
17
+ : "".concat(list.slice(0, length - 1).join(', ')).concat(length < 3 ? ' and ' : ', and ').concat(list[length - 1]));
18
+ };
19
+ exports.default = genCommaList;
20
+ //# sourceMappingURL=genCommaList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genCommaList.js","sourceRoot":"","sources":["../../src/helpers/genCommaList.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;GASG;AACH,IAAM,YAAY,GAAG,UAAC,IAAc;IAC1B,IAAA,MAAM,GAAK,IAAI,OAAT,CAAU;IAExB,OAAO,CACL,MAAM,GAAG,CAAC;QACR,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACf,CAAC,CAAC,UAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,SAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE,CACnG,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export {};