@wireio/shared 1.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 (183) hide show
  1. package/lib/guards/applyTypeGuardExtras.d.ts +3 -0
  2. package/lib/guards/applyTypeGuardExtras.d.ts.map +1 -0
  3. package/lib/guards/applyTypeGuardExtras.js +5 -0
  4. package/lib/guards/applyTypeGuardExtras.js.map +1 -0
  5. package/lib/guards/array.d.ts +2 -0
  6. package/lib/guards/array.d.ts.map +1 -0
  7. package/lib/guards/array.js +4 -0
  8. package/lib/guards/array.js.map +1 -0
  9. package/lib/guards/assert.d.ts +19 -0
  10. package/lib/guards/assert.d.ts.map +1 -0
  11. package/lib/guards/assert.js +50 -0
  12. package/lib/guards/assert.js.map +1 -0
  13. package/lib/guards/class.d.ts +27 -0
  14. package/lib/guards/class.d.ts.map +1 -0
  15. package/lib/guards/class.js +34 -0
  16. package/lib/guards/class.js.map +1 -0
  17. package/lib/guards/guard-tools.d.ts +20 -0
  18. package/lib/guards/guard-tools.d.ts.map +1 -0
  19. package/lib/guards/guard-tools.js +50 -0
  20. package/lib/guards/guard-tools.js.map +1 -0
  21. package/lib/guards/index.d.ts +8 -0
  22. package/lib/guards/index.d.ts.map +1 -0
  23. package/lib/guards/index.js +8 -0
  24. package/lib/guards/index.js.map +1 -0
  25. package/lib/guards/primitive.d.ts +26 -0
  26. package/lib/guards/primitive.d.ts.map +1 -0
  27. package/lib/guards/primitive.js +47 -0
  28. package/lib/guards/primitive.js.map +1 -0
  29. package/lib/guards/types.d.ts +10 -0
  30. package/lib/guards/types.d.ts.map +1 -0
  31. package/lib/guards/types.js +2 -0
  32. package/lib/guards/types.js.map +1 -0
  33. package/lib/helpers/Deferred.d.ts +31 -0
  34. package/lib/helpers/Deferred.d.ts.map +1 -0
  35. package/lib/helpers/Deferred.js +111 -0
  36. package/lib/helpers/Deferred.js.map +1 -0
  37. package/lib/helpers/index.d.ts +2 -0
  38. package/lib/helpers/index.d.ts.map +1 -0
  39. package/lib/helpers/index.js +2 -0
  40. package/lib/helpers/index.js.map +1 -0
  41. package/lib/index.d.ts +4 -0
  42. package/lib/index.d.ts.map +1 -0
  43. package/lib/index.js +4 -0
  44. package/lib/index.js.map +1 -0
  45. package/lib/logging/Appender.d.ts +5 -0
  46. package/lib/logging/Appender.d.ts.map +1 -0
  47. package/lib/logging/Appender.js +2 -0
  48. package/lib/logging/Appender.js.map +1 -0
  49. package/lib/logging/Formatter.d.ts +3 -0
  50. package/lib/logging/Formatter.d.ts.map +1 -0
  51. package/lib/logging/Formatter.js +2 -0
  52. package/lib/logging/Formatter.js.map +1 -0
  53. package/lib/logging/InternalLogger.d.ts +2 -0
  54. package/lib/logging/InternalLogger.d.ts.map +1 -0
  55. package/lib/logging/InternalLogger.js +6 -0
  56. package/lib/logging/InternalLogger.js.map +1 -0
  57. package/lib/logging/Level.d.ts +14 -0
  58. package/lib/logging/Level.d.ts.map +1 -0
  59. package/lib/logging/Level.js +13 -0
  60. package/lib/logging/Level.js.map +1 -0
  61. package/lib/logging/LogRecord.d.ts +16 -0
  62. package/lib/logging/LogRecord.d.ts.map +1 -0
  63. package/lib/logging/LogRecord.js +2 -0
  64. package/lib/logging/LogRecord.js.map +1 -0
  65. package/lib/logging/Logger.d.ts +77 -0
  66. package/lib/logging/Logger.d.ts.map +1 -0
  67. package/lib/logging/Logger.js +158 -0
  68. package/lib/logging/Logger.js.map +1 -0
  69. package/lib/logging/LoggingManager.d.ts +128 -0
  70. package/lib/logging/LoggingManager.d.ts.map +1 -0
  71. package/lib/logging/LoggingManager.js +236 -0
  72. package/lib/logging/LoggingManager.js.map +1 -0
  73. package/lib/logging/appenders/ConsoleAppender.d.ts +55 -0
  74. package/lib/logging/appenders/ConsoleAppender.d.ts.map +1 -0
  75. package/lib/logging/appenders/ConsoleAppender.js +72 -0
  76. package/lib/logging/appenders/ConsoleAppender.js.map +1 -0
  77. package/lib/logging/appenders/DebugAppender.d.ts +53 -0
  78. package/lib/logging/appenders/DebugAppender.d.ts.map +1 -0
  79. package/lib/logging/appenders/DebugAppender.js +183 -0
  80. package/lib/logging/appenders/DebugAppender.js.map +1 -0
  81. package/lib/logging/appenders/FileAppender.d.ts +65 -0
  82. package/lib/logging/appenders/FileAppender.d.ts.map +1 -0
  83. package/lib/logging/appenders/FileAppender.js +212 -0
  84. package/lib/logging/appenders/FileAppender.js.map +1 -0
  85. package/lib/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts +27 -0
  86. package/lib/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts.map +1 -0
  87. package/lib/logging/appenders/aws-firehose/AWSFirehoseAppender.js +135 -0
  88. package/lib/logging/appenders/aws-firehose/AWSFirehoseAppender.js.map +1 -0
  89. package/lib/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts +27 -0
  90. package/lib/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts.map +1 -0
  91. package/lib/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.js +94 -0
  92. package/lib/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.js.map +1 -0
  93. package/lib/logging/appenders/index.d.ts +4 -0
  94. package/lib/logging/appenders/index.d.ts.map +1 -0
  95. package/lib/logging/appenders/index.js +4 -0
  96. package/lib/logging/appenders/index.js.map +1 -0
  97. package/lib/logging/context/LogContext.d.ts +48 -0
  98. package/lib/logging/context/LogContext.d.ts.map +1 -0
  99. package/lib/logging/context/LogContext.js +58 -0
  100. package/lib/logging/context/LogContext.js.map +1 -0
  101. package/lib/logging/context/LogContextContainer.d.ts +9 -0
  102. package/lib/logging/context/LogContextContainer.d.ts.map +1 -0
  103. package/lib/logging/context/LogContextContainer.js +25 -0
  104. package/lib/logging/context/LogContextContainer.js.map +1 -0
  105. package/lib/logging/context/LogContextProvider.d.ts +24 -0
  106. package/lib/logging/context/LogContextProvider.d.ts.map +1 -0
  107. package/lib/logging/context/LogContextProvider.js +18 -0
  108. package/lib/logging/context/LogContextProvider.js.map +1 -0
  109. package/lib/logging/context/index.d.ts +4 -0
  110. package/lib/logging/context/index.d.ts.map +1 -0
  111. package/lib/logging/context/index.js +4 -0
  112. package/lib/logging/context/index.js.map +1 -0
  113. package/lib/logging/context/providers/node/NodeContextProvider.d.ts +2 -0
  114. package/lib/logging/context/providers/node/NodeContextProvider.d.ts.map +1 -0
  115. package/lib/logging/context/providers/node/NodeContextProvider.js +31 -0
  116. package/lib/logging/context/providers/node/NodeContextProvider.js.map +1 -0
  117. package/lib/logging/context/providers/node/index.d.ts +3 -0
  118. package/lib/logging/context/providers/node/index.d.ts.map +1 -0
  119. package/lib/logging/context/providers/node/index.js +2 -0
  120. package/lib/logging/context/providers/node/index.js.map +1 -0
  121. package/lib/logging/examples/example-debug-appender.d.ts +2 -0
  122. package/lib/logging/examples/example-debug-appender.d.ts.map +1 -0
  123. package/lib/logging/examples/example-debug-appender.js +14 -0
  124. package/lib/logging/examples/example-debug-appender.js.map +1 -0
  125. package/lib/logging/examples/example-file-appender.d.ts +2 -0
  126. package/lib/logging/examples/example-file-appender.d.ts.map +1 -0
  127. package/lib/logging/examples/example-file-appender.js +16 -0
  128. package/lib/logging/examples/example-file-appender.js.map +1 -0
  129. package/lib/logging/getLogger.d.ts +3 -0
  130. package/lib/logging/getLogger.d.ts.map +1 -0
  131. package/lib/logging/getLogger.js +5 -0
  132. package/lib/logging/getLogger.js.map +1 -0
  133. package/lib/logging/index-node.d.ts +3 -0
  134. package/lib/logging/index-node.d.ts.map +1 -0
  135. package/lib/logging/index-node.js +3 -0
  136. package/lib/logging/index-node.js.map +1 -0
  137. package/lib/logging/index.d.ts +11 -0
  138. package/lib/logging/index.d.ts.map +1 -0
  139. package/lib/logging/index.js +11 -0
  140. package/lib/logging/index.js.map +1 -0
  141. package/lib/logging/util.d.ts +3 -0
  142. package/lib/logging/util.d.ts.map +1 -0
  143. package/lib/logging/util.js +6 -0
  144. package/lib/logging/util.js.map +1 -0
  145. package/package.json +31 -0
  146. package/src/guards/applyTypeGuardExtras.ts +9 -0
  147. package/src/guards/array.ts +5 -0
  148. package/src/guards/assert.ts +83 -0
  149. package/src/guards/class.ts +56 -0
  150. package/src/guards/guard-tools.ts +78 -0
  151. package/src/guards/index.ts +7 -0
  152. package/src/guards/primitive.ts +77 -0
  153. package/src/guards/types.ts +15 -0
  154. package/src/helpers/Deferred.ts +149 -0
  155. package/src/helpers/index.ts +1 -0
  156. package/src/index.ts +3 -0
  157. package/src/logging/Appender.ts +5 -0
  158. package/src/logging/Formatter.ts +8 -0
  159. package/src/logging/InternalLogger.ts +6 -0
  160. package/src/logging/Level.ts +19 -0
  161. package/src/logging/LogRecord.ts +17 -0
  162. package/src/logging/Logger.ts +222 -0
  163. package/src/logging/LoggingManager.ts +306 -0
  164. package/src/logging/appenders/ConsoleAppender.ts +110 -0
  165. package/src/logging/appenders/DebugAppender.ts +254 -0
  166. package/src/logging/appenders/FileAppender.ts +281 -0
  167. package/src/logging/appenders/aws-firehose/AWSFirehoseAppender.ts +176 -0
  168. package/src/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.ts +132 -0
  169. package/src/logging/appenders/index.ts +3 -0
  170. package/src/logging/context/LogContext.ts +74 -0
  171. package/src/logging/context/LogContextContainer.ts +28 -0
  172. package/src/logging/context/LogContextProvider.ts +43 -0
  173. package/src/logging/context/index.ts +3 -0
  174. package/src/logging/context/providers/node/NodeContextProvider.ts +45 -0
  175. package/src/logging/context/providers/node/index.ts +3 -0
  176. package/src/logging/examples/example-debug-appender.ts +19 -0
  177. package/src/logging/examples/example-file-appender.ts +19 -0
  178. package/src/logging/getLogger.ts +9 -0
  179. package/src/logging/index-node.ts +2 -0
  180. package/src/logging/index.ts +11 -0
  181. package/src/logging/util.ts +6 -0
  182. package/tsconfig.json +9 -0
  183. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,43 @@
1
+ // noinspection JSValidateJSDoc
2
+
3
+ import type { LogContext } from "./LogContext"
4
+
5
+
6
+
7
+ export interface LogContextProvider {
8
+
9
+ /**
10
+ * Get current context stack
11
+ *
12
+ * @returns {any[]}
13
+ */
14
+ currentContext(): Array<LogContext>
15
+
16
+ /**
17
+ * Run in context
18
+ *
19
+ * @param {LogContext} context
20
+ * @param {() => Promise<T>} fn
21
+ * @returns {Promise<T>}
22
+ */
23
+ runInContext<T = unknown>(context: LogContext, fn: () => Promise<T>): Promise<T>
24
+ }
25
+
26
+
27
+ /**
28
+ * Dummy/Noop context provider
29
+ *
30
+ * @type {{currentContext(): Array<LogContext>, runInContext<T=unknown>(context: LogContext, fn: () => Promise<T>): Promise<T>}}
31
+ */
32
+ export const DefaultLogContextProvider:LogContextProvider = {
33
+ currentContext(): Array<LogContext> {
34
+ return []
35
+ },
36
+ runInContext<T = unknown>(context: LogContext, fn: () => Promise<T>): Promise<T> {
37
+ if (process.env.NODE_ENV === "development") {
38
+ console.warn(`Attempting to use LogContext without any installed provider`)
39
+ }
40
+
41
+ return fn()
42
+ }
43
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./LogContext.js"
2
+ export * from "./LogContextProvider.js"
3
+ export * from "./LogContextContainer.js"
@@ -0,0 +1,45 @@
1
+ import { AsyncLocalStorage } from "async_hooks"
2
+ import { uniq } from "lodash"
3
+ import type { LogContext } from "../../LogContext"
4
+ import type { LogContextProvider } from "../../LogContextProvider"
5
+ import { LogContextContainer } from "../../LogContextContainer.js"
6
+
7
+ const contextStorage = new AsyncLocalStorage<Array<LogContext>>()
8
+
9
+ function currentContextStore(): Array<LogContext> {
10
+ return contextStorage.getStore() ?? []
11
+ }
12
+
13
+ class NodeContextProvider implements LogContextProvider {
14
+
15
+
16
+ /**
17
+ * Get current context stack
18
+ *
19
+ * @returns {any[]}
20
+ */
21
+ currentContext(): Array<LogContext> {
22
+ return currentContextStore() ?? []
23
+ }
24
+
25
+ /**
26
+ * Run in context
27
+ *
28
+ * @param {LogContext} context
29
+ * @param {() => Promise<T>} fn
30
+ * @returns {Promise<T>}
31
+ */
32
+ runInContext<T = unknown>(
33
+ context: LogContext,
34
+ fn: () => Promise<T>
35
+ ): Promise<T> {
36
+ const contexts = currentContextStore()
37
+ return contextStorage.run<Promise<T>, []>(uniq([...contexts, context]), fn)
38
+ }
39
+ }
40
+
41
+ const instance = new NodeContextProvider()
42
+
43
+ LogContextContainer.setProvider(instance)
44
+
45
+ export {}
@@ -0,0 +1,3 @@
1
+ import "./NodeContextProvider.js"
2
+
3
+ export {}
@@ -0,0 +1,19 @@
1
+ import { getLogger } from "../getLogger.js"
2
+ import { LevelNames } from "../Level.js"
3
+ import { getLoggingManager } from "../LoggingManager.js"
4
+
5
+
6
+ getLoggingManager().configure({
7
+ // Default appenders list is [ConsoleAppender],
8
+ // so the following is not needed and only
9
+ // remains as an example:
10
+ //
11
+ // appenders: [new ConsoleAppender()],
12
+ rootLevel: "trace"
13
+ })
14
+
15
+ const log = getLogger(__filename)
16
+
17
+ LevelNames.forEach((name) =>
18
+ log[name].call(log, `example %s`, name)
19
+ )
@@ -0,0 +1,19 @@
1
+ import { FileAppender } from "../appenders/FileAppender.js"
2
+ import { getLogger } from "../getLogger.js"
3
+ import { LevelNames } from "../Level.js"
4
+ import { getLoggingManager } from "../LoggingManager.js"
5
+
6
+ async function run() {
7
+ const manager = getLoggingManager()
8
+ const fileAppender = new FileAppender({
9
+ enableRolling: true,
10
+ maxFiles: 4,
11
+ maxSize: 20480
12
+ })
13
+ manager.setAppenders(fileAppender).setRootLevel("trace")
14
+
15
+ const log = getLogger(__filename)
16
+ await fileAppender.close()
17
+ }
18
+
19
+ run().catch((err) => console.error(`failed`, err))
@@ -0,0 +1,9 @@
1
+ import type { Logger, LoggerOptions } from "./Logger"
2
+ import { getLoggingManager } from "./LoggingManager.js"
3
+
4
+ export function getLogger(
5
+ category: string,
6
+ options: Partial<LoggerOptions> = {}
7
+ ): Logger {
8
+ return getLoggingManager().getLogger(category, options)
9
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./index.js"
2
+ export * from "./appenders/FileAppender.js"
@@ -0,0 +1,11 @@
1
+ export * from "./Appender.js"
2
+ export * from "./Formatter.js"
3
+ export * from "./Level.js"
4
+ export * from "./LogRecord.js"
5
+ export * from "./Logger.js"
6
+ export * from "./LoggingManager.js"
7
+ export * from "./appenders/index.js"
8
+ export * from "./getLogger.js"
9
+ export * from "./util.js"
10
+ export * from "./context/index.js"
11
+
@@ -0,0 +1,6 @@
1
+ import { isString } from "../guards/primitive.js"
2
+ import { LevelKind, LevelNames } from "./Level.js"
3
+
4
+ export function isLogLevelKind(o: any): o is LevelKind {
5
+ return isString(o) && LevelNames.includes(o?.toLowerCase?.() as any)
6
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../etc/tsconfig/tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "outDir": "lib"
6
+ },
7
+ "include": ["src"],
8
+
9
+ }