JSPM

pino-slack-webhook

1.2.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 91
  • Score
    100M100P100Q74800F
  • License MIT

🌲 Send message to Slack via webhook

Package Exports

  • pino-slack-webhook

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pino-slack-webhook) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

pino-slack-webhook

🌲 Send message to Slack via webhook

Installation

npm i pino-slack-webhook

Usage

$ pino-slack-webhook --help
pino-slack-webhook [options]

Sending
  -m, --method
             [string] [choices: "POST", "PUT", "PATCH", "GET"] [default: "POST"]
      --url      url to send logs to                         [string] [required]
  -t, --timeout  timeout (in ms) to send logs in bucket that are not filled
                                                        [number] [default: 5000]

Basic Auth
  -u, --username  basic auth username                                   [string]
  -p, --password  basic auth password                                   [string]

Retry
  -r, --retries   number of retries to do if failure       [number] [default: 5]
  -i, --interval  interval (in ms) to retry sending if failure
                                                        [number] [default: 1000]

Slack
      --unfurlLinks  Enables or disables link unfurling
                                                      [boolean] [default: false]
      --unfurlMedia  Enables or disables media unfurling
                                                      [boolean] [default: false]
  -m, --mrkdwn       Enables or disables mrkdwn formatting
                                                       [string] [default: false]

Options:
      --help     Show help                                             [boolean]
      --version  Show version number                                   [boolean]
  -l, --log      log to console as well               [boolean] [default: false]
      --silent   silence pino-slack-webhook logs for failures and retries
                                                      [boolean] [default: false]
  -c, --config   path to json config                                    [string]

Environment Variables

All options can be defined in the environment and are prefixed with PINO_SLACK_WEBHOOK_. All camel-cased options are parsed with delimiters of _.

e.g. The option unfurlLinks as an env var would be PINO_SLACK_WEBHOOK_UNFURL_LINKS.

URL

Example

node . | pino-slack-webhook --url=https://hooks.slack.com/services/xxx/xxx/xxx

Body Type

  • ndjson - New-line delimited JSON. See ndjson

  • json - Standard JSON sending of data. Logs are sent in the format of

    {
      "logs": [...logs]
    }

Auth

Currently only basic auth is implemented for the CLI usage. For header usage, you can see the API usage.

API

You can also use this module as a pino destination.

This will use the same batching function like the CLI usage. If the batch length is not reached within a certain time (timeout), it will auto "flush".

createWriteStream

The options passed to this follow the same values as the CLI defined above.

Property Type Required/Default
url string REQUIRED
log boolean false
silent boolean false
method string "POST"
username string
password string
headers Record<string,string>
retries number 5
interval number 1000
timeout number 5000
unfurlLinks boolean false
unfurlMedia boolean false
mrkdwn boolean false
config string
import { createWriteStream } from 'pino-slack-webhook';

const stream = createWriteStream({
  url: 'https://hooks.slack.com/services/xxx/xxx/xxx',
});

const logger = pino(
  {
    level: 'info',
  },
  stream,
);

logger.info('test log!');