chalk-config 0.0.1-security → 2.14.7

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.

Potentially problematic release.


This version of chalk-config might be problematic. Click here for more details.

Files changed (200) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc +8 -0
  3. package/.github/dependabot.yml +13 -0
  4. package/.github/workflows/bench.yml +61 -0
  5. package/.github/workflows/ci.yml +88 -0
  6. package/.github/workflows/lock-threads.yml +30 -0
  7. package/.github/workflows/target-main.yml +23 -0
  8. package/.nojekyll +0 -0
  9. package/.prettierignore +1 -0
  10. package/.taprc.yaml +8 -0
  11. package/CNAME +1 -0
  12. package/CONTRIBUTING.md +30 -0
  13. package/LICENSE +21 -0
  14. package/README.md +159 -3
  15. package/SECURITY.md +68 -0
  16. package/benchmarks/basic.bench.js +95 -0
  17. package/benchmarks/child-child.bench.js +52 -0
  18. package/benchmarks/child-creation.bench.js +73 -0
  19. package/benchmarks/child.bench.js +62 -0
  20. package/benchmarks/deep-object.bench.js +88 -0
  21. package/benchmarks/formatters.bench.js +50 -0
  22. package/benchmarks/internal/custom-levels.js +67 -0
  23. package/benchmarks/internal/just-pino-heavy.bench.js +76 -0
  24. package/benchmarks/internal/just-pino.bench.js +182 -0
  25. package/benchmarks/internal/parent-vs-child.bench.js +75 -0
  26. package/benchmarks/internal/redact.bench.js +86 -0
  27. package/benchmarks/long-string.bench.js +81 -0
  28. package/benchmarks/multi-arg.bench.js +193 -0
  29. package/benchmarks/multistream.js +98 -0
  30. package/benchmarks/object.bench.js +82 -0
  31. package/benchmarks/utils/generate-benchmark-doc.js +36 -0
  32. package/benchmarks/utils/runbench.js +138 -0
  33. package/benchmarks/utils/wrap-log-level.js +55 -0
  34. package/bin.js +6 -0
  35. package/browser.js +484 -0
  36. package/build/sync-version.js +10 -0
  37. package/docs/api.md +1487 -0
  38. package/docs/asynchronous.md +40 -0
  39. package/docs/benchmarks.md +55 -0
  40. package/docs/browser.md +227 -0
  41. package/docs/bundling.md +40 -0
  42. package/docs/child-loggers.md +95 -0
  43. package/docs/ecosystem.md +84 -0
  44. package/docs/help.md +345 -0
  45. package/docs/lts.md +64 -0
  46. package/docs/pretty.md +35 -0
  47. package/docs/redaction.md +135 -0
  48. package/docs/transports.md +1238 -0
  49. package/docs/web.md +269 -0
  50. package/docsify/sidebar.md +26 -0
  51. package/examples/basic.js +43 -0
  52. package/examples/transport.js +68 -0
  53. package/favicon-16x16.png +0 -0
  54. package/favicon-32x32.png +0 -0
  55. package/favicon.ico +0 -0
  56. package/file.js +12 -0
  57. package/inc-version.sh +42 -0
  58. package/index.html +55 -0
  59. package/lib/caller.js +30 -0
  60. package/lib/constants.js +28 -0
  61. package/lib/deprecations.js +8 -0
  62. package/lib/levels.js +241 -0
  63. package/lib/meta.js +3 -0
  64. package/lib/multistream.js +188 -0
  65. package/lib/proto.js +234 -0
  66. package/lib/redaction.js +118 -0
  67. package/lib/symbols.js +74 -0
  68. package/lib/time.js +11 -0
  69. package/lib/tools.js +394 -0
  70. package/lib/transport-stream.js +56 -0
  71. package/lib/transport.js +167 -0
  72. package/lib/worker.js +194 -0
  73. package/lib/writer.js +42 -0
  74. package/package.json +118 -3
  75. package/pino-banner.png +0 -0
  76. package/pino-logo-hire.png +0 -0
  77. package/pino-tree.png +0 -0
  78. package/pino.d.ts +889 -0
  79. package/pino.js +236 -0
  80. package/pretty-demo.png +0 -0
  81. package/test/basic.test.js +874 -0
  82. package/test/broken-pipe.test.js +57 -0
  83. package/test/browser-child.test.js +132 -0
  84. package/test/browser-disabled.test.js +87 -0
  85. package/test/browser-early-console-freeze.test.js +12 -0
  86. package/test/browser-levels.test.js +241 -0
  87. package/test/browser-serializers.test.js +352 -0
  88. package/test/browser-timestamp.test.js +88 -0
  89. package/test/browser-transmit.test.js +417 -0
  90. package/test/browser.test.js +659 -0
  91. package/test/complex-objects.test.js +34 -0
  92. package/test/crlf.test.js +32 -0
  93. package/test/custom-levels.test.js +253 -0
  94. package/test/error.test.js +398 -0
  95. package/test/errorKey.test.js +34 -0
  96. package/test/escaping.test.js +91 -0
  97. package/test/esm/esm.mjs +12 -0
  98. package/test/esm/index.test.js +34 -0
  99. package/test/esm/named-exports.mjs +27 -0
  100. package/test/exit.test.js +77 -0
  101. package/test/fixtures/broken-pipe/basic.js +9 -0
  102. package/test/fixtures/broken-pipe/destination.js +10 -0
  103. package/test/fixtures/broken-pipe/syncfalse.js +12 -0
  104. package/test/fixtures/console-transport.js +13 -0
  105. package/test/fixtures/default-exit.js +8 -0
  106. package/test/fixtures/destination-exit.js +8 -0
  107. package/test/fixtures/eval/index.js +13 -0
  108. package/test/fixtures/eval/node_modules/14-files.js +3 -0
  109. package/test/fixtures/eval/node_modules/2-files.js +3 -0
  110. package/test/fixtures/eval/node_modules/file1.js +5 -0
  111. package/test/fixtures/eval/node_modules/file10.js +5 -0
  112. package/test/fixtures/eval/node_modules/file11.js +5 -0
  113. package/test/fixtures/eval/node_modules/file12.js +5 -0
  114. package/test/fixtures/eval/node_modules/file13.js +5 -0
  115. package/test/fixtures/eval/node_modules/file14.js +11 -0
  116. package/test/fixtures/eval/node_modules/file2.js +5 -0
  117. package/test/fixtures/eval/node_modules/file3.js +5 -0
  118. package/test/fixtures/eval/node_modules/file4.js +5 -0
  119. package/test/fixtures/eval/node_modules/file5.js +5 -0
  120. package/test/fixtures/eval/node_modules/file6.js +5 -0
  121. package/test/fixtures/eval/node_modules/file7.js +5 -0
  122. package/test/fixtures/eval/node_modules/file8.js +5 -0
  123. package/test/fixtures/eval/node_modules/file9.js +5 -0
  124. package/test/fixtures/noop-transport.js +10 -0
  125. package/test/fixtures/pretty/null-prototype.js +8 -0
  126. package/test/fixtures/stdout-hack-protection.js +11 -0
  127. package/test/fixtures/syncfalse-child.js +6 -0
  128. package/test/fixtures/syncfalse-exit.js +9 -0
  129. package/test/fixtures/syncfalse-flush-exit.js +10 -0
  130. package/test/fixtures/syncfalse.js +6 -0
  131. package/test/fixtures/syntax-error-esm.mjs +2 -0
  132. package/test/fixtures/to-file-transport-with-transform.js +20 -0
  133. package/test/fixtures/to-file-transport.js +13 -0
  134. package/test/fixtures/to-file-transport.mjs +8 -0
  135. package/test/fixtures/transport/index.js +12 -0
  136. package/test/fixtures/transport/package.json +5 -0
  137. package/test/fixtures/transport-exit-immediately-with-async-dest.js +16 -0
  138. package/test/fixtures/transport-exit-immediately.js +11 -0
  139. package/test/fixtures/transport-exit-on-ready.js +12 -0
  140. package/test/fixtures/transport-main.js +9 -0
  141. package/test/fixtures/transport-many-lines.js +29 -0
  142. package/test/fixtures/transport-string-stdout.js +9 -0
  143. package/test/fixtures/transport-transform.js +21 -0
  144. package/test/fixtures/transport-uses-pino-config.js +33 -0
  145. package/test/fixtures/transport-with-on-exit.js +12 -0
  146. package/test/fixtures/transport-worker-data.js +19 -0
  147. package/test/fixtures/transport-worker.js +15 -0
  148. package/test/fixtures/transport-wrong-export-type.js +3 -0
  149. package/test/fixtures/ts/to-file-transport-with-transform.ts +18 -0
  150. package/test/fixtures/ts/to-file-transport.ts +11 -0
  151. package/test/fixtures/ts/transpile.cjs +36 -0
  152. package/test/fixtures/ts/transport-exit-immediately-with-async-dest.ts +15 -0
  153. package/test/fixtures/ts/transport-exit-immediately.ts +10 -0
  154. package/test/fixtures/ts/transport-exit-on-ready.ts +11 -0
  155. package/test/fixtures/ts/transport-main.ts +8 -0
  156. package/test/fixtures/ts/transport-string-stdout.ts +8 -0
  157. package/test/fixtures/ts/transport-worker.ts +14 -0
  158. package/test/formatters.test.js +355 -0
  159. package/test/helper.d.ts +4 -0
  160. package/test/helper.js +128 -0
  161. package/test/hooks.test.js +118 -0
  162. package/test/http.test.js +242 -0
  163. package/test/internals/version.test.js +15 -0
  164. package/test/is-level-enabled.test.js +185 -0
  165. package/test/jest/basic.spec.js +10 -0
  166. package/test/levels.test.js +772 -0
  167. package/test/metadata.test.js +106 -0
  168. package/test/mixin-merge-strategy.test.js +55 -0
  169. package/test/mixin.test.js +218 -0
  170. package/test/multistream.test.js +673 -0
  171. package/test/pkg/index.js +46 -0
  172. package/test/pkg/pkg.config.json +17 -0
  173. package/test/pkg/pkg.test.js +56 -0
  174. package/test/redact.test.js +847 -0
  175. package/test/serializers.test.js +253 -0
  176. package/test/stdout-protection.test.js +39 -0
  177. package/test/syncfalse.test.js +188 -0
  178. package/test/timestamp.test.js +121 -0
  179. package/test/transport/big.test.js +43 -0
  180. package/test/transport/bundlers-support.test.js +97 -0
  181. package/test/transport/caller.test.js +23 -0
  182. package/test/transport/core.test.js +644 -0
  183. package/test/transport/core.test.ts +236 -0
  184. package/test/transport/core.transpiled.test.ts +112 -0
  185. package/test/transport/module-link.test.js +239 -0
  186. package/test/transport/pipeline.test.js +135 -0
  187. package/test/transport/repl.test.js +14 -0
  188. package/test/transport/syncTrue.test.js +55 -0
  189. package/test/transport/syncfalse.test.js +68 -0
  190. package/test/transport/targets.test.js +44 -0
  191. package/test/transport/uses-pino-config.test.js +167 -0
  192. package/test/transport-stream.test.js +26 -0
  193. package/test/types/pino-import.test-d.ts +29 -0
  194. package/test/types/pino-multistream.test-d.ts +28 -0
  195. package/test/types/pino-top-export.test-d.ts +35 -0
  196. package/test/types/pino-transport.test-d.ts +145 -0
  197. package/test/types/pino-type-only.test-d.ts +64 -0
  198. package/test/types/pino.test-d.ts +468 -0
  199. package/test/types/pino.ts +78 -0
  200. package/tsconfig.json +14 -0
@@ -0,0 +1,73 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const pino = require('../')
5
+ const bunyan = require('bunyan')
6
+ const bole = require('bole')('bench')
7
+ const fs = require('node:fs')
8
+ const dest = fs.createWriteStream('/dev/null')
9
+ const plogNodeStream = pino(dest)
10
+ const plogDest = pino(pino.destination(('/dev/null')))
11
+ delete require.cache[require.resolve('../')]
12
+ const plogMinLength = require('../')(pino.destination({ dest: '/dev/null', sync: false, minLength: 4096 }))
13
+
14
+ const max = 10
15
+ const blog = bunyan.createLogger({
16
+ name: 'myapp',
17
+ streams: [{
18
+ level: 'trace',
19
+ stream: dest
20
+ }]
21
+ })
22
+
23
+ require('bole').output({
24
+ level: 'info',
25
+ stream: dest
26
+ }).setFastTime(true)
27
+
28
+ const run = bench([
29
+ function benchBunyanCreation (cb) {
30
+ const child = blog.child({ a: 'property' })
31
+ for (var i = 0; i < max; i++) {
32
+ child.info({ hello: 'world' })
33
+ }
34
+ setImmediate(cb)
35
+ },
36
+ function benchBoleCreation (cb) {
37
+ const child = bole('child')
38
+ for (var i = 0; i < max; i++) {
39
+ child.info({ hello: 'world' })
40
+ }
41
+ setImmediate(cb)
42
+ },
43
+ function benchPinoCreation (cb) {
44
+ const child = plogDest.child({ a: 'property' })
45
+ for (var i = 0; i < max; i++) {
46
+ child.info({ hello: 'world' })
47
+ }
48
+ setImmediate(cb)
49
+ },
50
+ function benchPinoMinLengthCreation (cb) {
51
+ const child = plogMinLength.child({ a: 'property' })
52
+ for (var i = 0; i < max; i++) {
53
+ child.info({ hello: 'world' })
54
+ }
55
+ setImmediate(cb)
56
+ },
57
+ function benchPinoNodeStreamCreation (cb) {
58
+ const child = plogNodeStream.child({ a: 'property' })
59
+ for (var i = 0; i < max; i++) {
60
+ child.info({ hello: 'world' })
61
+ }
62
+ setImmediate(cb)
63
+ },
64
+ function benchPinoCreationWithOption (cb) {
65
+ const child = plogDest.child({ a: 'property' }, { redact: [] })
66
+ for (var i = 0; i < max; i++) {
67
+ child.info({ hello: 'world' })
68
+ }
69
+ setImmediate(cb)
70
+ }
71
+ ], 10000)
72
+
73
+ run(run)
@@ -0,0 +1,62 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const pino = require('../')
5
+ const bunyan = require('bunyan')
6
+ const bole = require('bole')('bench')('child')
7
+ const fs = require('node:fs')
8
+ const dest = fs.createWriteStream('/dev/null')
9
+ const plogNodeStream = pino(dest).child({ a: 'property' })
10
+ delete require.cache[require.resolve('../')]
11
+ const plogDest = require('../')(pino.destination('/dev/null')).child({ a: 'property' })
12
+ delete require.cache[require.resolve('../')]
13
+ const plogMinLength = require('../')(pino.destination({ dest: '/dev/null', sync: false, minLength: 4096 }))
14
+
15
+ const max = 10
16
+ const blog = bunyan.createLogger({
17
+ name: 'myapp',
18
+ streams: [{
19
+ level: 'trace',
20
+ stream: dest
21
+ }]
22
+ }).child({ a: 'property' })
23
+
24
+ require('bole').output({
25
+ level: 'info',
26
+ stream: dest
27
+ }).setFastTime(true)
28
+
29
+ const run = bench([
30
+ function benchBunyanChild (cb) {
31
+ for (var i = 0; i < max; i++) {
32
+ blog.info({ hello: 'world' })
33
+ }
34
+ setImmediate(cb)
35
+ },
36
+ function benchBoleChild (cb) {
37
+ for (var i = 0; i < max; i++) {
38
+ bole.info({ hello: 'world' })
39
+ }
40
+ setImmediate(cb)
41
+ },
42
+ function benchPinoChild (cb) {
43
+ for (var i = 0; i < max; i++) {
44
+ plogDest.info({ hello: 'world' })
45
+ }
46
+ setImmediate(cb)
47
+ },
48
+ function benchPinoMinLengthChild (cb) {
49
+ for (var i = 0; i < max; i++) {
50
+ plogMinLength.info({ hello: 'world' })
51
+ }
52
+ setImmediate(cb)
53
+ },
54
+ function benchPinoNodeStreamChild (cb) {
55
+ for (var i = 0; i < max; i++) {
56
+ plogNodeStream.info({ hello: 'world' })
57
+ }
58
+ setImmediate(cb)
59
+ }
60
+ ], 10000)
61
+
62
+ run(run)
@@ -0,0 +1,88 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const pino = require('../')
5
+ const bunyan = require('bunyan')
6
+ const bole = require('bole')('bench')
7
+ const winston = require('winston')
8
+ const fs = require('node:fs')
9
+ const dest = fs.createWriteStream('/dev/null')
10
+ const plogNodeStream = pino(dest)
11
+ delete require.cache[require.resolve('../')]
12
+ const plogDest = require('../')(pino.destination('/dev/null'))
13
+ delete require.cache[require.resolve('../')]
14
+ const plogMinLength = require('../')(pino.destination({ dest: '/dev/null', sync: false, minLength: 4096 }))
15
+ delete require.cache[require.resolve('../')]
16
+
17
+ const loglevel = require('./utils/wrap-log-level')(dest)
18
+
19
+ const deep = Object.assign({}, require('../package.json'), { level: 'info' })
20
+
21
+ const max = 10
22
+ const blog = bunyan.createLogger({
23
+ name: 'myapp',
24
+ streams: [{
25
+ level: 'trace',
26
+ stream: dest
27
+ }]
28
+ })
29
+
30
+ require('bole').output({
31
+ level: 'info',
32
+ stream: dest
33
+ }).setFastTime(true)
34
+
35
+ const chill = winston.createLogger({
36
+ transports: [
37
+ new winston.transports.Stream({
38
+ stream: fs.createWriteStream('/dev/null')
39
+ })
40
+ ]
41
+ })
42
+
43
+ const run = bench([
44
+ function benchBunyanDeepObj (cb) {
45
+ for (var i = 0; i < max; i++) {
46
+ blog.info(deep)
47
+ }
48
+ setImmediate(cb)
49
+ },
50
+ function benchWinstonDeepObj (cb) {
51
+ for (var i = 0; i < max; i++) {
52
+ chill.log(deep)
53
+ }
54
+ setImmediate(cb)
55
+ },
56
+ function benchBoleDeepObj (cb) {
57
+ for (var i = 0; i < max; i++) {
58
+ bole.info(deep)
59
+ }
60
+ setImmediate(cb)
61
+ },
62
+ function benchLogLevelDeepObj (cb) {
63
+ for (var i = 0; i < max; i++) {
64
+ loglevel.info(deep)
65
+ }
66
+ setImmediate(cb)
67
+ },
68
+ function benchPinoDeepObj (cb) {
69
+ for (var i = 0; i < max; i++) {
70
+ plogDest.info(deep)
71
+ }
72
+ setImmediate(cb)
73
+ },
74
+ function benchPinoMinLengthDeepObj (cb) {
75
+ for (var i = 0; i < max; i++) {
76
+ plogMinLength.info(deep)
77
+ }
78
+ setImmediate(cb)
79
+ },
80
+ function benchPinoNodeStreamDeepObj (cb) {
81
+ for (var i = 0; i < max; i++) {
82
+ plogNodeStream.info(deep)
83
+ }
84
+ setImmediate(cb)
85
+ }
86
+ ], 10000)
87
+
88
+ run(run)
@@ -0,0 +1,50 @@
1
+ 'use strict'
2
+
3
+ const formatters = {
4
+ level (label, number) {
5
+ return {
6
+ log: {
7
+ level: label
8
+ }
9
+ }
10
+ },
11
+ bindings (bindings) {
12
+ return {
13
+ process: {
14
+ pid: bindings.pid
15
+ },
16
+ host: {
17
+ name: bindings.hostname
18
+ }
19
+ }
20
+ },
21
+ log (obj) {
22
+ return { foo: 'bar', ...obj }
23
+ }
24
+ }
25
+
26
+ const bench = require('fastbench')
27
+ const pino = require('../')
28
+ delete require.cache[require.resolve('../')]
29
+ const pinoNoFormatters = require('../')(pino.destination('/dev/null'))
30
+ delete require.cache[require.resolve('../')]
31
+ const pinoFormatters = require('../')({ formatters }, pino.destination('/dev/null'))
32
+
33
+ const max = 10
34
+
35
+ const run = bench([
36
+ function benchPinoNoFormatters (cb) {
37
+ for (var i = 0; i < max; i++) {
38
+ pinoNoFormatters.info({ hello: 'world' })
39
+ }
40
+ setImmediate(cb)
41
+ },
42
+ function benchPinoFormatters (cb) {
43
+ for (var i = 0; i < max; i++) {
44
+ pinoFormatters.info({ hello: 'world' })
45
+ }
46
+ setImmediate(cb)
47
+ }
48
+ ], 10000)
49
+
50
+ run(run)
@@ -0,0 +1,67 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const pino = require('../../')
5
+
6
+ const base = pino(pino.destination('/dev/null'))
7
+ const baseCl = pino({
8
+ customLevels: { foo: 31 }
9
+ }, pino.destination('/dev/null'))
10
+ const child = base.child({})
11
+ const childCl = base.child({
12
+ customLevels: { foo: 31 }
13
+ })
14
+ const childOfBaseCl = baseCl.child({})
15
+
16
+ const max = 100
17
+
18
+ const run = bench([
19
+ function benchPinoNoCustomLevel (cb) {
20
+ for (var i = 0; i < max; i++) {
21
+ base.info({ hello: 'world' })
22
+ }
23
+ setImmediate(cb)
24
+ },
25
+ function benchPinoCustomLevel (cb) {
26
+ for (var i = 0; i < max; i++) {
27
+ baseCl.foo({ hello: 'world' })
28
+ }
29
+ setImmediate(cb)
30
+ },
31
+ function benchChildNoCustomLevel (cb) {
32
+ for (var i = 0; i < max; i++) {
33
+ child.info({ hello: 'world' })
34
+ }
35
+ setImmediate(cb)
36
+ },
37
+ function benchPinoChildCustomLevel (cb) {
38
+ for (var i = 0; i < max; i++) {
39
+ childCl.foo({ hello: 'world' })
40
+ }
41
+ setImmediate(cb)
42
+ },
43
+ function benchPinoChildInheritedCustomLevel (cb) {
44
+ for (var i = 0; i < max; i++) {
45
+ childOfBaseCl.foo({ hello: 'world' })
46
+ }
47
+ setImmediate(cb)
48
+ },
49
+ function benchPinoChildCreation (cb) {
50
+ const child = base.child({})
51
+ for (var i = 0; i < max; i++) {
52
+ child.info({ hello: 'world' })
53
+ }
54
+ setImmediate(cb)
55
+ },
56
+ function benchPinoChildCreationCustomLevel (cb) {
57
+ const child = base.child({
58
+ customLevels: { foo: 31 }
59
+ })
60
+ for (var i = 0; i < max; i++) {
61
+ child.foo({ hello: 'world' })
62
+ }
63
+ setImmediate(cb)
64
+ }
65
+ ], 10000)
66
+
67
+ run(run)
@@ -0,0 +1,76 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const pino = require('../../')
5
+ const fs = require('node:fs')
6
+ const dest = fs.createWriteStream('/dev/null')
7
+ const plog = pino(dest)
8
+ delete require.cache[require.resolve('../../')]
9
+ const plogDest = require('../../')(pino.destination('/dev/null'))
10
+ delete require.cache[require.resolve('../../')]
11
+ const plogAsync = require('../../')(pino.destination({ dest: '/dev/null', sync: false }))
12
+ const deep = require('../../package.json')
13
+ deep.deep = JSON.parse(JSON.stringify(deep))
14
+ deep.deep.deep = JSON.parse(JSON.stringify(deep))
15
+ const longStr = JSON.stringify(deep)
16
+
17
+ const max = 10
18
+
19
+ const run = bench([
20
+ function benchPinoLongString (cb) {
21
+ for (var i = 0; i < max; i++) {
22
+ plog.info(longStr)
23
+ }
24
+ setImmediate(cb)
25
+ },
26
+ function benchPinoDestLongString (cb) {
27
+ for (var i = 0; i < max; i++) {
28
+ plogDest.info(longStr)
29
+ }
30
+ setImmediate(cb)
31
+ },
32
+ function benchPinoAsyncLongString (cb) {
33
+ for (var i = 0; i < max; i++) {
34
+ plogAsync.info(longStr)
35
+ }
36
+ setImmediate(cb)
37
+ },
38
+ function benchPinoDeepObj (cb) {
39
+ for (var i = 0; i < max; i++) {
40
+ plog.info(deep)
41
+ }
42
+ setImmediate(cb)
43
+ },
44
+ function benchPinoDestDeepObj (cb) {
45
+ for (var i = 0; i < max; i++) {
46
+ plogDest.info(deep)
47
+ }
48
+ setImmediate(cb)
49
+ },
50
+ function benchPinoAsyncDeepObj (cb) {
51
+ for (var i = 0; i < max; i++) {
52
+ plogAsync.info(deep)
53
+ }
54
+ setImmediate(cb)
55
+ },
56
+ function benchPinoInterpolateDeep (cb) {
57
+ for (var i = 0; i < max; i++) {
58
+ plog.info('hello %j', deep)
59
+ }
60
+ setImmediate(cb)
61
+ },
62
+ function benchPinoDestInterpolateDeep (cb) {
63
+ for (var i = 0; i < max; i++) {
64
+ plogDest.info('hello %j', deep)
65
+ }
66
+ setImmediate(cb)
67
+ },
68
+ function benchPinoAsyncInterpolateDeep (cb) {
69
+ for (var i = 0; i < max; i++) {
70
+ plogAsync.info('hello %j', deep)
71
+ }
72
+ setImmediate(cb)
73
+ }
74
+ ], 1000)
75
+
76
+ run(run)
@@ -0,0 +1,182 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const pino = require('../../')
5
+ const fs = require('node:fs')
6
+ const dest = fs.createWriteStream('/dev/null')
7
+ const plog = pino(dest)
8
+ delete require.cache[require.resolve('../../')]
9
+ const plogDest = require('../../')(pino.destination('/dev/null'))
10
+ delete require.cache[require.resolve('../../')]
11
+ const plogAsync = require('../../')(pino.destination({ dest: '/dev/null', sync: false }))
12
+ const plogChild = plog.child({ a: 'property' })
13
+ const plogDestChild = plogDest.child({ a: 'property' })
14
+ const plogAsyncChild = plogAsync.child({ a: 'property' })
15
+ const plogChildChild = plog.child({ a: 'property' }).child({ sub: 'child' })
16
+ const plogDestChildChild = plogDest.child({ a: 'property' }).child({ sub: 'child' })
17
+ const plogAsyncChildChild = plogAsync.child({ a: 'property' }).child({ sub: 'child' })
18
+
19
+ const max = 10
20
+
21
+ const run = bench([
22
+ function benchPino (cb) {
23
+ for (var i = 0; i < max; i++) {
24
+ plog.info('hello world')
25
+ }
26
+ setImmediate(cb)
27
+ },
28
+ function benchPinoDest (cb) {
29
+ for (var i = 0; i < max; i++) {
30
+ plogDest.info('hello world')
31
+ }
32
+ setImmediate(cb)
33
+ },
34
+ function benchPinoExtreme (cb) {
35
+ for (var i = 0; i < max; i++) {
36
+ plogAsync.info('hello world')
37
+ }
38
+ setImmediate(cb)
39
+ },
40
+ function benchPinoObj (cb) {
41
+ for (var i = 0; i < max; i++) {
42
+ plog.info({ hello: 'world' })
43
+ }
44
+ setImmediate(cb)
45
+ },
46
+ function benchPinoDestObj (cb) {
47
+ for (var i = 0; i < max; i++) {
48
+ plogDest.info({ hello: 'world' })
49
+ }
50
+ setImmediate(cb)
51
+ },
52
+ function benchPinoAsyncObj (cb) {
53
+ for (var i = 0; i < max; i++) {
54
+ plogAsync.info({ hello: 'world' })
55
+ }
56
+ setImmediate(cb)
57
+ },
58
+ function benchPinoChild (cb) {
59
+ for (var i = 0; i < max; i++) {
60
+ plogChild.info({ hello: 'world' })
61
+ }
62
+ setImmediate(cb)
63
+ },
64
+ function benchPinoDestChild (cb) {
65
+ for (var i = 0; i < max; i++) {
66
+ plogDestChild.info({ hello: 'world' })
67
+ }
68
+ setImmediate(cb)
69
+ },
70
+ function benchPinoAsyncChild (cb) {
71
+ for (var i = 0; i < max; i++) {
72
+ plogAsyncChild.info({ hello: 'world' })
73
+ }
74
+ setImmediate(cb)
75
+ },
76
+ function benchPinoChildChild (cb) {
77
+ for (var i = 0; i < max; i++) {
78
+ plogChildChild.info({ hello: 'world' })
79
+ }
80
+ setImmediate(cb)
81
+ },
82
+ function benchPinoDestChildChild (cb) {
83
+ for (var i = 0; i < max; i++) {
84
+ plogDestChildChild.info({ hello: 'world' })
85
+ }
86
+ setImmediate(cb)
87
+ },
88
+ function benchPinoAsyncChildChild (cb) {
89
+ for (var i = 0; i < max; i++) {
90
+ plogAsyncChildChild.info({ hello: 'world' })
91
+ }
92
+ setImmediate(cb)
93
+ },
94
+ function benchPinoChildCreation (cb) {
95
+ const child = plog.child({ a: 'property' })
96
+ for (var i = 0; i < max; i++) {
97
+ child.info({ hello: 'world' })
98
+ }
99
+ setImmediate(cb)
100
+ },
101
+ function benchPinoDestChildCreation (cb) {
102
+ const child = plogDest.child({ a: 'property' })
103
+ for (var i = 0; i < max; i++) {
104
+ child.info({ hello: 'world' })
105
+ }
106
+ setImmediate(cb)
107
+ },
108
+ function benchPinoMulti (cb) {
109
+ for (var i = 0; i < max; i++) {
110
+ plog.info('hello', 'world')
111
+ }
112
+ setImmediate(cb)
113
+ },
114
+ function benchPinoDestMulti (cb) {
115
+ for (var i = 0; i < max; i++) {
116
+ plogDest.info('hello', 'world')
117
+ }
118
+ setImmediate(cb)
119
+ },
120
+ function benchPinoAsyncMulti (cb) {
121
+ for (var i = 0; i < max; i++) {
122
+ plogAsync.info('hello', 'world')
123
+ }
124
+ setImmediate(cb)
125
+ },
126
+ function benchPinoInterpolate (cb) {
127
+ for (var i = 0; i < max; i++) {
128
+ plog.info('hello %s', 'world')
129
+ }
130
+ setImmediate(cb)
131
+ },
132
+ function benchPinoDestInterpolate (cb) {
133
+ for (var i = 0; i < max; i++) {
134
+ plogDest.info('hello %s', 'world')
135
+ }
136
+ setImmediate(cb)
137
+ },
138
+ function benchPinoDestInterpolate (cb) {
139
+ for (var i = 0; i < max; i++) {
140
+ plogDest.info('hello %s', 'world')
141
+ }
142
+ setImmediate(cb)
143
+ },
144
+ function benchPinoInterpolateAll (cb) {
145
+ for (var i = 0; i < max; i++) {
146
+ plog.info('hello %s %j %d', 'world', { obj: true }, 4)
147
+ }
148
+ setImmediate(cb)
149
+ },
150
+ function benchPinoDestInterpolateAll (cb) {
151
+ for (var i = 0; i < max; i++) {
152
+ plogDest.info('hello %s %j %d', 'world', { obj: true }, 4)
153
+ }
154
+ setImmediate(cb)
155
+ },
156
+ function benchPinoAsyncInterpolateAll (cb) {
157
+ for (var i = 0; i < max; i++) {
158
+ plogAsync.info('hello %s %j %d', 'world', { obj: true }, 4)
159
+ }
160
+ setImmediate(cb)
161
+ },
162
+ function benchPinoInterpolateExtra (cb) {
163
+ for (var i = 0; i < max; i++) {
164
+ plog.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
165
+ }
166
+ setImmediate(cb)
167
+ },
168
+ function benchPinoDestInterpolateExtra (cb) {
169
+ for (var i = 0; i < max; i++) {
170
+ plogDest.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
171
+ }
172
+ setImmediate(cb)
173
+ },
174
+ function benchPinoAsyncInterpolateExtra (cb) {
175
+ for (var i = 0; i < max; i++) {
176
+ plogAsync.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
177
+ }
178
+ setImmediate(cb)
179
+ }
180
+ ], 10000)
181
+
182
+ run(run)
@@ -0,0 +1,75 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const pino = require('../../')
5
+
6
+ const base = pino(pino.destination('/dev/null'))
7
+ const child = base.child({})
8
+ const childChild = child.child({})
9
+ const childChildChild = childChild.child({})
10
+ const childChildChildChild = childChildChild.child({})
11
+ const child2 = base.child({})
12
+ const baseSerializers = pino(pino.destination('/dev/null'))
13
+ const baseSerializersChild = baseSerializers.child({})
14
+ const baseSerializersChildSerializers = baseSerializers.child({})
15
+
16
+ const max = 100
17
+
18
+ const run = bench([
19
+ function benchPinoBase (cb) {
20
+ for (var i = 0; i < max; i++) {
21
+ base.info({ hello: 'world' })
22
+ }
23
+ setImmediate(cb)
24
+ },
25
+ function benchPinoChild (cb) {
26
+ for (var i = 0; i < max; i++) {
27
+ child.info({ hello: 'world' })
28
+ }
29
+ setImmediate(cb)
30
+ },
31
+ function benchPinoChildChild (cb) {
32
+ for (var i = 0; i < max; i++) {
33
+ childChild.info({ hello: 'world' })
34
+ }
35
+ setImmediate(cb)
36
+ },
37
+ function benchPinoChildChildChild (cb) {
38
+ for (var i = 0; i < max; i++) {
39
+ childChildChild.info({ hello: 'world' })
40
+ }
41
+ setImmediate(cb)
42
+ },
43
+ function benchPinoChildChildChildChild (cb) {
44
+ for (var i = 0; i < max; i++) {
45
+ childChildChildChild.info({ hello: 'world' })
46
+ }
47
+ setImmediate(cb)
48
+ },
49
+ function benchPinoChild2 (cb) {
50
+ for (var i = 0; i < max; i++) {
51
+ child2.info({ hello: 'world' })
52
+ }
53
+ setImmediate(cb)
54
+ },
55
+ function benchPinoBaseSerializers (cb) {
56
+ for (var i = 0; i < max; i++) {
57
+ baseSerializers.info({ hello: 'world' })
58
+ }
59
+ setImmediate(cb)
60
+ },
61
+ function benchPinoBaseSerializersChild (cb) {
62
+ for (var i = 0; i < max; i++) {
63
+ baseSerializersChild.info({ hello: 'world' })
64
+ }
65
+ setImmediate(cb)
66
+ },
67
+ function benchPinoBaseSerializersChildSerializers (cb) {
68
+ for (var i = 0; i < max; i++) {
69
+ baseSerializersChildSerializers.info({ hello: 'world' })
70
+ }
71
+ setImmediate(cb)
72
+ }
73
+ ], 10000)
74
+
75
+ run(run)