standard-log 7.1.0 → 9.0.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 (551) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +57 -133
  3. package/{libm/console/createConsoleLogReporter.d.ts → cjs/console.d.ts} +5 -5
  4. package/cjs/console.d.ts.map +1 -0
  5. package/cjs/console.js +76 -0
  6. package/cjs/console.js.map +1 -0
  7. package/cjs/console.spec.d.ts +2 -0
  8. package/cjs/console.spec.d.ts.map +1 -0
  9. package/cjs/console.spec.js +177 -0
  10. package/cjs/console.spec.js.map +1 -0
  11. package/cjs/errors.d.ts +9 -0
  12. package/cjs/errors.d.ts.map +1 -0
  13. package/cjs/errors.js +43 -0
  14. package/cjs/errors.js.map +1 -0
  15. package/cjs/formatter.d.ts +6 -0
  16. package/cjs/formatter.d.ts.map +1 -0
  17. package/cjs/formatter.js +46 -0
  18. package/cjs/formatter.js.map +1 -0
  19. package/cjs/formatter.spec.d.ts +2 -0
  20. package/cjs/formatter.spec.d.ts.map +1 -0
  21. package/cjs/formatter.spec.js +32 -0
  22. package/cjs/formatter.spec.js.map +1 -0
  23. package/cjs/index.d.ts +8 -0
  24. package/cjs/index.d.ts.map +1 -0
  25. package/cjs/index.js +24 -0
  26. package/cjs/index.js.map +1 -0
  27. package/cjs/logLevels.d.ts +60 -0
  28. package/cjs/logLevels.d.ts.map +1 -0
  29. package/cjs/logLevels.js +87 -0
  30. package/cjs/logLevels.js.map +1 -0
  31. package/cjs/logStore.d.ts +20 -0
  32. package/cjs/logStore.d.ts.map +1 -0
  33. package/cjs/logStore.js +44 -0
  34. package/cjs/logStore.js.map +1 -0
  35. package/cjs/logStore.spec.d.ts +2 -0
  36. package/cjs/logStore.spec.d.ts.map +1 -0
  37. package/cjs/logStore.spec.js +93 -0
  38. package/cjs/logStore.spec.js.map +1 -0
  39. package/cjs/logger.d.ts +6 -0
  40. package/cjs/logger.d.ts.map +1 -0
  41. package/cjs/logger.js +97 -0
  42. package/cjs/logger.js.map +1 -0
  43. package/{lib/memory/MemoryLogReporter.d.ts → cjs/memory.d.ts} +2 -2
  44. package/cjs/memory.d.ts.map +1 -0
  45. package/cjs/memory.js +39 -0
  46. package/cjs/memory.js.map +1 -0
  47. package/cjs/memory.spec.d.ts +2 -0
  48. package/cjs/memory.spec.d.ts.map +1 -0
  49. package/cjs/memory.spec.js +115 -0
  50. package/cjs/memory.spec.js.map +1 -0
  51. package/cjs/package.json +1 -0
  52. package/cjs/platform.browser.d.ts +7 -0
  53. package/cjs/platform.browser.d.ts.map +1 -0
  54. package/cjs/platform.browser.js +11 -0
  55. package/cjs/platform.browser.js.map +1 -0
  56. package/cjs/platform.d.ts +8 -0
  57. package/cjs/platform.d.ts.map +1 -0
  58. package/cjs/platform.js +26 -0
  59. package/cjs/platform.js.map +1 -0
  60. package/cjs/platform.spec.d.ts +2 -0
  61. package/cjs/platform.spec.d.ts.map +1 -0
  62. package/cjs/platform.spec.js +22 -0
  63. package/cjs/platform.spec.js.map +1 -0
  64. package/cjs/standardLog.d.ts +21 -0
  65. package/cjs/standardLog.d.ts.map +1 -0
  66. package/cjs/standardLog.js +59 -0
  67. package/cjs/standardLog.js.map +1 -0
  68. package/cjs/standardLog.spec.d.ts +2 -0
  69. package/cjs/standardLog.spec.d.ts.map +1 -0
  70. package/cjs/standardLog.spec.js +536 -0
  71. package/cjs/standardLog.spec.js.map +1 -0
  72. package/cjs/testUtil.d.ts +10 -0
  73. package/cjs/testUtil.d.ts.map +1 -0
  74. package/cjs/testUtil.js +28 -0
  75. package/cjs/testUtil.js.map +1 -0
  76. package/{lib → cjs}/types.d.ts +33 -24
  77. package/cjs/types.d.ts.map +1 -0
  78. package/{lib/console → cjs}/types.js +0 -0
  79. package/cjs/types.js.map +1 -0
  80. package/cjs/types.spec.d.ts +2 -0
  81. package/cjs/types.spec.d.ts.map +1 -0
  82. package/cjs/types.spec.js +7 -0
  83. package/cjs/types.spec.js.map +1 -0
  84. package/dist/standard-log.es5.js +1971 -0
  85. package/dist/standard-log.es5.js.gz +0 -0
  86. package/dist/standard-log.es5.js.map +1 -0
  87. package/dist/standard-log.es5.js.map.gz +0 -0
  88. package/dist/standard-log.esm.js +1887 -0
  89. package/dist/standard-log.esm.js.gz +0 -0
  90. package/dist/standard-log.esm.js.map +1 -0
  91. package/dist/standard-log.esm.js.map.gz +0 -0
  92. package/{lib/console/createConsoleLogReporter.d.ts → esm/console.d.ts} +5 -5
  93. package/esm/console.d.ts.map +1 -0
  94. package/{libm/console/polyfilledConsole.js → esm/console.js} +36 -4
  95. package/esm/console.js.map +1 -0
  96. package/esm/console.spec.d.ts +2 -0
  97. package/esm/console.spec.d.ts.map +1 -0
  98. package/esm/console.spec.js +151 -0
  99. package/esm/console.spec.js.map +1 -0
  100. package/esm/errors.d.ts +9 -0
  101. package/esm/errors.d.ts.map +1 -0
  102. package/esm/errors.js +18 -0
  103. package/esm/errors.js.map +1 -0
  104. package/esm/formatter.d.ts +6 -0
  105. package/esm/formatter.d.ts.map +1 -0
  106. package/{libm/formatter/createTimestampFormatter.js → esm/formatter.js} +10 -2
  107. package/esm/formatter.js.map +1 -0
  108. package/esm/formatter.spec.d.ts +2 -0
  109. package/esm/formatter.spec.d.ts.map +1 -0
  110. package/esm/formatter.spec.js +30 -0
  111. package/esm/formatter.spec.js.map +1 -0
  112. package/esm/index.d.ts +8 -0
  113. package/esm/index.d.ts.map +1 -0
  114. package/esm/index.js +8 -0
  115. package/esm/index.js.map +1 -0
  116. package/esm/logLevels.d.ts +60 -0
  117. package/esm/logLevels.d.ts.map +1 -0
  118. package/{libm/logLevel.js → esm/logLevels.js} +29 -3
  119. package/esm/logLevels.js.map +1 -0
  120. package/esm/logStore.d.ts +20 -0
  121. package/esm/logStore.d.ts.map +1 -0
  122. package/esm/logStore.js +37 -0
  123. package/esm/logStore.js.map +1 -0
  124. package/esm/logStore.spec.d.ts +2 -0
  125. package/esm/logStore.spec.d.ts.map +1 -0
  126. package/esm/logStore.spec.js +93 -0
  127. package/esm/logStore.spec.js.map +1 -0
  128. package/esm/logger.d.ts +6 -0
  129. package/esm/logger.d.ts.map +1 -0
  130. package/esm/logger.js +74 -0
  131. package/esm/logger.js.map +1 -0
  132. package/{libm/memory/MemoryLogReporter.d.ts → esm/memory.d.ts} +2 -2
  133. package/esm/memory.d.ts.map +1 -0
  134. package/esm/memory.js +34 -0
  135. package/esm/memory.js.map +1 -0
  136. package/esm/memory.spec.d.ts +2 -0
  137. package/esm/memory.spec.d.ts.map +1 -0
  138. package/esm/memory.spec.js +110 -0
  139. package/esm/memory.spec.js.map +1 -0
  140. package/esm/platform.browser.d.ts +7 -0
  141. package/esm/platform.browser.d.ts.map +1 -0
  142. package/esm/platform.browser.js +6 -0
  143. package/esm/platform.browser.js.map +1 -0
  144. package/esm/platform.d.ts +8 -0
  145. package/esm/platform.d.ts.map +1 -0
  146. package/esm/platform.js +20 -0
  147. package/esm/platform.js.map +1 -0
  148. package/esm/platform.spec.d.ts +2 -0
  149. package/esm/platform.spec.d.ts.map +1 -0
  150. package/esm/platform.spec.js +20 -0
  151. package/esm/platform.spec.js.map +1 -0
  152. package/esm/standardLog.d.ts +21 -0
  153. package/esm/standardLog.d.ts.map +1 -0
  154. package/esm/standardLog.js +36 -0
  155. package/esm/standardLog.js.map +1 -0
  156. package/esm/standardLog.spec.d.ts +2 -0
  157. package/esm/standardLog.spec.d.ts.map +1 -0
  158. package/esm/standardLog.spec.js +434 -0
  159. package/esm/standardLog.spec.js.map +1 -0
  160. package/esm/testUtil.d.ts +10 -0
  161. package/esm/testUtil.d.ts.map +1 -0
  162. package/esm/testUtil.js +17 -0
  163. package/esm/testUtil.js.map +1 -0
  164. package/{libm → esm}/types.d.ts +33 -24
  165. package/esm/types.d.ts.map +1 -0
  166. package/{libm/console → esm}/types.js +0 -0
  167. package/esm/types.js.map +1 -0
  168. package/esm/types.spec.d.ts +2 -0
  169. package/esm/types.spec.d.ts.map +1 -0
  170. package/esm/types.spec.js +5 -0
  171. package/esm/types.spec.js.map +1 -0
  172. package/package.json +72 -31
  173. package/ts/console.ts +72 -0
  174. package/ts/errors.ts +12 -0
  175. package/{src/formatter/createTimestampFormatter.ts → ts/formatter.ts} +13 -2
  176. package/ts/index.ts +7 -0
  177. package/{src/logLevel.ts → ts/logLevels.ts} +20 -3
  178. package/ts/logStore.ts +52 -0
  179. package/ts/logger.ts +85 -0
  180. package/ts/memory.ts +47 -0
  181. package/ts/platform.browser.ts +8 -0
  182. package/ts/platform.ts +25 -0
  183. package/ts/standardLog.ts +54 -0
  184. package/{src → ts}/types.ts +39 -30
  185. package/dist/standard-log.js +0 -5472
  186. package/dist/standard-log.js.gz +0 -0
  187. package/dist/standard-log.js.map +0 -1
  188. package/dist/standard-log.js.map.gz +0 -0
  189. package/lib/LogEntry.d.ts +0 -7
  190. package/lib/LogEntry.d.ts.map +0 -1
  191. package/lib/LogEntry.js +0 -3
  192. package/lib/LogEntry.js.map +0 -1
  193. package/lib/captureLogs.d.ts +0 -4
  194. package/lib/captureLogs.d.ts.map +0 -1
  195. package/lib/captureLogs.js +0 -33
  196. package/lib/captureLogs.js.map +0 -1
  197. package/lib/config.d.ts +0 -12
  198. package/lib/config.d.ts.map +0 -1
  199. package/lib/config.js +0 -49
  200. package/lib/config.js.map +0 -1
  201. package/lib/configForTest.d.ts +0 -5
  202. package/lib/configForTest.d.ts.map +0 -1
  203. package/lib/configForTest.js +0 -18
  204. package/lib/configForTest.js.map +0 -1
  205. package/lib/console/createConsoleLogReporter.d.ts.map +0 -1
  206. package/lib/console/createConsoleLogReporter.js +0 -42
  207. package/lib/console/createConsoleLogReporter.js.map +0 -1
  208. package/lib/console/index.d.ts +0 -4
  209. package/lib/console/index.d.ts.map +0 -1
  210. package/lib/console/index.js +0 -7
  211. package/lib/console/index.js.map +0 -1
  212. package/lib/console/isConsoleDebugAvailable.d.ts +0 -2
  213. package/lib/console/isConsoleDebugAvailable.d.ts.map +0 -1
  214. package/lib/console/isConsoleDebugAvailable.js +0 -18
  215. package/lib/console/isConsoleDebugAvailable.js.map +0 -1
  216. package/lib/console/polyfilledConsole.d.ts +0 -7
  217. package/lib/console/polyfilledConsole.d.ts.map +0 -1
  218. package/lib/console/polyfilledConsole.js +0 -41
  219. package/lib/console/polyfilledConsole.js.map +0 -1
  220. package/lib/console/semverGt.d.ts +0 -2
  221. package/lib/console/semverGt.d.ts.map +0 -1
  222. package/lib/console/semverGt.js +0 -13
  223. package/lib/console/semverGt.js.map +0 -1
  224. package/lib/console/toConsoleMethod.d.ts +0 -2
  225. package/lib/console/toConsoleMethod.d.ts.map +0 -1
  226. package/lib/console/toConsoleMethod.js +0 -22
  227. package/lib/console/toConsoleMethod.js.map +0 -1
  228. package/lib/console/types.d.ts +0 -3
  229. package/lib/console/types.d.ts.map +0 -1
  230. package/lib/console/types.js.map +0 -1
  231. package/lib/customLogLevel.d.ts +0 -11
  232. package/lib/customLogLevel.d.ts.map +0 -1
  233. package/lib/customLogLevel.js +0 -38
  234. package/lib/customLogLevel.js.map +0 -1
  235. package/lib/errors.d.ts +0 -19
  236. package/lib/errors.d.ts.map +0 -1
  237. package/lib/errors.js +0 -46
  238. package/lib/errors.js.map +0 -1
  239. package/lib/formatter/createTimestampFormatter.d.ts +0 -3
  240. package/lib/formatter/createTimestampFormatter.d.ts.map +0 -1
  241. package/lib/formatter/createTimestampFormatter.js +0 -24
  242. package/lib/formatter/createTimestampFormatter.js.map +0 -1
  243. package/lib/formatter/formatLogLevel.d.ts +0 -2
  244. package/lib/formatter/formatLogLevel.d.ts.map +0 -1
  245. package/lib/formatter/formatLogLevel.js +0 -10
  246. package/lib/formatter/formatLogLevel.js.map +0 -1
  247. package/lib/formatter/index.d.ts +0 -4
  248. package/lib/formatter/index.d.ts.map +0 -1
  249. package/lib/formatter/index.js +0 -7
  250. package/lib/formatter/index.js.map +0 -1
  251. package/lib/formatter/plainLogFormatter.d.ts +0 -3
  252. package/lib/formatter/plainLogFormatter.d.ts.map +0 -1
  253. package/lib/formatter/plainLogFormatter.js +0 -11
  254. package/lib/formatter/plainLogFormatter.js.map +0 -1
  255. package/lib/getDefaultReporter.browser.d.ts +0 -2
  256. package/lib/getDefaultReporter.browser.d.ts.map +0 -1
  257. package/lib/getDefaultReporter.browser.js +0 -15
  258. package/lib/getDefaultReporter.browser.js.map +0 -1
  259. package/lib/getDefaultReporter.d.ts +0 -2
  260. package/lib/getDefaultReporter.d.ts.map +0 -1
  261. package/lib/getDefaultReporter.js +0 -19
  262. package/lib/getDefaultReporter.js.map +0 -1
  263. package/lib/getLogModeFromEnvironment.browser.d.ts +0 -3
  264. package/lib/getLogModeFromEnvironment.browser.d.ts.map +0 -1
  265. package/lib/getLogModeFromEnvironment.browser.js +0 -9
  266. package/lib/getLogModeFromEnvironment.browser.js.map +0 -1
  267. package/lib/getLogModeFromEnvironment.d.ts +0 -3
  268. package/lib/getLogModeFromEnvironment.d.ts.map +0 -1
  269. package/lib/getLogModeFromEnvironment.js +0 -17
  270. package/lib/getLogModeFromEnvironment.js.map +0 -1
  271. package/lib/getLogger.d.ts +0 -9
  272. package/lib/getLogger.d.ts.map +0 -1
  273. package/lib/getLogger.js +0 -95
  274. package/lib/getLogger.js.map +0 -1
  275. package/lib/getLoggers.d.ts +0 -7
  276. package/lib/getLoggers.d.ts.map +0 -1
  277. package/lib/getLoggers.js +0 -15
  278. package/lib/getLoggers.js.map +0 -1
  279. package/lib/index.d.ts +0 -17
  280. package/lib/index.d.ts.map +0 -1
  281. package/lib/index.js +0 -20
  282. package/lib/index.js.map +0 -1
  283. package/lib/logLevel.d.ts +0 -106
  284. package/lib/logLevel.d.ts.map +0 -1
  285. package/lib/logLevel.js +0 -59
  286. package/lib/logLevel.js.map +0 -1
  287. package/lib/logLevelFn.d.ts +0 -20
  288. package/lib/logLevelFn.d.ts.map +0 -1
  289. package/lib/logLevelFn.js +0 -76
  290. package/lib/logLevelFn.js.map +0 -1
  291. package/lib/logReporter.d.ts +0 -7
  292. package/lib/logReporter.d.ts.map +0 -1
  293. package/lib/logReporter.js +0 -29
  294. package/lib/logReporter.js.map +0 -1
  295. package/lib/logReporterInternal.d.ts +0 -3
  296. package/lib/logReporterInternal.d.ts.map +0 -1
  297. package/lib/logReporterInternal.js +0 -23
  298. package/lib/logReporterInternal.js.map +0 -1
  299. package/lib/memory/MemoryLogReporter.d.ts.map +0 -1
  300. package/lib/memory/MemoryLogReporter.js +0 -56
  301. package/lib/memory/MemoryLogReporter.js.map +0 -1
  302. package/lib/memory/index.d.ts +0 -3
  303. package/lib/memory/index.d.ts.map +0 -1
  304. package/lib/memory/index.js +0 -6
  305. package/lib/memory/index.js.map +0 -1
  306. package/lib/memory/logEntriesToString.d.ts +0 -3
  307. package/lib/memory/logEntriesToString.d.ts.map +0 -1
  308. package/lib/memory/logEntriesToString.js +0 -10
  309. package/lib/memory/logEntriesToString.js.map +0 -1
  310. package/lib/memory/toInspectStringForObject.d.ts +0 -3
  311. package/lib/memory/toInspectStringForObject.d.ts.map +0 -1
  312. package/lib/memory/toInspectStringForObject.js +0 -15
  313. package/lib/memory/toInspectStringForObject.js.map +0 -1
  314. package/lib/shouldLog.d.ts +0 -8
  315. package/lib/shouldLog.d.ts.map +0 -1
  316. package/lib/shouldLog.js +0 -14
  317. package/lib/shouldLog.js.map +0 -1
  318. package/lib/store.d.ts +0 -3
  319. package/lib/store.d.ts.map +0 -1
  320. package/lib/store.js +0 -17
  321. package/lib/store.js.map +0 -1
  322. package/lib/suppressLogs.d.ts +0 -6
  323. package/lib/suppressLogs.d.ts.map +0 -1
  324. package/lib/suppressLogs.js +0 -17
  325. package/lib/suppressLogs.js.map +0 -1
  326. package/lib/testUtil.d.ts +0 -7
  327. package/lib/testUtil.d.ts.map +0 -1
  328. package/lib/testUtil.js +0 -23
  329. package/lib/testUtil.js.map +0 -1
  330. package/lib/types.d.ts.map +0 -1
  331. package/lib/types.js +0 -3
  332. package/lib/types.js.map +0 -1
  333. package/lib/typesInternal.d.ts +0 -20
  334. package/lib/typesInternal.d.ts.map +0 -1
  335. package/lib/typesInternal.js +0 -3
  336. package/lib/typesInternal.js.map +0 -1
  337. package/lib/utils.d.ts +0 -5
  338. package/lib/utils.d.ts.map +0 -1
  339. package/lib/utils.js +0 -14
  340. package/lib/utils.js.map +0 -1
  341. package/lib/writeToReporters.d.ts +0 -6
  342. package/lib/writeToReporters.d.ts.map +0 -1
  343. package/lib/writeToReporters.js +0 -22
  344. package/lib/writeToReporters.js.map +0 -1
  345. package/libm/LogEntry.d.ts +0 -7
  346. package/libm/LogEntry.d.ts.map +0 -1
  347. package/libm/LogEntry.js +0 -2
  348. package/libm/LogEntry.js.map +0 -1
  349. package/libm/captureLogs.d.ts +0 -4
  350. package/libm/captureLogs.d.ts.map +0 -1
  351. package/libm/captureLogs.js +0 -29
  352. package/libm/captureLogs.js.map +0 -1
  353. package/libm/config.d.ts +0 -12
  354. package/libm/config.d.ts.map +0 -1
  355. package/libm/config.js +0 -44
  356. package/libm/config.js.map +0 -1
  357. package/libm/configForTest.d.ts +0 -5
  358. package/libm/configForTest.d.ts.map +0 -1
  359. package/libm/configForTest.js +0 -14
  360. package/libm/configForTest.js.map +0 -1
  361. package/libm/console/createConsoleLogReporter.d.ts.map +0 -1
  362. package/libm/console/createConsoleLogReporter.js +0 -37
  363. package/libm/console/createConsoleLogReporter.js.map +0 -1
  364. package/libm/console/index.d.ts +0 -4
  365. package/libm/console/index.d.ts.map +0 -1
  366. package/libm/console/index.js +0 -4
  367. package/libm/console/index.js.map +0 -1
  368. package/libm/console/isConsoleDebugAvailable.d.ts +0 -2
  369. package/libm/console/isConsoleDebugAvailable.d.ts.map +0 -1
  370. package/libm/console/isConsoleDebugAvailable.js +0 -13
  371. package/libm/console/isConsoleDebugAvailable.js.map +0 -1
  372. package/libm/console/polyfilledConsole.d.ts +0 -7
  373. package/libm/console/polyfilledConsole.d.ts.map +0 -1
  374. package/libm/console/polyfilledConsole.js.map +0 -1
  375. package/libm/console/semverGt.d.ts +0 -2
  376. package/libm/console/semverGt.d.ts.map +0 -1
  377. package/libm/console/semverGt.js +0 -9
  378. package/libm/console/semverGt.js.map +0 -1
  379. package/libm/console/toConsoleMethod.d.ts +0 -2
  380. package/libm/console/toConsoleMethod.d.ts.map +0 -1
  381. package/libm/console/toConsoleMethod.js +0 -18
  382. package/libm/console/toConsoleMethod.js.map +0 -1
  383. package/libm/console/types.d.ts +0 -3
  384. package/libm/console/types.d.ts.map +0 -1
  385. package/libm/console/types.js.map +0 -1
  386. package/libm/customLogLevel.d.ts +0 -11
  387. package/libm/customLogLevel.d.ts.map +0 -1
  388. package/libm/customLogLevel.js +0 -30
  389. package/libm/customLogLevel.js.map +0 -1
  390. package/libm/errors.d.ts +0 -19
  391. package/libm/errors.d.ts.map +0 -1
  392. package/libm/errors.js +0 -32
  393. package/libm/errors.js.map +0 -1
  394. package/libm/formatter/createTimestampFormatter.d.ts +0 -3
  395. package/libm/formatter/createTimestampFormatter.d.ts.map +0 -1
  396. package/libm/formatter/createTimestampFormatter.js.map +0 -1
  397. package/libm/formatter/formatLogLevel.d.ts +0 -2
  398. package/libm/formatter/formatLogLevel.d.ts.map +0 -1
  399. package/libm/formatter/formatLogLevel.js +0 -6
  400. package/libm/formatter/formatLogLevel.js.map +0 -1
  401. package/libm/formatter/index.d.ts +0 -4
  402. package/libm/formatter/index.d.ts.map +0 -1
  403. package/libm/formatter/index.js +0 -4
  404. package/libm/formatter/index.js.map +0 -1
  405. package/libm/formatter/plainLogFormatter.d.ts +0 -3
  406. package/libm/formatter/plainLogFormatter.d.ts.map +0 -1
  407. package/libm/formatter/plainLogFormatter.js +0 -5
  408. package/libm/formatter/plainLogFormatter.js.map +0 -1
  409. package/libm/getDefaultReporter.browser.d.ts +0 -2
  410. package/libm/getDefaultReporter.browser.d.ts.map +0 -1
  411. package/libm/getDefaultReporter.browser.js +0 -11
  412. package/libm/getDefaultReporter.browser.js.map +0 -1
  413. package/libm/getDefaultReporter.d.ts +0 -2
  414. package/libm/getDefaultReporter.d.ts.map +0 -1
  415. package/libm/getDefaultReporter.js +0 -15
  416. package/libm/getDefaultReporter.js.map +0 -1
  417. package/libm/getLogModeFromEnvironment.browser.d.ts +0 -3
  418. package/libm/getLogModeFromEnvironment.browser.d.ts.map +0 -1
  419. package/libm/getLogModeFromEnvironment.browser.js +0 -5
  420. package/libm/getLogModeFromEnvironment.browser.js.map +0 -1
  421. package/libm/getLogModeFromEnvironment.d.ts +0 -3
  422. package/libm/getLogModeFromEnvironment.d.ts.map +0 -1
  423. package/libm/getLogModeFromEnvironment.js +0 -13
  424. package/libm/getLogModeFromEnvironment.js.map +0 -1
  425. package/libm/getLogger.d.ts +0 -9
  426. package/libm/getLogger.d.ts.map +0 -1
  427. package/libm/getLogger.js +0 -78
  428. package/libm/getLogger.js.map +0 -1
  429. package/libm/getLoggers.d.ts +0 -7
  430. package/libm/getLoggers.d.ts.map +0 -1
  431. package/libm/getLoggers.js +0 -11
  432. package/libm/getLoggers.js.map +0 -1
  433. package/libm/index.d.ts +0 -17
  434. package/libm/index.d.ts.map +0 -1
  435. package/libm/index.js +0 -17
  436. package/libm/index.js.map +0 -1
  437. package/libm/logLevel.d.ts +0 -106
  438. package/libm/logLevel.d.ts.map +0 -1
  439. package/libm/logLevel.js.map +0 -1
  440. package/libm/logLevelFn.d.ts +0 -20
  441. package/libm/logLevelFn.d.ts.map +0 -1
  442. package/libm/logLevelFn.js +0 -67
  443. package/libm/logLevelFn.js.map +0 -1
  444. package/libm/logReporter.d.ts +0 -7
  445. package/libm/logReporter.d.ts.map +0 -1
  446. package/libm/logReporter.js +0 -21
  447. package/libm/logReporter.js.map +0 -1
  448. package/libm/logReporterInternal.d.ts +0 -3
  449. package/libm/logReporterInternal.d.ts.map +0 -1
  450. package/libm/logReporterInternal.js +0 -19
  451. package/libm/logReporterInternal.js.map +0 -1
  452. package/libm/memory/MemoryLogReporter.d.ts.map +0 -1
  453. package/libm/memory/MemoryLogReporter.js +0 -51
  454. package/libm/memory/MemoryLogReporter.js.map +0 -1
  455. package/libm/memory/index.d.ts +0 -3
  456. package/libm/memory/index.d.ts.map +0 -1
  457. package/libm/memory/index.js +0 -3
  458. package/libm/memory/index.js.map +0 -1
  459. package/libm/memory/logEntriesToString.d.ts +0 -3
  460. package/libm/memory/logEntriesToString.d.ts.map +0 -1
  461. package/libm/memory/logEntriesToString.js +0 -6
  462. package/libm/memory/logEntriesToString.js.map +0 -1
  463. package/libm/memory/toInspectStringForObject.d.ts +0 -3
  464. package/libm/memory/toInspectStringForObject.d.ts.map +0 -1
  465. package/libm/memory/toInspectStringForObject.js +0 -11
  466. package/libm/memory/toInspectStringForObject.js.map +0 -1
  467. package/libm/shouldLog.d.ts +0 -8
  468. package/libm/shouldLog.d.ts.map +0 -1
  469. package/libm/shouldLog.js +0 -10
  470. package/libm/shouldLog.js.map +0 -1
  471. package/libm/store.d.ts +0 -3
  472. package/libm/store.d.ts.map +0 -1
  473. package/libm/store.js +0 -24
  474. package/libm/store.js.map +0 -1
  475. package/libm/suppressLogs.d.ts +0 -6
  476. package/libm/suppressLogs.d.ts.map +0 -1
  477. package/libm/suppressLogs.js +0 -9
  478. package/libm/suppressLogs.js.map +0 -1
  479. package/libm/testUtil.d.ts +0 -7
  480. package/libm/testUtil.d.ts.map +0 -1
  481. package/libm/testUtil.js +0 -17
  482. package/libm/testUtil.js.map +0 -1
  483. package/libm/types.d.ts.map +0 -1
  484. package/libm/types.js +0 -2
  485. package/libm/types.js.map +0 -1
  486. package/libm/typesInternal.d.ts +0 -20
  487. package/libm/typesInternal.d.ts.map +0 -1
  488. package/libm/typesInternal.js +0 -2
  489. package/libm/typesInternal.js.map +0 -1
  490. package/libm/utils.d.ts +0 -5
  491. package/libm/utils.d.ts.map +0 -1
  492. package/libm/utils.js +0 -10
  493. package/libm/utils.js.map +0 -1
  494. package/libm/writeToReporters.d.ts +0 -6
  495. package/libm/writeToReporters.d.ts.map +0 -1
  496. package/libm/writeToReporters.js +0 -18
  497. package/libm/writeToReporters.js.map +0 -1
  498. package/src/LogEntry.ts +0 -7
  499. package/src/captureLogs.spec.ts +0 -52
  500. package/src/captureLogs.ts +0 -35
  501. package/src/config.spec.ts +0 -80
  502. package/src/config.ts +0 -57
  503. package/src/configForTest.spec.ts +0 -16
  504. package/src/configForTest.ts +0 -16
  505. package/src/console/createConsoleLogReporter.spec.ts +0 -198
  506. package/src/console/createConsoleLogReporter.ts +0 -42
  507. package/src/console/index.ts +0 -3
  508. package/src/console/isConsoleDebugAvailable.ts +0 -11
  509. package/src/console/polyfilledConsole.ts +0 -34
  510. package/src/console/semverGt.spec.ts +0 -25
  511. package/src/console/semverGt.ts +0 -9
  512. package/src/console/toConsoleMethod.ts +0 -18
  513. package/src/console/types.ts +0 -3
  514. package/src/customLogLevel.spec.ts +0 -39
  515. package/src/customLogLevel.ts +0 -35
  516. package/src/errors.ts +0 -24
  517. package/src/formatter/createTimestampFormatter.spec.ts +0 -24
  518. package/src/formatter/formatLogLevel.ts +0 -6
  519. package/src/formatter/index.ts +0 -3
  520. package/src/formatter/plainLogFormatter.spec.ts +0 -8
  521. package/src/formatter/plainLogFormatter.ts +0 -6
  522. package/src/getDefaultReporter.browser.ts +0 -13
  523. package/src/getDefaultReporter.ts +0 -15
  524. package/src/getLogModeFromEnvironment.browser.ts +0 -6
  525. package/src/getLogModeFromEnvironment.spec.ts +0 -16
  526. package/src/getLogModeFromEnvironment.ts +0 -16
  527. package/src/getLogger.spec.ts +0 -460
  528. package/src/getLogger.ts +0 -92
  529. package/src/getLoggers.ts +0 -12
  530. package/src/index.ts +0 -16
  531. package/src/logLevel.spec.ts +0 -161
  532. package/src/logLevelFn.ts +0 -72
  533. package/src/logReporter.spec.ts +0 -99
  534. package/src/logReporter.ts +0 -26
  535. package/src/logReporterInternal.ts +0 -18
  536. package/src/memory/MemoryLogReporter.spec.ts +0 -114
  537. package/src/memory/MemoryLogReporter.ts +0 -66
  538. package/src/memory/index.ts +0 -2
  539. package/src/memory/logEntriesToString.spec.ts +0 -47
  540. package/src/memory/logEntriesToString.ts +0 -7
  541. package/src/memory/toInspectStringForObject.ts +0 -13
  542. package/src/shouldLog.ts +0 -11
  543. package/src/store.ts +0 -25
  544. package/src/suppressLogs.spec.ts +0 -34
  545. package/src/suppressLogs.ts +0 -14
  546. package/src/testUtil.ts +0 -19
  547. package/src/types.spec.ts +0 -7
  548. package/src/typesInternal.ts +0 -21
  549. package/src/utils.ts +0 -9
  550. package/src/writeToReporters.spec.ts +0 -9
  551. package/src/writeToReporters.ts +0 -20
@@ -1,18 +0,0 @@
1
- import { config } from './config';
2
- import { store } from './store';
3
- export function writeToReporters(logEntry, filter) {
4
- writeToReporters.fn(logEntry, filter);
5
- }
6
- // istanbul ignore next
7
- writeToReporters.fn = (logEntry, filter) => {
8
- const store = getConfiguredStore();
9
- const redirect = store.value.redirects[logEntry.id];
10
- const reporters = redirect && redirect.length > 0 ? redirect : store.value.reporters;
11
- reporters.filter(r => filter(r.id)).forEach(r => r.write(logEntry));
12
- };
13
- function getConfiguredStore() {
14
- if (!store.value.configured)
15
- config();
16
- return store;
17
- }
18
- //# sourceMappingURL=writeToReporters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"writeToReporters.js","sourceRoot":"","sources":["../src/writeToReporters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,MAAuC;IAC1F,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC;AAED,uBAAuB;AACvB,gBAAgB,CAAC,EAAE,GAAG,CAAC,QAAkB,EAAE,MAAuC,EAAE,EAAE;IACpF,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAA;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAA;IACpF,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,CAAC,CAAA;AACtE,CAAC,CAAA;AAED,SAAS,kBAAkB;IACzB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU;QAAE,MAAM,EAAE,CAAA;IACrC,OAAO,KAAK,CAAA;AACd,CAAC"}
package/src/LogEntry.ts DELETED
@@ -1,7 +0,0 @@
1
- export type LogEntry = {
2
- id: string,
3
- level: number,
4
- // args instead of messages because it is `any[]` instead of `string[]`
5
- args: any[],
6
- timestamp: Date
7
- }
@@ -1,52 +0,0 @@
1
- import a from 'assertron'
2
- import delay from 'delay'
3
- import { captureLogs, getLogger } from '.'
4
- import { toMessageWithLevel } from './memory'
5
- import { store } from './store'
6
-
7
- describe('captureLogs()', () => {
8
- test('gets empty object if no log are written', () => {
9
- const log = getLogger('capture')
10
- const [, actual] = captureLogs(log, () => { })
11
-
12
- expect(actual).toEqual([])
13
- })
14
-
15
- test('gets logs', () => {
16
- const log = getLogger('capture')
17
- const [, actual] = captureLogs(log, () => log.error('err msg'))
18
-
19
- expect(toMessageWithLevel(actual)).toEqual('(ERROR) err msg')
20
- a.satisfies(actual, [{ args: ['err msg'] }])
21
- })
22
-
23
- test('get logs for async block', async () => {
24
- const log = getLogger('capture')
25
- const [, actual] = await captureLogs(log, async () => {
26
- await delay(1)
27
- log.error('err msg')
28
- })
29
- a.satisfies(actual, [{ args: ['err msg'] }])
30
- })
31
-
32
- test('redirect is reset even if the block throws', () => {
33
- const log = getLogger('capture')
34
- a.throws(() => captureLogs(log, () => { throw new Error('some error') }))
35
- expect(store.value.redirects[log.id].length).toBe(0)
36
- })
37
-
38
- test('redirect is reset even if the block rejects', async () => {
39
- const log = getLogger('capture')
40
- await a.throws(() => captureLogs(log, async () => {
41
- await delay(1)
42
- throw new Error('some error')
43
- }))
44
- expect(store.value.redirects[log.id].length).toBe(0)
45
- })
46
-
47
- test('receive sync result', () => {
48
- const log = getLogger('capture')
49
- const [a] = captureLogs(log, () => 123)
50
- expect(a).toEqual(123)
51
- })
52
- })
@@ -1,35 +0,0 @@
1
- import { AnyFunction, isPromise } from 'type-plus'
2
- import { createMemoryLogReporter } from './memory'
3
- import { store } from './store'
4
- import { LogEntry, Logger, LogReporter } from './types'
5
-
6
- export function captureLogs<R>(logger: Logger, funcBlock: () => Promise<R>): Promise<[R, LogEntry[]]>
7
- export function captureLogs<R>(logger: Logger, funcBlock: () => R): [R, LogEntry[]]
8
- export function captureLogs(logger: Logger, funcBlock: AnyFunction) {
9
- const reporter = createMemoryLogReporter()
10
- addRedirect(logger.id, reporter)
11
-
12
- try {
13
- const result = funcBlock()
14
- if (isPromise(result)) {
15
- return result.then((r) => [r, reporter.logs])
16
- .finally(() => removeRedirect(logger.id, reporter))
17
- }
18
- removeRedirect(logger.id, reporter)
19
- return [result, reporter.logs]
20
- }
21
- catch (e) {
22
- removeRedirect(logger.id, reporter)
23
- throw e
24
- }
25
- }
26
-
27
- function addRedirect(id: string, reporter: LogReporter) {
28
- const redirect = store.value.redirects[id] || []
29
- redirect.push(reporter)
30
- store.value.redirects[id] = redirect
31
- }
32
-
33
- function removeRedirect(id: string, reporter: LogReporter) {
34
- store.value.redirects[id] = store.value.redirects[id].filter(r => r !== reporter)
35
- }
@@ -1,80 +0,0 @@
1
- import a from 'assertron'
2
- import {
3
- config, createMemoryLogReporter,
4
- logLevels, ProhibitedDuringProduction, toLogLevelName
5
- } from '.'
6
- import { configForTest } from './configForTest'
7
- import { store } from './store'
8
-
9
- beforeEach(() => store.reset())
10
-
11
- afterEach(() => store.reset())
12
-
13
- test('in production mode by default', () => {
14
- expect(store.value.mode).toBe('production')
15
- })
16
-
17
- test('default logLevel is info', () => {
18
- expect(store.value.logLevel).toBe(logLevels.info)
19
- })
20
-
21
- test('configure default logLevel', () => {
22
- config({ logLevel: logLevels.planck })
23
-
24
- expect(store.value.logLevel).toBe(logLevels.planck)
25
- })
26
-
27
- test('calling config twice throws ProhibitedDuringProduction in production mode', () => {
28
- config({ mode: 'production' })
29
- a.throws(() => config({ mode: 'development' }), ProhibitedDuringProduction)
30
- })
31
-
32
- test('allow calling config with non-test mode while already running in test mode, but emit a warning', () => {
33
- const { reporter } = configForTest()
34
- config({ mode: 'production' })
35
- expect(reporter.getLogMessageWithLevel()).toEqual('(WARN) already configured for test, ignoring config() call')
36
- })
37
-
38
- test('allow calling config in test mode again while in test mode. Emit no warning', () => {
39
- const { reporter } = configForTest()
40
- config({ mode: 'test' })
41
- expect(reporter.getLogMessageWithLevel()).toEqual('')
42
- })
43
-
44
-
45
- test('add custom levels', () => {
46
- config({
47
- customLevels: {
48
- 'urgent': 80
49
- }
50
- })
51
-
52
- expect(toLogLevelName(80)).toBe('urgent')
53
- })
54
-
55
- test('configure to use a reporter instance', () => {
56
- config({
57
- reporters: [
58
- createMemoryLogReporter()
59
- ]
60
- })
61
- a.satisfies(store.value.reporters, [{ id: 'memory' }])
62
- expect(store.value.reporters.length).toBe(1)
63
- })
64
-
65
- test('configure as development will emit warning', () => {
66
- const warn = console.warn
67
- let actual: string
68
- console.warn = message => actual = message
69
- config({ mode: 'development' })
70
-
71
- expect(actual!).toBe(`'standard-log' is running in 'development' mode. Configuration is not protected.`)
72
-
73
- console.warn = warn
74
- })
75
-
76
- test('config.configured', () => {
77
- expect(config.isLocked).toBeFalsy()
78
- config({ mode: 'test' })
79
- expect(config.isLocked).toBe(true)
80
- })
package/src/config.ts DELETED
@@ -1,57 +0,0 @@
1
- import { forEachKey } from 'type-plus'
2
- import { addCustomLogLevel } from './customLogLevel'
3
- import { ProhibitedDuringProduction } from './errors'
4
- import { getDefaultReporter } from './getDefaultReporter'
5
- import { getLogger } from './getLogger'
6
- import { store } from './store'
7
- import { LogMode, LogReporter } from './types'
8
-
9
- export type ConfigOptions = {
10
- mode: LogMode,
11
- customLevels: Record<string, number>,
12
- logLevel: number,
13
- reporters: LogReporter[]
14
- }
15
-
16
- export const config: { (options?: Partial<ConfigOptions>): void, readonly isLocked: boolean } = function config(options: Partial<ConfigOptions> = {}) {
17
- if (store.value.configured) {
18
- if (store.value.mode === 'production') {
19
- throw new ProhibitedDuringProduction('config')
20
- }
21
- if (store.value.mode === 'test' && options.mode !== 'test') {
22
- const log = getLogger('standard-log')
23
- log.warn(`already configured for test, ignoring config() call`)
24
- return
25
- }
26
- }
27
-
28
- if (options.mode) store.value.mode = options.mode
29
-
30
- store.value.logLevel = options.logLevel !== undefined ? options.logLevel : store.value.logLevel
31
-
32
- if (options.customLevels) {
33
- const customLevels = options.customLevels
34
- forEachKey(customLevels, k => {
35
- addCustomLogLevel(k, customLevels[k])
36
- })
37
- }
38
-
39
- store.value.reporters = options.reporters || [getDefaultReporter()]
40
- store.value.configured = true
41
-
42
- if (store.value.mode === 'production') {
43
- store.freeze({ ...store.value, reporters: Object.freeze(store.value.reporters) })
44
- }
45
- else if (store.value.mode === 'development') {
46
- console.warn(`'standard-log' is running in 'development' mode. Configuration is not protected.`)
47
- }
48
- } as any
49
-
50
- Object.defineProperty(config, 'isLocked', {
51
- /**
52
- * Gets if the config has already been locked
53
- */
54
- get() {
55
- return store.value.configured
56
- }
57
- })
@@ -1,16 +0,0 @@
1
- import { configForTest } from '.'
2
- import { getLogger } from './getLogger'
3
- import { logLevels } from './logLevel'
4
-
5
- test('config in test mode and return the memory reporter', () => {
6
- const { reporter } = configForTest()
7
- getLogger('config-for-test').info('ha')
8
- expect(reporter.getLogMessage()).toEqual('ha')
9
- })
10
-
11
- test('set log level', () => {
12
- const { reporter } = configForTest(logLevels.warn)
13
- getLogger('config-for-test').info('no')
14
- getLogger('config-for-test').warn('yes')
15
- expect(reporter.getLogMessage()).toEqual('yes')
16
- })
@@ -1,16 +0,0 @@
1
- import { config } from './config'
2
- import { createMemoryLogReporter } from './memory'
3
- import { store } from './store'
4
- import { LogLevel } from './types'
5
-
6
-
7
- export function configForTest(logLevel?: LogLevel) {
8
- store.reset()
9
- const reporter = createMemoryLogReporter()
10
- config({
11
- reporters: [reporter],
12
- mode: 'test',
13
- logLevel
14
- })
15
- return { reporter }
16
- }
@@ -1,198 +0,0 @@
1
- import a from 'assertron'
2
- import {
3
- addCustomLogLevel, clearCustomLogLevel, config, configForTest,
4
- ConsoleLogFormatter, createConsoleLogReporter,
5
- LogFilter, logLevels, plainLogFormatter, ProhibitedDuringProduction
6
- } from '..'
7
- import { store } from '../store'
8
-
9
- describe('production checks', () => {
10
- beforeEach(() => store.reset())
11
-
12
- test('set filter during production mode throws', () => {
13
- config({ mode: 'production' })
14
- const reporter = createConsoleLogReporter()
15
- a.throws(() => { reporter.filter = () => true }, ProhibitedDuringProduction)
16
- })
17
-
18
- const idFormatter: ConsoleLogFormatter = (entry) => [entry.id]
19
- test('set formatter during production mode throws', () => {
20
- config({ mode: 'production' })
21
- const reporter = createConsoleLogReporter()
22
- a.throws(() => reporter.formatter = idFormatter, ProhibitedDuringProduction)
23
- })
24
- })
25
-
26
-
27
- describe('unit tests', () => {
28
- beforeEach(() => configForTest())
29
-
30
- describe('rendering tests', () => {
31
- test('plain rendering', () => {
32
- const reporter = createConsoleLogReporter({ formatter: plainLogFormatter });
33
- ['emergency', 'info', 'warn', 'debug'].forEach(level => {
34
- reporter.write({ id: 'plain', level: (logLevels as any)[level], args: ['hello', 'world'], timestamp: new Date() })
35
- })
36
- })
37
- })
38
-
39
- describe('id', () => {
40
- test('default is "console"', () => {
41
- const reporter = createConsoleLogReporter()
42
- expect(reporter.id).toBe('console')
43
- })
44
- test('can be overridden', () => {
45
- const reporter = createConsoleLogReporter({ id: 'neo-console' })
46
- expect(reporter.id).toBe('neo-console')
47
- })
48
- })
49
-
50
- describe('log level', () => {
51
- test('error, alert, critical and emergency logs are written to console.error', () => {
52
- const id = 'log'
53
- const reporter = createConsoleLogReporter()
54
- const fakeConsole = reporter.console = createFakeConsole()
55
-
56
- reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })
57
- reporter.write({ id, level: logLevels.critical, args: ['critical'], timestamp: new Date() })
58
- reporter.write({ id, level: logLevels.alert, args: ['alert'], timestamp: new Date() })
59
- reporter.write({ id, level: logLevels.error, args: ['error'], timestamp: new Date() })
60
-
61
- expect(fakeConsole.errors.length).toBe(4)
62
- })
63
-
64
- test('warn logs are written to console.warn', () => {
65
- const id = 'log'
66
- const reporter = createConsoleLogReporter()
67
-
68
- const fakeConsole = reporter.console = createFakeConsole()
69
-
70
- reporter.write({ id, level: logLevels.warn, args: ['warn'], timestamp: new Date() })
71
-
72
- expect(fakeConsole.warns.length).toBe(1)
73
- })
74
-
75
- test('notice and info logs are written to console.info', () => {
76
- const id = 'log'
77
- const reporter = createConsoleLogReporter()
78
-
79
- const fakeConsole = reporter.console = createFakeConsole()
80
-
81
- reporter.write({ id, level: logLevels.notice, args: ['notice'], timestamp: new Date() })
82
- reporter.write({ id, level: logLevels.info, args: ['info'], timestamp: new Date() })
83
-
84
- expect(fakeConsole.infos.length).toBe(2)
85
- })
86
-
87
-
88
- test('debug, trace, and planck logs are written to console.debug', () => {
89
- const id = 'log'
90
- const reporter = createConsoleLogReporter()
91
- const fakeConsole = reporter.console = createFakeConsole()
92
-
93
- reporter.write({ id, level: logLevels.debug, args: ['debug'], timestamp: new Date() })
94
- reporter.write({ id, level: logLevels.trace, args: ['trace'], timestamp: new Date() })
95
- reporter.write({ id, level: logLevels.planck, args: ['planck'], timestamp: new Date() })
96
-
97
- expect(fakeConsole.debugs.length).toBe(3)
98
- })
99
- })
100
-
101
- describe('custom logs', () => {
102
- afterEach(() => clearCustomLogLevel())
103
-
104
- test('are written according to their log level value', () => {
105
- addCustomLogLevel('high', 50)
106
- addCustomLogLevel('important', 450)
107
- addCustomLogLevel('interest', 650)
108
- addCustomLogLevel('silly', 1000)
109
-
110
- const id = 'log'
111
- const reporter = createConsoleLogReporter()
112
- const fakeConsole = reporter.console = createFakeConsole()
113
-
114
- reporter.write({ id, level: 50, args: ['a'], timestamp: new Date() })
115
- reporter.write({ id, level: 450, args: ['b'], timestamp: new Date() })
116
- reporter.write({ id, level: 650, args: ['c'], timestamp: new Date() })
117
- reporter.write({ id, level: 1000, args: ['d'], timestamp: new Date() })
118
-
119
- expect(fakeConsole.errors.length).toBe(1)
120
- expect(fakeConsole.warns.length).toBe(1)
121
- expect(fakeConsole.infos.length).toBe(1)
122
- expect(fakeConsole.debugs.length).toBe(1)
123
- })
124
- })
125
-
126
- const idFormatter: ConsoleLogFormatter = (entry) => [entry.id]
127
-
128
- describe('formatter', () => {
129
- test('use specific formatter', () => {
130
- const id = 'id-only'
131
- const reporter = createConsoleLogReporter({ formatter: idFormatter })
132
- const fakeConsole = reporter.console = createFakeConsole()
133
-
134
- reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })
135
-
136
- expect(fakeConsole.errors).toEqual([['id-only']])
137
- })
138
-
139
- test('formatter can be changed afterward', () => {
140
- const reporter = createConsoleLogReporter()
141
- const formatter = reporter.formatter
142
- reporter.formatter = idFormatter
143
- expect(reporter.formatter).not.toEqual(formatter)
144
- })
145
- })
146
-
147
- describe('filter', () => {
148
- const filter: LogFilter = (entry) => entry.id !== 'secret'
149
- test('use specific filter', () => {
150
- const reporter = createConsoleLogReporter({ formatter: idFormatter, filter })
151
- const fakeConsole = reporter.console = createFakeConsole()
152
-
153
- reporter.write({ id: 'normal', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })
154
- reporter.write({ id: 'secret', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })
155
-
156
- expect(fakeConsole.errors).toEqual([['normal']])
157
- })
158
-
159
- test('can change filter', () => {
160
- const reporter = createConsoleLogReporter()
161
- const filter = reporter.filter
162
- reporter.filter = entry => entry.id !== 'secret'
163
- expect(reporter.filter).not.toEqual(filter)
164
- })
165
- })
166
-
167
- test('write log entry with multiple arguments', () => {
168
- const id = 'log'
169
- const reporter = createConsoleLogReporter({ formatter: plainLogFormatter })
170
- const fakeConsole = reporter.console = createFakeConsole()
171
-
172
- const entry = { id, level: logLevels.info, args: ['a', 'b', 'c'], timestamp: new Date() }
173
-
174
- reporter.write(entry)
175
-
176
- expect(fakeConsole.infos).toEqual([
177
- [entry.timestamp.toISOString(), 'log', '(INFO)', 'a', 'b', 'c']
178
- ])
179
- })
180
- })
181
-
182
-
183
- function createFakeConsole() {
184
- const errors: any[] = []
185
- const infos: any[] = []
186
- const warns: any[] = []
187
- const debugs: any[] = []
188
- return {
189
- errors,
190
- infos,
191
- warns,
192
- debugs,
193
- error(...args: any[]) { errors.push(args) },
194
- info(...args: any[]) { infos.push(args) },
195
- warn(...args: any[]) { warns.push(args) },
196
- debug(...args: any[]) { debugs.push(args) }
197
- }
198
- }
@@ -1,42 +0,0 @@
1
- import { required } from 'type-plus'
2
- import { plainLogFormatter } from '../formatter'
3
- import { LogFormatter, LogReporter, LogReporterOptions, LogFilter } from '../types'
4
- import { assertLogModeIsNotProduction } from '../utils'
5
- import { polyfilledConsole } from './polyfilledConsole'
6
- import { toConsoleMethod } from './toConsoleMethod'
7
- import { Console } from './types'
8
-
9
- export type ConsoleLogReporter = LogReporter<any[]> & { console: Console }
10
- export type ConsoleLogFormatter = LogFormatter<any[]>
11
- export type ConsoleLogReporterOptions = LogReporterOptions<any[]>
12
-
13
- export function createConsoleLogReporter(options?: ConsoleLogReporterOptions): ConsoleLogReporter {
14
- const opts = required({ id: 'console', formatter: plainLogFormatter }, options)
15
- const { id } = opts
16
- let { formatter, filter } = opts
17
- return {
18
- id,
19
- isConsoleReporter: true,
20
- get formatter() {
21
- return formatter
22
- },
23
- set formatter(value: ConsoleLogFormatter) {
24
- assertLogModeIsNotProduction('set Reporter.formatter')
25
- formatter = value
26
- },
27
- get filter() {
28
- return filter
29
- },
30
- set filter(value: LogFilter) {
31
- assertLogModeIsNotProduction('set Reporter.filter')
32
- filter = value
33
- },
34
- console: polyfilledConsole,
35
- write(entry) {
36
- if (filter && !filter(entry)) return
37
- const values = formatter(entry)
38
- const method = toConsoleMethod(entry.level)
39
- this.console[method](...values)
40
- }
41
- }
42
- }
@@ -1,3 +0,0 @@
1
- export * from './createConsoleLogReporter'
2
- export * from './toConsoleMethod'
3
- export * from './types'
@@ -1,11 +0,0 @@
1
- import isNode from 'is-node'
2
- import { semverGt } from './semverGt'
3
-
4
- // istanbul ignore file
5
- export function isConsoleDebugAvailable() {
6
- if (!isNode) return true
7
- // without this, systemJs will complain `process is not defined`
8
- if (!global.process) return true
9
- const versionString = process.version.startsWith('v') ? process.version.slice(1) : process.version
10
- return semverGt(versionString, [9, 3, 0])
11
- }
@@ -1,34 +0,0 @@
1
- /* istanbul ignore file */
2
- import { isConsoleDebugAvailable } from './isConsoleDebugAvailable'
3
- /* eslint-disable no-console */
4
-
5
- function buildPolyfillConsole() {
6
- // old phantomjs does not have bind function
7
- const hasBind = !!console.log.bind as boolean
8
- if (hasBind) {
9
- return {
10
- // Node@9.3 or below has `console.debug = undefined` or it doesn't log
11
- // Should use `console.log()` in those case.
12
- debug: (isConsoleDebugAvailable() ? console.debug : console.log).bind(console),
13
- // the `typeof` guards against IE where `console.log.apply()`
14
- // results in error `Object doesn't support property or method 'apply'`
15
- info: (typeof console.info === 'function' ? console.info : console.log).bind(console),
16
- warn: (typeof console.warn === 'function' ? console.warn : console.log).bind(console),
17
- error: (typeof console.error === 'function' ? console.error : console.log).bind(console)
18
- }
19
- }
20
- else {
21
- return {
22
- debug: buildFn(isConsoleDebugAvailable() ? 'debug' : 'log'),
23
- info: buildFn(typeof console.info === 'function' ? 'info' : 'log'),
24
- warn: buildFn(typeof console.warn === 'function' ? 'warn' : 'log'),
25
- error: buildFn(typeof console.error === 'function' ? 'error' : 'log'),
26
- }
27
- }
28
- }
29
-
30
- function buildFn(name: 'debug' | 'info' | 'warn' | 'error' | 'log') {
31
- return function (...args: any[]) { console[name](...args) }
32
- }
33
-
34
- export const polyfilledConsole = buildPolyfillConsole()
@@ -1,25 +0,0 @@
1
- import { semverGt } from './semverGt';
2
-
3
- test('9.3.0 returns false', () => {
4
- expect(semverGt('9.3.0', [9, 3, 0])).toBe(false)
5
- })
6
-
7
- test('9.3.1 returns true', () => {
8
- expect(semverGt('9.3.1', [9, 3, 0])).toBe(true)
9
- })
10
-
11
- test('9.3.1 returns true', () => {
12
- expect(semverGt('9.3.1', [9, 3, 0])).toBe(true)
13
- })
14
-
15
- test('9.4.0 returns true', () => {
16
- expect(semverGt('9.4.0', [9, 3, 0])).toBe(true)
17
- })
18
-
19
- test('9.10.0 returns true', () => {
20
- expect(semverGt('9.10.0', [9, 3, 0])).toBe(true)
21
- })
22
-
23
- test('10.0.0 returns true', () => {
24
- expect(semverGt('10.0.0', [9, 3, 0])).toBe(true)
25
- })
@@ -1,9 +0,0 @@
1
- // istanbul ignore next
2
- export function semverGt(versionString: string, version: [number, number, number]) {
3
- const actual = versionString.split('.').reverse().reduce((p, v, i) => {
4
- p += Number.parseInt(v, 10) * Math.pow(100, i)
5
- return p
6
- }, 0)
7
-
8
- return actual > (version[0] * 10000 + version[1] * 100 + version[2])
9
- }
@@ -1,18 +0,0 @@
1
- import { logLevels } from '../logLevel';
2
-
3
- export function toConsoleMethod(level: number) {
4
- switch (true) {
5
- // istanbul ignore next
6
- case (level === 0):
7
- // edge case in case none is somehow written
8
- return 'debug'
9
- case (level <= logLevels.error):
10
- return 'error'
11
- case (level <= logLevels.warn):
12
- return 'warn'
13
- case (level <= logLevels.info):
14
- return 'info'
15
- default:
16
- return 'debug'
17
- }
18
- }
@@ -1,3 +0,0 @@
1
- import { polyfilledConsole } from './polyfilledConsole';
2
-
3
- export type Console = typeof polyfilledConsole