npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

typed-slack-client

v1.0.15

Published

Generates detailed types for Slack WebClient interface based on Slack's OpenAPI V2 specifications

Downloads

35

Readme

Typed Slack Client

Generates detailed types for Slack WebClient interface based on Slack's OpenAPI V2 specifications

Usage

Results of code generation are published to npm as typed-slack-client

npm install typed-slack-client

Import the creation method and types:

import { createTypedSlackWebClient } from  "typed-slack-client/typedSlackWebClient";
import { Definitions } from  "typed-slack-client/slackTypes";

Create a client (yourToken can be undefined):

const slack = createTypedSlackWebClient(yourToken, {
	logLevel:  LogLevel.DEBUG
});

Use the client:

//Client mirrors default Slack client API

let  listResponse = await slack.users.list({ token: token });

//listResponse will be a union of a Success type and an Error type
//Check response.ok to tell if the call was successful

if(listResponse.ok){
	//Here listResponse is an success type, listResponse.error will not be defined and will not be autocompleted

	console.log(listResponse.members)
}else{
	//Here listResponse is an error type, listResponse.members will not be defined and will not be autocompleted

	console.log(listResponse.error)
}

createTypedSlackWebClient accepts the same arguments as the default WebClient constructor in the offical Slack client library, @slack/client

Generate client definitions

Run npm run-script build from the top level project and a set of definitions will be generated in the dist folder.

This operation requires network connectivity, to download the latest API definition

Missing Type Definitions

Slack's Open API definitions are out of date. This means several types will not be included.

Success types include an index signature allowing them to return any fields.

Error types do no include an index signature, please create an issue if there are missing error fields.