@invisible/slack-wrap

    1.1.3 • Public • Published

    slack-wrap

    CircleCI

    This module wraps the Slack Web Client and does several things to enhance the API.

    Install

    yarn add invisible-tech/slack-wrap
    

    Usage

    'use strict'
     
    require('dotenv').config() // Loads .env
    const { WebClient } = require('@slack/client')
    const { factory, methods } = require('@invisible/slack-wrap')
     
    const accessToken = process.env.SLACK_API_TOKEN || ''
    const slack = factory({
      accessToken,
      teamId: 'T012345',
      cachedPaths: [
        { path:'channels.list', ttl: 60000 },
        { path:'users.info' },
      ],
      methods,
    })
     
    slack.chat.postMessage({
      channel: 'C6BQ7JA0J',
      icon_emoji: ':joy:',
      text: 'stuff',
      username: 'wooo2',
    })
    .then(console.log)
    .catch(console.error)

    Features

    Destructured arguments

    All API methods that take arguments will accept a single object. This is an improvement on using positional arguments, which require you to remember the order.

    Cached methods

    All API methods can be optionally cached in memory, with an optional TTL (default is 60 seconds). This will reduce your total number of API calls and prevent you from hitting the throttling limit. You determine which methods to cache by passing in a cachedPaths argument to factory.

    The cachedPaths argument should be an Array of Objects, where each item is of the form { path: 'x.y', ttl: 30000 } or { path: 'x.y' } (to use the default ttl).

    Additional methods

    You can add any additional methods you wish by passing them in as the methods argument to factory. The methods argument is an Object containing the methods you wish to add. These methods should all take a slack object as an argument, then use that given slack object to perform the additional API calls, etc. See methods/message.js for an example.

    Keywords

    none

    Install

    npm i @invisible/slack-wrap

    DownloadsWeekly Downloads

    21

    Version

    1.1.3

    License

    MIT

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar