Liking cljdoc? Tell your friends :D

taoensso.telemere.utils

Misc utils useful for Telemere handlers, middleware, etc.

error-in-signal->mapsclj/s

(error-in-signal->maps signal)
Experimental, subject to change.
Returns given signal with possible `:error` replaced by
[{:keys [type msg data]} ...] cause chain.

Useful when serializing signals to edn/JSON/etc.
source

error-signal?clj/s

(error-signal? signal)
Experimental, subject to change.
Returns true iff given signal has an `:error` value, or a `:kind` or `:level`
that indicates that it's an error.
source

file-writerclj

(file-writer file append?)
Experimental, subject to change. Feedback welcome!

Opens the specified file and returns a stateful fn of 2 arities:
  [content] => Writes given content to file, or no-ops if closed.
  []        => Closes the writer.

Useful for basic handlers that write to a file, etc.

Notes:
  - Automatically creates file and parent dirs as necessary.
  - Writer should be manually closed after use (with zero-arity call).
  - Flushes after every write.
  - Thread safe, locks on single file stream.
source

format-error-fnclj/s

(format-error-fn)
(format-error-fn {:as _opts})
Experimental, subject to change.
Returns a (fn format [error]) that:
  - Takes a platform error (`Throwable` or `js/Error`).
  - Returns a formatted human-readable string
source

format-inst-fnclj/s≠

clj
(format-inst-fn)
(format-inst-fn {:keys [formatter zone]
                 :or {formatter java.time.format.DateTimeFormatter/ISO_INSTANT
                      zone java.time.ZoneOffset/UTC}})
cljs
(format-inst-fn)
(format-inst-fn {:keys [formatter]})
Experimental, subject to change without notice.

Returns a (fn format [instant]) that:
  - Takes a platform instant (`java.time.Instant` or `js/Date`).
  - Returns a formatted human-readable string.

Options:
  `:zone` (Clj only) `java.time.ZoneOffset` (defaults to UTC).
  `:formatter`
    `java.time.format.DateTimeFormatter` (Clj) or
    `goog.i18n.DateTimeFormat` (Cljs),

    Defaults to `ISO8601` formatter (`YYYY-MM-DDTHH:mm:ss.sssZ`),
    e.g.: "2011-12-03T10:15:130Z".
source

format-nsecs-fnclj/s

(format-nsecs-fn)
(format-nsecs-fn {:as _opts})
Experimental, subject to change.
Returns a (fn format [nanosecs]) that:
  - Takes a long nanoseconds (e.g. runtime).
  - Returns a formatted human-readable string like:
    "1.00m", "4.20s", "340ms", "822μs", etc.
source

format-signal->edn-fnclj/s

(format-signal->edn-fn)
(format-signal->edn-fn
  {:keys [pr-edn-fn prep-fn]
   :or {pr-edn-fn pr-edn prep-fn (comp error-in-signal->maps minify-signal)}})
Experimental, subject to change.
Returns a (fn format->edn [signal]) that:
  - Takes a Telemere signal.
  - Returns edn string of the (minified) signal.
source

format-signal->json-fnclj/s≠

clj
(format-signal->json-fn)
(format-signal->json-fn {:keys [pr-json-fn prep-fn]
                         :or {prep-fn (comp error-in-signal->maps
                                            minify-signal)}})
cljs
(format-signal->json-fn)
(format-signal->json-fn
  {:keys [pr-json-fn prep-fn]
   :or {pr-json-fn pr-json prep-fn (comp error-in-signal->maps minify-signal)}})
Experimental, subject to change.
Returns a (fn format->json [signal]) that:
  - Takes a Telemere signal.
  - Returns JSON string of the (minified) signal.

(Clj only): An appropriate `:pr-json-fn` MUST be provided.
source

format-signal->prelude-fnclj/s

(format-signal->prelude-fn)
(format-signal->prelude-fn {:keys [format-inst-fn]
                            :or {format-inst-fn (format-inst-fn)}})
Experimental, subject to change.
Returns a (fn format [signal]) that:
  - Takes a Telemere signal.
  - Returns a formatted prelude string like:
    "2024-03-26T11:14:51.806Z INFO EVENT Hostname taoensso.telemere(2,21) ::ev-id - msg"
source

format-signal->str-fnclj/s

(format-signal->str-fn)
(format-signal->str-fn
  {:keys [format-signal->prelude-fn format-nsecs-fn format-error-fn]
   :or {format-signal->prelude-fn (format-signal->prelude-fn)
        format-nsecs-fn (format-nsecs-fn)
        format-error-fn (format-error-fn)}})
Experimental, subject to change.
Returns a (fn format->str [signal]) that:
  - Takes a Telemere signal.
  - Returns a formatted string intended for text consoles, etc.
source

host-ipclj

(host-ip)
(host-ip timeout-msecs timeout-val)
Returns cached local host IP address string, or `timeout-val` (default "UnknownHost").
source

hostnameclj

(hostname)
(hostname timeout-msecs timeout-val)
Returns cached local hostname string, or `timeout-val` (default "UnknownHost").
source

js-console-loggercljs

(js-console-logger level)
Returns JavaScript console logger to match given signal level:
  `:trace` -> `js/console.trace`,
  `:error` -> `js/console.error`, etc.

Defaults to `js.console.log` for unmatched signal levels.
NB: assumes that `js/console` exists, handler constructors should check first!
source

minify-signalclj/s

(minify-signal signal)
Experimental, subject to change.
Returns minimal signal map, removing:
  - Keys with nil values, and
  - Keys with redundant values (`:kvs`, `:location`, `:file`).

Useful when serializing signals to edn/JSON/etc.
source

newlineclj/s

Single system newline
source

pr-ednclj/s

(pr-edn x)
Prints given arg to an edn string readable with `read-edn`.
source

pr-jsoncljs

(pr-json x)
Returns given Cljs argument as JSON string.
source

remove-kvsclj/s

(remove-kvs signal)
Returns the given signal without user-level kvs.
source

thread-idclj

(thread-id)
Returns long id of current thread.
source

thread-nameclj

(thread-name)
Returns string name of current thread.
source

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close