https://github.com/aneldev/dyna-slack
https://github.com/aneldev/dyna-slack
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/aneldev/dyna-slack
- Owner: aneldev
- License: mit
- Created: 2020-02-03T18:32:03.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-11T23:11:42.000Z (over 3 years ago)
- Last Synced: 2025-08-09T05:02:47.742Z (10 months ago)
- Language: JavaScript
- Size: 3.87 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Dyna Slack
Simplifies the way to post a message on Slack Channel as a bot.
Written in Typescript. Working in Node.
_Read at the bottom how to create your Webhook URL._
# Example
## Simple
```
import {
DynaSlack,
formatLink,
formatSnippetText,
formatSnippetObject,
} from "dyna-slack";
const dynaSlack = new DynaSlack({
channels: {
"my-app-fire": {
webhookUrl: "",
}
}
});
dynaSlack.post({
clannelName: "my-app-fire",
message: "Hello there"
})
.catch(console.error);
```
## With formatters
Formatters are few functions that apply the Slack's markup for you.
```
import {
DynaSlack,
formatLink,
formatSnippetText,
formatSnippetObject,
} from "dyna-slack";
const dynaSlack = new DynaSlack({
channels: {
"my-app-fire": {
webhookUrl: "",
}
}
});
dynaSlack.post({
clannelName: "my-app-fire",
message: [
new Date,
"Hello world",
"*Strong* _italic_",
`For more info click ${formatLink({url: "http://www.anel.co", label: "here"})}!`,
`Inline snippet ${formatSnippetText({text: 'foo: "bar"'})} is correct.`,
`New line snippet ${formatSnippetText({title: "Example", text: 'foo: "bar"', newLine: true})} is correct.`,
`New line snippet ${formatSnippetText({title: "Variable Example", text: 'foo: "bar"', newLine: true})} is correct.`,
`Object snippet ${formatSnippetObject({title: "Object Example", object: {name: "John Smith"}, newLine: true})} is correct.`,
`Object snippet ${formatSnippetObject({title: "Large Object Example", object: slackConnection, newLine: true})} is correct.`,
].join("\n")
})
.catch(console.error);
```
# Methods
## Post
```
post({
channelName: string;
username: string;
message: string;
}): Promise;
```
# Formatters
## formatLink
To create a link.
```
formatLink = (
{
url,
label,
}: {
url: string;
label?: string;
}
): string
```
## formatSnippetText
To create a snippet.
```
formatSnippetText = (
{
title,
text,
newLine,
}: {
title?: string;
text: string;
newLine?: boolean; // default is false
}
): string
```
## formatSnippetObject
Stringifies an object and formats it as a snippet.
```
formatSnippetObject = (
{
title,
object,
newLine,
}: {
title?: string;
object: any;
newLine?: boolean; // default is false
}
): string
```
# How to create your Webhook URL
- Open [slack.com](https://www.slack.com)
- Your Workspaces
- Choose one
- Click on the name of the workspace right top
- Select "Administration"
- Select "Manage Apps"
- Select "Apps"
- Add "Incoming WebHooks"
- Click "Add to Slack" (this is needed for each channel)
- Select the desired channel and get the "Webhook URL"