starlight rewrite (#64)
* feat: migrate to starlight * fix: add .gitignore * fix: delete node_modules directory * chore: update lockfile * fix: remove .DS_STORE files * feat: add github pages workflow * feat: add netlify.toml, remove unneeded import on sponsors page * fix: fix netlify publish directory * fix: add .nvmrc * fix: add checking for typedoc file * fix: fix github pages script `bun build` -> `bun run build` * fix: fix publish_dir in github pages workflow * feat: add custom Head file for open-graph * fix: hopefully fix deploying * fix: fix git repo path * fix: maybe fix build? * fix: maybe fix build idk at this point * fix: this should fix typedoc but it's throwing errors for no reason * fix: my disappointment is immeasurable and my day is ruined * fix: make API docs collapsed by default * fix: remove sern-handler before git clone * fix: fix og:image for sern by adding sern-logo to public folder * fix: fix image path i think * fix: fix services tabs * on push no branch (for testing) * also add workflow dispatch * move to automata pushing & change back the branch rule * remove sern capitalization --------- Co-authored-by: Izan Gil <66965250+SrIzan10@users.noreply.github.com>
39
.github/workflows/docusaurus.yml
vendored
@@ -1,39 +0,0 @@
|
||||
name: Deploy to GitHub Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
# Review gh actions docs if you want to further define triggers, paths, etc
|
||||
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: Deploy to GitHub Pages
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
cache: yarn
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable
|
||||
- name: Build website
|
||||
run: yarn build
|
||||
|
||||
# Popular action to deploy to GitHub Pages:
|
||||
# Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
|
||||
- name: Deploy to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# Build output to publish to the `gh-pages` branch:
|
||||
publish_dir: ./build
|
||||
# The following lines assign commit authorship to the official
|
||||
# GH-Actions bot for deploys to `gh-pages` branch:
|
||||
# https://github.com/actions/checkout/issues/13#issuecomment-724415212
|
||||
# The GH actions bot is used by default if you didn't specify the two fields.
|
||||
# You can swap them out with your own user credentials.
|
||||
user_name: github-actions[bot]
|
||||
user_email: 41898282+github-actions[bot]@users.noreply.github.com
|
||||
30
.github/workflows/github-pages.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: Deploy to GitHub Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: Deploy to GitHub Pages
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: oven-sh/setup-bun@v1
|
||||
with:
|
||||
bun-version: latest
|
||||
|
||||
- name: Install Dependencies
|
||||
run: bun install
|
||||
|
||||
- name: Build
|
||||
run: rm -rf sern-handler && git clone https://github.com/sern-handler/handler sern-handler && cd sern-handler && bun install && cd .. && bun run build
|
||||
|
||||
- name: Deploy to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.AUTOMATA_TOKEN }}
|
||||
publish_dir: ./dist
|
||||
user_name: sernbot
|
||||
user_email: ${{ secrets.AUTOMATA_EMAIL }}
|
||||
34
.gitignore
vendored
@@ -1,20 +1,24 @@
|
||||
# Dependencies
|
||||
/node_modules
|
||||
# build output
|
||||
dist/
|
||||
# generated types
|
||||
.astro/
|
||||
|
||||
# Production
|
||||
/build
|
||||
# dependencies
|
||||
node_modules/
|
||||
sern-handler
|
||||
|
||||
# Generated files
|
||||
.docusaurus
|
||||
.cache-loader
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.yarn/install-state.gz
|
||||
# logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
|
||||
# environment variables
|
||||
.env
|
||||
.env.production
|
||||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
||||
|
||||
sern-handler
|
||||
@@ -1 +0,0 @@
|
||||
nodeLinker: node-modules
|
||||
30
404.html
@@ -1,30 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html style="height:100%">
|
||||
<head>
|
||||
<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1, shrink-to-fit=no" >
|
||||
<link rel="icon" href="./assets/images/favicon.ico">
|
||||
<meta name="theme-color" content="#fff">
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<meta property="og:title" content="sern">
|
||||
<meta property="og:description" content="sern’s clean, modern and web interface.">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://sern-handler.js.org/">
|
||||
<meta property="og:locale" content="en_US">
|
||||
<meta name="description" content="sern’s clean, modern and user-friendly web interface.">
|
||||
|
||||
<title>sern - Page Not Found</title>
|
||||
</head>
|
||||
<body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;">
|
||||
<div style="height:auto; min-height:100%; "> <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;">
|
||||
<h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">404</h1>
|
||||
<h2 style="margin-top:20px;font-size: 30px;">Not Found
|
||||
</h2>
|
||||
<p>The link you visited may be broken or invalid.</p>
|
||||
<div class="button">
|
||||
<h2>
|
||||
<a href="http://sern-handler.js.org" title="Back to home" style="color: #444;">Back to homepage</a>
|
||||
</h2>
|
||||
</div>
|
||||
</div></div></body></html>
|
||||
|
||||
21
LICENSE
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Sern
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,3 +1,3 @@
|
||||
# Website
|
||||
# Website (v2)
|
||||
|
||||
sern's clean, modern and user-friendly web interface.
|
||||
sern's clean, modern, and user-friendly web interface. (now built with [Starlight](https://starlight.astro.build/))
|
||||
|
||||
95
astro.config.mjs
Normal file
@@ -0,0 +1,95 @@
|
||||
import { defineConfig } from 'astro/config';
|
||||
import starlight from '@astrojs/starlight';
|
||||
import starlightBlog from 'starlight-blog';
|
||||
import tailwind from "@astrojs/tailwind";
|
||||
import starlightDocSearch from '@astrojs/starlight-docsearch';
|
||||
import starlightTypeDoc, { typeDocSidebarGroup } from 'starlight-typedoc';
|
||||
|
||||
export default defineConfig({
|
||||
integrations: [starlight({
|
||||
title: 'sern',
|
||||
social: {
|
||||
github: 'https://github.com/sern-handler',
|
||||
discord: 'https://discord.gg/DwbF5H5JgQ',
|
||||
},
|
||||
components: {
|
||||
ThemeSelect: './src/components/ThemeSelect.astro',
|
||||
Head: './src/components/Head.astro',
|
||||
},
|
||||
logo: {
|
||||
src: './src/assets/logo/navbar-icon.png',
|
||||
replacesTitle: true,
|
||||
},
|
||||
customCss: [
|
||||
'./src/styles/global.css',
|
||||
],
|
||||
sidebar: [
|
||||
typeDocSidebarGroup,
|
||||
{
|
||||
label: 'CLI',
|
||||
autogenerate: { directory: 'cli' },
|
||||
},
|
||||
{
|
||||
label: 'Guide',
|
||||
items: [
|
||||
{
|
||||
label: 'Getting Started',
|
||||
autogenerate: { directory: 'guide/getting-started' },
|
||||
},
|
||||
{
|
||||
label: 'Walkthrough',
|
||||
autogenerate: { directory: 'guide/walkthrough' },
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
plugins: [
|
||||
starlightDocSearch({
|
||||
appId: 'AA9S5J9NYT',
|
||||
apiKey: 'ccfe6abc4d12ac6f882565a9d0caafb1',
|
||||
indexName: 'sern',
|
||||
}),
|
||||
starlightBlog({
|
||||
authors: {
|
||||
jacoobes: {
|
||||
name: 'jacoobes',
|
||||
title: 'Head Dev',
|
||||
url: 'https://github.com/jacoobes',
|
||||
picture: 'https://github.com/jacoobes.png',
|
||||
},
|
||||
ethan: {
|
||||
name: 'Sr Izan',
|
||||
title: 'Head Dev',
|
||||
url: 'https://github.com/SrIzan10',
|
||||
picture: 'https://github.com/SrIzan10.png',
|
||||
},
|
||||
sern: {
|
||||
name: 'sern Team',
|
||||
url: 'https://github.com/sern-handler',
|
||||
picture: 'https://github.com/sernbot.png',
|
||||
},
|
||||
murtatrxx: {
|
||||
name: 'Murtatrxx',
|
||||
title: 'Head Dev',
|
||||
url: 'https://github.com/Murtatrxx',
|
||||
picture: 'https://github.com/Murtatrxx.png',
|
||||
},
|
||||
duro: {
|
||||
name: 'Duro',
|
||||
title: 'Developer',
|
||||
url: 'https://github.com/DuroCodes',
|
||||
picture: 'https://github.com/DuroCodes.png',
|
||||
},
|
||||
}
|
||||
}),
|
||||
starlightTypeDoc({
|
||||
tsconfig: './sern-handler/tsconfig.json',
|
||||
entryPoints: ['./sern-handler/src/index.ts'],
|
||||
autogenerate: {
|
||||
directory: 'api',
|
||||
},
|
||||
sidebar: { collapsed: true },
|
||||
}),
|
||||
],
|
||||
}), tailwind()]
|
||||
});
|
||||
@@ -1,3 +0,0 @@
|
||||
module.exports = {
|
||||
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
||||
};
|
||||
@@ -1,24 +0,0 @@
|
||||
jacoobes:
|
||||
name: jacoobes
|
||||
title: Head Dev
|
||||
url: https://github.com/jacoobes
|
||||
image_url: https://github.com/jacoobes.png
|
||||
Sr Izan:
|
||||
name: Sr Izan
|
||||
title: Developer
|
||||
url: https://github.com/SrIzan10
|
||||
image_url: https://github.com/SrIzan10.png
|
||||
sern:
|
||||
name: sern Team
|
||||
url: https://github.com/sern-handler
|
||||
image_url: https://github.com/sernbot.png
|
||||
Murtatrxx:
|
||||
name: Murtatrxx
|
||||
title: Developer
|
||||
url: https://github.com/Murtatrxx
|
||||
image_url: https://github.com/Murtatrxx.png
|
||||
Duro:
|
||||
name: Duro
|
||||
title: Developer
|
||||
url: https://github.com/DuroCodes
|
||||
image_url: https://github.com/DuroCodes.png
|
||||
@@ -1,206 +0,0 @@
|
||||
// @ts-check
|
||||
// Note: type annotations allow type checking and IDEs autocompletion
|
||||
|
||||
const lightCodeTheme = require('prism-react-renderer').themes.nightOwlLight;
|
||||
const darkCodeTheme = require('prism-react-renderer').themes.oceanicNext;
|
||||
|
||||
/** @type {import('@docusaurus/types').Config} */
|
||||
const config = {
|
||||
title: 'sern - Handlers. Redefined.',
|
||||
tagline: 'With the support of the community made plugins and a powerful CLI, it\'s more than just a handler.',
|
||||
url: 'https://sern.dev',
|
||||
baseUrl: '/',
|
||||
onBrokenLinks: 'ignore',
|
||||
onBrokenMarkdownLinks: 'warn',
|
||||
favicon: '/img/favicon.ico', // this currently not working
|
||||
|
||||
// GitHub pages deployment config.
|
||||
// If you aren't using GitHub pages, you don't need these.
|
||||
organizationName: 'sern-handler', // Usually your GitHub org/user name.
|
||||
projectName: 'website', // Usually your repo name.
|
||||
deploymentBranch: 'main',
|
||||
trailingSlash: false,
|
||||
|
||||
// Even if you don't use internalization, you can use this field to set useful
|
||||
// metadata like html lang. For example, if your site is Chinese, you may want
|
||||
// to replace "en" with "zh-Hans".
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en']
|
||||
},
|
||||
markdown: {
|
||||
format: 'detect'
|
||||
},
|
||||
presets: [
|
||||
[
|
||||
'classic',
|
||||
/** @type {import('@docusaurus/preset-classic').Options} */
|
||||
({
|
||||
docs: {
|
||||
sidebarPath: require.resolve('./sidebars.js'),
|
||||
editUrl:
|
||||
'https://github.com/sern-handler/website/edit/main/',
|
||||
},
|
||||
blog: {
|
||||
showReadingTime: true,
|
||||
// Please change this to your repo.
|
||||
// Remove this to remove the "edit this page" links.
|
||||
editUrl:
|
||||
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
|
||||
blogSidebarCount: 'ALL',
|
||||
},
|
||||
pages: {
|
||||
path: 'src/pages',
|
||||
routeBasePath: '/',
|
||||
include: ['**/*.{js,jsx,ts,tsx,md,mdx}'],
|
||||
exclude: [
|
||||
'**/_*.{js,jsx,ts,tsx,md,mdx}',
|
||||
'**/_*/**',
|
||||
'**/*.test.{js,jsx,ts,tsx}',
|
||||
'**/__tests__/**',
|
||||
],
|
||||
},
|
||||
theme: {
|
||||
customCss: require.resolve('./src/css/custom.css'),
|
||||
},
|
||||
}),
|
||||
],
|
||||
],
|
||||
|
||||
themeConfig:
|
||||
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
||||
({
|
||||
image: 'https://sern.dev/img/logo.png',
|
||||
algolia: {
|
||||
appId: 'AA9S5J9NYT',
|
||||
apiKey: 'ccfe6abc4d12ac6f882565a9d0caafb1',
|
||||
indexName: 'sern',
|
||||
insights: true,
|
||||
container: 'div',
|
||||
debug: false,
|
||||
contextualSearch: true,
|
||||
externalUrlRegex: 'external\\.com|domain\\.com',
|
||||
replaceSearchResultPathname: {
|
||||
from: '/docs/api',
|
||||
to: '/docs/api',
|
||||
},
|
||||
searchParameters: {},
|
||||
searchPagePath: 'search',
|
||||
},
|
||||
navbar: {
|
||||
title: 'Home',
|
||||
logo: {
|
||||
alt: 'logo logo',
|
||||
src: 'img/favicon.ico',
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: 'doc',
|
||||
docId: 'intro',
|
||||
position: 'left',
|
||||
label: 'Docs & Guide',
|
||||
},
|
||||
{ to: '/blog', label: 'Blog', position: 'left' },
|
||||
{
|
||||
href: 'https://github.com/sern-handler',
|
||||
label: 'GitHub',
|
||||
position: 'right',
|
||||
},
|
||||
{
|
||||
to: '/plugins',
|
||||
label: 'Plugins',
|
||||
position: 'left'
|
||||
}
|
||||
],
|
||||
},
|
||||
footer: {
|
||||
style: 'dark',
|
||||
links: [
|
||||
{
|
||||
title: 'Information',
|
||||
items: [
|
||||
{
|
||||
label: 'Docs & Guide',
|
||||
to: '/docs/intro',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Community',
|
||||
items: [
|
||||
{
|
||||
label: 'Stack Overflow',
|
||||
href: 'https://stackoverflow.com/questions/tagged/sern-handler',
|
||||
},
|
||||
{
|
||||
label: 'Discord',
|
||||
href: 'https://discord.gg/DwbF5H5JgQ',
|
||||
},
|
||||
{
|
||||
label: 'Open Collective',
|
||||
href: 'https://opencollective.com/sern'
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'More',
|
||||
items: [
|
||||
{
|
||||
label: 'Blog',
|
||||
to: '/blog',
|
||||
},
|
||||
{
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/sern-handler',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
copyright: `Built with ❤️ by the sern Handler team and its contributors`,
|
||||
},
|
||||
metadata: [
|
||||
{ name: 'og:title', content: 'sern - Handlers. Redefined.' },
|
||||
{ name: 'og:description', content: 'A modular, customizable, fast Discord.js framework to streamline bot development' },
|
||||
{ name: 'og:url', content: 'https://sern.dev' },
|
||||
{ name: 'og:type', content: 'website' },
|
||||
{ name: 'twitter:site', content: '@sern-handler' },
|
||||
{ property: 'og:image:alt', content: 'sernlogo' },
|
||||
{ name: 'twitter:title', content: 'sern - Handlers. Redefined.' },
|
||||
{ name: 'twitter:description', content: 'A modular, customizable, fast Discord.js framework to streamline bot development' },
|
||||
{ name: 'keywords', content: 'discord, bot, handler, framework, documentation, sern' },
|
||||
{ name: 'twitter:image', content: 'https://sern.dev/img/logo.png' },
|
||||
{ name: 'twitter:url', content: 'https://sern.dev' },
|
||||
{ property: 'og:image:height', content: '512' },
|
||||
{ property: 'og:image:width', content: '1024' },
|
||||
{ name: 'theme-color', content: '#F25186' }
|
||||
],
|
||||
prism: {
|
||||
theme: lightCodeTheme,
|
||||
darkTheme: darkCodeTheme,
|
||||
},
|
||||
}),
|
||||
plugins: [
|
||||
[
|
||||
'docusaurus-plugin-typedoc',
|
||||
{
|
||||
//if you're editing website, please change this to your local branch of sern to generate documentation
|
||||
entryPoints: ['../sernHandlerV2/src/index.ts'],
|
||||
tsconfig: '../sernHandlerV2/tsconfig.json',
|
||||
},
|
||||
],
|
||||
[
|
||||
"@dipakparmar/docusaurus-plugin-umami",
|
||||
{
|
||||
websiteID: "e82ff65c-b08f-47b5-8e74-5c31cbcec0ad",
|
||||
analyticsDomain: "analytics.srizan.dev",
|
||||
scriptName: 'ua.js',
|
||||
dataAutoTrack: true,
|
||||
dataDoNotTrack: true,
|
||||
dataCache: true,
|
||||
dataDomains: "sern.dev",
|
||||
},
|
||||
]
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = config;
|
||||
@@ -1 +0,0 @@
|
||||
label: "API"
|
||||
@@ -1,97 +0,0 @@
|
||||
---
|
||||
id: "CommandExecutable"
|
||||
title: "Class: CommandExecutable<Type>"
|
||||
sidebar_label: "CommandExecutable"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
Will be removed in future
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `Type` | extends [`CommandType`](../enums/CommandType.md) = [`CommandType`](../enums/CommandType.md) |
|
||||
|
||||
## Constructors
|
||||
|
||||
### constructor
|
||||
|
||||
• **new CommandExecutable**<`Type`\>(): [`CommandExecutable`](CommandExecutable.md)<`Type`\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `Type` | extends [`CommandType`](../enums/CommandType.md) = [`CommandType`](../enums/CommandType.md) |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`CommandExecutable`](CommandExecutable.md)<`Type`\>
|
||||
|
||||
## Properties
|
||||
|
||||
### plugins
|
||||
|
||||
• **plugins**: [`AnyCommandPlugin`](../modules.md#anycommandplugin)[] = `[]`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:80](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L80)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• `Abstract` **type**: `Type`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:79](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L79)
|
||||
|
||||
___
|
||||
|
||||
### \_instance
|
||||
|
||||
▪ `Static` `Private` **\_instance**: [`CommandModule`](../modules.md#commandmodule)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:81](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L81)
|
||||
|
||||
## Methods
|
||||
|
||||
### execute
|
||||
|
||||
▸ **execute**(`...args`): `unknown`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `...args` | `CommandArgs`<`Type`, [`Control`](../enums/PluginType.md#control)\> |
|
||||
|
||||
#### Returns
|
||||
|
||||
`unknown`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:92](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L92)
|
||||
|
||||
___
|
||||
|
||||
### getInstance
|
||||
|
||||
▸ **getInstance**(): [`CommandModule`](../modules.md#commandmodule)
|
||||
|
||||
#### Returns
|
||||
|
||||
[`CommandModule`](../modules.md#commandmodule)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:83](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L83)
|
||||
@@ -1,90 +0,0 @@
|
||||
---
|
||||
id: "DefaultErrorHandling"
|
||||
title: "Class: DefaultErrorHandling"
|
||||
sidebar_label: "DefaultErrorHandling"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.0.0
|
||||
Version 4.0.0 will internalize this api. Please refrain from using the defaults!
|
||||
|
||||
## Implements
|
||||
|
||||
- [`ErrorHandling`](../interfaces/ErrorHandling.md)
|
||||
|
||||
## Constructors
|
||||
|
||||
### constructor
|
||||
|
||||
• **new DefaultErrorHandling**(): [`DefaultErrorHandling`](DefaultErrorHandling.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
[`DefaultErrorHandling`](DefaultErrorHandling.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### #keepAlive
|
||||
|
||||
• `Private` **#keepAlive**: `number` = `1`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/error-handling.ts:13](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/error-handling.ts#L13)
|
||||
|
||||
## Methods
|
||||
|
||||
### crash
|
||||
|
||||
▸ **crash**(`err`): `never`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `err` | `Error` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`never`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
Version 4 will remove this method
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[ErrorHandling](../interfaces/ErrorHandling.md).[crash](../interfaces/ErrorHandling.md#crash)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/error-handling.ts:9](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/error-handling.ts#L9)
|
||||
|
||||
___
|
||||
|
||||
### updateAlive
|
||||
|
||||
▸ **updateAlive**(`err`): `void`
|
||||
|
||||
A function that is called on every throw.
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `err` | `Error` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[ErrorHandling](../interfaces/ErrorHandling.md).[updateAlive](../interfaces/ErrorHandling.md#updatealive)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/error-handling.ts:15](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/error-handling.ts#L15)
|
||||
@@ -1,136 +0,0 @@
|
||||
---
|
||||
id: "DefaultLogging"
|
||||
title: "Class: DefaultLogging"
|
||||
sidebar_label: "DefaultLogging"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.0.0
|
||||
Version 4.0.0 will internalize this api. Please refrain from using ModuleStore!
|
||||
|
||||
## Implements
|
||||
|
||||
- [`Logging`](../interfaces/Logging.md)
|
||||
|
||||
## Constructors
|
||||
|
||||
### constructor
|
||||
|
||||
• **new DefaultLogging**(): [`DefaultLogging`](DefaultLogging.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
[`DefaultLogging`](DefaultLogging.md)
|
||||
|
||||
## Methods
|
||||
|
||||
### date
|
||||
|
||||
▸ **date**(): `Date`
|
||||
|
||||
#### Returns
|
||||
|
||||
`Date`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/logger.ts:9](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/logger.ts#L9)
|
||||
|
||||
___
|
||||
|
||||
### debug
|
||||
|
||||
▸ **debug**(`payload`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | [`LogPayload`](../modules.md#logpayload) |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[Logging](../interfaces/Logging.md).[debug](../interfaces/Logging.md#debug)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/logger.ts:10](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/logger.ts#L10)
|
||||
|
||||
___
|
||||
|
||||
### error
|
||||
|
||||
▸ **error**(`payload`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | [`LogPayload`](../modules.md#logpayload) |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[Logging](../interfaces/Logging.md).[error](../interfaces/Logging.md#error)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/logger.ts:14](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/logger.ts#L14)
|
||||
|
||||
___
|
||||
|
||||
### info
|
||||
|
||||
▸ **info**(`payload`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | [`LogPayload`](../modules.md#logpayload) |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[Logging](../interfaces/Logging.md).[info](../interfaces/Logging.md#info)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/logger.ts:18](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/logger.ts#L18)
|
||||
|
||||
___
|
||||
|
||||
### warning
|
||||
|
||||
▸ **warning**(`payload`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | [`LogPayload`](../modules.md#logpayload) |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[Logging](../interfaces/Logging.md).[warning](../interfaces/Logging.md#warning)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/logger.ts:22](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/logger.ts#L22)
|
||||
@@ -1,195 +0,0 @@
|
||||
---
|
||||
id: "DefaultModuleManager"
|
||||
title: "Class: DefaultModuleManager"
|
||||
sidebar_label: "DefaultModuleManager"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.0.0
|
||||
Version 4.0.0 will internalize this api. Please refrain from using DefaultModuleManager!
|
||||
|
||||
## Implements
|
||||
|
||||
- [`ModuleManager`](../interfaces/ModuleManager.md)
|
||||
|
||||
## Constructors
|
||||
|
||||
### constructor
|
||||
|
||||
• **new DefaultModuleManager**(`moduleStore`): [`DefaultModuleManager`](DefaultModuleManager.md)
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `moduleStore` | [`CoreModuleStore`](../interfaces/CoreModuleStore.md) |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`DefaultModuleManager`](DefaultModuleManager.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/module-manager.ts:11](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/module-manager.ts#L11)
|
||||
|
||||
## Properties
|
||||
|
||||
### moduleStore
|
||||
|
||||
• `Private` **moduleStore**: [`CoreModuleStore`](../interfaces/CoreModuleStore.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/module-manager.ts:11](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/module-manager.ts#L11)
|
||||
|
||||
## Methods
|
||||
|
||||
### get
|
||||
|
||||
▸ **get**(`id`): `undefined` \| `Module`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `id` | `string` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`undefined` \| `Module`
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[ModuleManager](../interfaces/ModuleManager.md).[get](../interfaces/ModuleManager.md#get)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/module-manager.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/module-manager.ts#L34)
|
||||
|
||||
___
|
||||
|
||||
### getByNameCommandType
|
||||
|
||||
▸ **getByNameCommandType**<`T`\>(`name`, `commandType`): `undefined` \| [`CommandModuleDefs`](../interfaces/CommandModuleDefs.md)[`T`]
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends [`CommandType`](../enums/CommandType.md) |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `name` | `string` |
|
||||
| `commandType` | `T` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`undefined` \| [`CommandModuleDefs`](../interfaces/CommandModuleDefs.md)[`T`]
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[ModuleManager](../interfaces/ModuleManager.md).[getByNameCommandType](../interfaces/ModuleManager.md#getbynamecommandtype)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/module-manager.ts:14](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/module-manager.ts#L14)
|
||||
|
||||
___
|
||||
|
||||
### getMetadata
|
||||
|
||||
▸ **getMetadata**(`m`): `CommandMeta`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `m` | `Module` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`CommandMeta`
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[ModuleManager](../interfaces/ModuleManager.md).[getMetadata](../interfaces/ModuleManager.md#getmetadata)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/module-manager.ts:26](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/module-manager.ts#L26)
|
||||
|
||||
___
|
||||
|
||||
### getPublishableCommands
|
||||
|
||||
▸ **getPublishableCommands**(): [`CommandModule`](../modules.md#commandmodule)[]
|
||||
|
||||
#### Returns
|
||||
|
||||
[`CommandModule`](../modules.md#commandmodule)[]
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[ModuleManager](../interfaces/ModuleManager.md).[getPublishableCommands](../interfaces/ModuleManager.md#getpublishablecommands)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/module-manager.ts:41](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/module-manager.ts#L41)
|
||||
|
||||
___
|
||||
|
||||
### set
|
||||
|
||||
▸ **set**(`id`, `path`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `id` | `string` |
|
||||
| `path` | [`CommandModule`](../modules.md#commandmodule) |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[ModuleManager](../interfaces/ModuleManager.md).[set](../interfaces/ModuleManager.md#set)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/module-manager.ts:37](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/module-manager.ts#L37)
|
||||
|
||||
___
|
||||
|
||||
### setMetadata
|
||||
|
||||
▸ **setMetadata**(`m`, `c`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `m` | `Module` |
|
||||
| `c` | `CommandMeta` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Implementation of
|
||||
|
||||
[ModuleManager](../interfaces/ModuleManager.md).[setMetadata](../interfaces/ModuleManager.md#setmetadata)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/services/module-manager.ts:22](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/services/module-manager.ts#L22)
|
||||
@@ -1,97 +0,0 @@
|
||||
---
|
||||
id: "EventExecutable"
|
||||
title: "Class: EventExecutable<Type>"
|
||||
sidebar_label: "EventExecutable"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
Will be removed in future
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `Type` | extends [`EventType`](../enums/EventType.md) |
|
||||
|
||||
## Constructors
|
||||
|
||||
### constructor
|
||||
|
||||
• **new EventExecutable**<`Type`\>(): [`EventExecutable`](EventExecutable.md)<`Type`\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `Type` | extends [`EventType`](../enums/EventType.md) |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`EventExecutable`](EventExecutable.md)<`Type`\>
|
||||
|
||||
## Properties
|
||||
|
||||
### plugins
|
||||
|
||||
• **plugins**: [`AnyEventPlugin`](../modules.md#anyeventplugin)[] = `[]`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:101](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L101)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• `Abstract` **type**: `Type`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:100](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L100)
|
||||
|
||||
___
|
||||
|
||||
### \_instance
|
||||
|
||||
▪ `Static` `Private` **\_instance**: [`EventModule`](../modules.md#eventmodule)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:103](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L103)
|
||||
|
||||
## Methods
|
||||
|
||||
### execute
|
||||
|
||||
▸ **execute**(`...args`): `unknown`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `...args` | `EventArgs`<`Type`, [`Control`](../enums/PluginType.md#control)\> |
|
||||
|
||||
#### Returns
|
||||
|
||||
`unknown`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:112](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L112)
|
||||
|
||||
___
|
||||
|
||||
### getInstance
|
||||
|
||||
▸ **getInstance**(): [`EventModule`](../modules.md#eventmodule)
|
||||
|
||||
#### Returns
|
||||
|
||||
[`EventModule`](../modules.md#eventmodule)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:104](https://github.com/sern-handler/handler/blob/9d5c6c7/src/core/modules.ts#L104)
|
||||
@@ -1,2 +0,0 @@
|
||||
label: "Classes"
|
||||
position: 3
|
||||
@@ -1,104 +0,0 @@
|
||||
---
|
||||
id: "SernError"
|
||||
title: "Enumeration: SernError"
|
||||
sidebar_label: "SernError"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Enumeration Members
|
||||
|
||||
### InvalidModuleType
|
||||
|
||||
• **InvalidModuleType** = ``"Detected an unknown module type"``
|
||||
|
||||
Throws when registering an invalid module.
|
||||
This means it is undefined or an invalid command type was provided
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/structures/errors.ts:9](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/structures/errors.ts#L9)
|
||||
|
||||
___
|
||||
|
||||
### MismatchEvent
|
||||
|
||||
• **MismatchEvent** = ``"You cannot use message when an interaction fired or vice versa"``
|
||||
|
||||
A crash that occurs when accessing an invalid property of Context
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/structures/errors.ts:29](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/structures/errors.ts#L29)
|
||||
|
||||
___
|
||||
|
||||
### MismatchModule
|
||||
|
||||
• **MismatchModule** = ``"A module type mismatched with event emitted!"``
|
||||
|
||||
Attempted to lookup module in command module store. Nothing was found!
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/structures/errors.ts:17](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/structures/errors.ts#L17)
|
||||
|
||||
___
|
||||
|
||||
### MissingRequired
|
||||
|
||||
• **MissingRequired** = ``"@sern/client is required but was not found"``
|
||||
|
||||
Required Dependency not found
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/structures/errors.ts:37](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/structures/errors.ts#L37)
|
||||
|
||||
___
|
||||
|
||||
### NotSupportedInteraction
|
||||
|
||||
• **NotSupportedInteraction** = ``"This interaction is not supported."``
|
||||
|
||||
Unsupported interaction at this moment.
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/structures/errors.ts:21](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/structures/errors.ts#L21)
|
||||
|
||||
___
|
||||
|
||||
### NotSupportedYet
|
||||
|
||||
• **NotSupportedYet** = ``"This feature is not supported yet"``
|
||||
|
||||
Unsupported feature attempted to access at this time
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/structures/errors.ts:33](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/structures/errors.ts#L33)
|
||||
|
||||
___
|
||||
|
||||
### PluginFailure
|
||||
|
||||
• **PluginFailure** = ``"A plugin failed to call controller.next()"``
|
||||
|
||||
One plugin called `controller.stop()` (end command execution / loading)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/structures/errors.ts:25](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/structures/errors.ts#L25)
|
||||
|
||||
___
|
||||
|
||||
### UndefinedModule
|
||||
|
||||
• **UndefinedModule** = ``"A module could not be detected"``
|
||||
|
||||
Attempted to lookup module in command module store. Nothing was found!
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/structures/errors.ts:13](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/structures/errors.ts#L13)
|
||||
@@ -1,2 +0,0 @@
|
||||
label: "Enumerations"
|
||||
position: 2
|
||||
@@ -1,76 +0,0 @@
|
||||
---
|
||||
id: "index"
|
||||
title: "@sern/handler"
|
||||
sidebar_label: "Readme"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
<img src="https://raw.githubusercontent.com/sern-handler/.github/main/banner.png" width="900px" />
|
||||
</div>
|
||||
|
||||
<h1 align="center">Handlers. Redefined.</h1>
|
||||
<h4 align="center">A complete, customizable, typesafe, & reactive framework for discord bots</h4>
|
||||
|
||||
<div align="center" styles="margin-top: 10px">
|
||||
<img src="https://img.shields.io/badge/open-source-brightgreen" />
|
||||
<a href="https://www.npmjs.com/package/@sern/handler"><img src="https://img.shields.io/npm/v/@sern/handler?maxAge=3600" alt="NPM version" /></a>
|
||||
<a href="https://www.npmjs.com/package/@sern/handler"><img src="https://img.shields.io/npm/dt/@sern/handler?maxAge=3600" alt="NPM downloads" /></a>
|
||||
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-brightgreen" alt="License MIT" /></a>
|
||||
<a href="https://sern.dev"><img alt="docs.rs" src="https://img.shields.io/docsrs/docs" /></a>
|
||||
<img alt="Lines of code" src="https://img.shields.io/badge/total%20lines-2k-blue" />
|
||||
</div>
|
||||
|
||||
## Why?
|
||||
- For you. A framework that's tailored to your exact needs.
|
||||
- Lightweight. Does a lot while being small.
|
||||
- Latest features. Support for discord.js v14 and all of its interactions.
|
||||
- Start quickly. Plug and play or customize to your liking.
|
||||
- works with [bun](https://bun.sh/) and [node](https://nodejs.org/en) out the box!
|
||||
- Use it with TypeScript or JavaScript. CommonJS and ESM supported.
|
||||
- Active and growing community, always here to help. [Join us](https://sern.dev/discord)
|
||||
- Unleash its full potential with a powerful CLI and awesome plugins.
|
||||
|
||||
## 📜 Installation
|
||||
[Start here!!](https://sern.dev/docs/guide/walkthrough/new-project)
|
||||
|
||||
## 👶 Basic Usage
|
||||
<details><summary>ping.ts</summary>
|
||||
|
||||
```ts
|
||||
export default commandModule({
|
||||
type: CommandType.Slash,
|
||||
//Installed plugin to publish to discord api and allow access to owners only.
|
||||
plugins: [publish(), ownerOnly()],
|
||||
description: 'A ping pong command',
|
||||
execute(ctx) {
|
||||
ctx.reply('Hello owner of the bot');
|
||||
}
|
||||
});
|
||||
```
|
||||
</details>
|
||||
|
||||
## 🤖 Bots Using sern
|
||||
- [Community Bot](https://github.com/sern-handler/sern-community), the community bot for our [discord server](https://sern.dev/discord).
|
||||
- [Vinci](https://github.com/SrIzan10/vinci), the bot for Mara Turing.
|
||||
- [Bask](https://github.com/baskbotml/bask), Listen your favorite artists on Discord.
|
||||
- [ava](https://github.com/SrIzan10/ava), A discord bot that plays KNGI and Gensokyo Radio.
|
||||
- [Murayama](https://github.com/murayamabot/murayama), :pepega:
|
||||
- [Protector (WIP)](https://github.com/needhamgary/Protector), Just a simple bot to help enhance a private minecraft server.
|
||||
- [SmokinWeed 💨](https://github.com/Peter-MJ-Parker/sern-bud), A fun bot for a small - but growing - server.
|
||||
- [Man Nomic](https://github.com/jacoobes/man-nomic), A simple information bot to provide information to the nomic-ai discord community.
|
||||
- [Linear-Discord](https://github.com/sern-handler/linear-discord) Display and manage a linear dashboard.
|
||||
## 💻 CLI
|
||||
|
||||
It is **highly encouraged** to use the [command line interface](https://github.com/sern-handler/cli) for your project. Don't forget to view it.
|
||||
|
||||
## 🔗 Links
|
||||
|
||||
- [Official Documentation and Guide](https://sern.dev)
|
||||
- [Support Server](https://sern.dev/discord)
|
||||
|
||||
## 👋 Contribute
|
||||
- Read our contribution [guidelines](https://github.com/sern-handler/handler/blob/main/.github/CONTRIBUTING.md) carefully
|
||||
- Pull up on [issues](https://github.com/sern-handler/handler/issues) and report bugs
|
||||
- All kinds of contributions are welcomed.
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
id: "AutocompleteCommand"
|
||||
title: "Interface: AutocompleteCommand"
|
||||
sidebar_label: "AutocompleteCommand"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- `Omit`<[`Module`](Module.md), ``"name"`` \| ``"type"`` \| ``"plugins"`` \| ``"description"``\>
|
||||
|
||||
↳ **`AutocompleteCommand`**
|
||||
|
||||
## Properties
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`ctx`: `AutocompleteInteraction`<`CacheType`\>) => `unknown`
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`ctx`): `unknown`
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `ctx` | `AutocompleteInteraction`<`CacheType`\> |
|
||||
|
||||
##### Returns
|
||||
|
||||
`unknown`
|
||||
|
||||
#### Overrides
|
||||
|
||||
Omit.execute
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/module.ts:111](https://github.com/sern-handler/handler/blob/c1f6906/src/types/module.ts#L111)
|
||||
|
||||
___
|
||||
|
||||
### onEvent
|
||||
|
||||
• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
|
||||
|
||||
#### Overrides
|
||||
|
||||
Omit.onEvent
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/module.ts:110](https://github.com/sern-handler/handler/blob/c1f6906/src/types/module.ts#L110)
|
||||
@@ -1,88 +0,0 @@
|
||||
---
|
||||
id: "AutocompletePlugin"
|
||||
title: "Interface: AutocompletePlugin"
|
||||
sidebar_label: "AutocompletePlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- [`Plugin`](Plugin.md)
|
||||
|
||||
↳ **`AutocompletePlugin`**
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[description](Plugin.md#description)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`autocmp`: `AutocompleteInteraction`<`CacheType`\>, `controlller`: [`Controller`](Controller.md)) => `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`autocmp`, `controlller`): `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `autocmp` | `AutocompleteInteraction`<`CacheType`\> |
|
||||
| `controlller` | [`Controller`](Controller.md) |
|
||||
|
||||
##### Returns
|
||||
|
||||
`Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:73](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L73)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[name](Plugin.md#name)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:31](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L31)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Event`](../enums/PluginType.md#event)
|
||||
|
||||
#### Overrides
|
||||
|
||||
[Plugin](Plugin.md).[type](Plugin.md#type)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:72](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L72)
|
||||
@@ -1,45 +0,0 @@
|
||||
---
|
||||
id: "CommandError.Response"
|
||||
title: "Interface: Response"
|
||||
sidebar_label: "Response"
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
[CommandError](../namespaces/CommandError.md).Response
|
||||
|
||||
## Properties
|
||||
|
||||
### body
|
||||
|
||||
• `Optional` **body**: `ReplyOptions`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/command-error.ts:6](https://github.com/sern-handler/handler/blob/504cdee/src/core/structures/command-error.ts#L6)
|
||||
|
||||
___
|
||||
|
||||
### log
|
||||
|
||||
• `Optional` **log**: `Object`
|
||||
|
||||
#### Type declaration
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `message` | `unknown` |
|
||||
| `type` | keyof [`Logging`](Logging.md)<`unknown`\> |
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/command-error.ts:7](https://github.com/sern-handler/handler/blob/504cdee/src/core/structures/command-error.ts#L7)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: ``"fail"`` \| ``"continue"``
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/command-error.ts:5](https://github.com/sern-handler/handler/blob/504cdee/src/core/structures/command-error.ts#L5)
|
||||
@@ -1,72 +0,0 @@
|
||||
---
|
||||
id: "CommandPlugin"
|
||||
title: "Interface: CommandPlugin<T>"
|
||||
sidebar_label: "CommandPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
Use the newer helper functions and import { controller } from '@sern/handler'
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends [`CommandType`](../enums/CommandType.md) = [`CommandType`](../enums/CommandType.md) |
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/plugin.ts:51](https://github.com/sern-handler/handler/blob/c1f6906/src/types/plugin.ts#L51)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`m`: [`InitArgs`](InitArgs.md)<[`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\>, `controller?`: [`Deprecated`](../modules.md#deprecated)<``"Please import controller instead"``\>) => [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`m`, `controller?`): [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `m` | [`InitArgs`](InitArgs.md)<[`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
|
||||
| `controller?` | [`Deprecated`](../modules.md#deprecated)<``"Please import controller instead"``\> |
|
||||
|
||||
##### Returns
|
||||
|
||||
[`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/plugin.ts:53](https://github.com/sern-handler/handler/blob/c1f6906/src/types/plugin.ts#L53)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `string`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/plugin.ts:50](https://github.com/sern-handler/handler/blob/c1f6906/src/types/plugin.ts#L50)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Init`](../enums/PluginType.md#init)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/plugin.ts:52](https://github.com/sern-handler/handler/blob/c1f6906/src/types/plugin.ts#L52)
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
id: "ControlPlugin"
|
||||
title: "Interface: ControlPlugin<Args>"
|
||||
sidebar_label: "ControlPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `Args` | extends `any`[] = `any`[] |
|
||||
|
||||
## Properties
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (...`args`: `Args`) => [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`...args`): [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `...args` | `Args` |
|
||||
|
||||
##### Returns
|
||||
|
||||
[`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:73](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L73)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Control`](../enums/PluginType.md#control)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:72](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L72)
|
||||
@@ -1,43 +0,0 @@
|
||||
---
|
||||
id: "Controller"
|
||||
title: "Interface: Controller"
|
||||
sidebar_label: "Controller"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Properties
|
||||
|
||||
### next
|
||||
|
||||
• **next**: () => `Ok`<`void`\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): `Ok`<`void`\>
|
||||
|
||||
##### Returns
|
||||
|
||||
`Ok`<`void`\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:59](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L59)
|
||||
|
||||
___
|
||||
|
||||
### stop
|
||||
|
||||
• **stop**: () => `Err`<`void`\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): `Err`<`void`\>
|
||||
|
||||
##### Returns
|
||||
|
||||
`Err`<`void`\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:60](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L60)
|
||||
@@ -1,119 +0,0 @@
|
||||
---
|
||||
id: "CoreDependencies"
|
||||
title: "Interface: CoreDependencies"
|
||||
sidebar_label: "CoreDependencies"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Properties
|
||||
|
||||
### @sern/client
|
||||
|
||||
• **@sern/client**: () => [`Emitter`](Emitter.md)
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): [`Emitter`](Emitter.md)
|
||||
|
||||
##### Returns
|
||||
|
||||
[`Emitter`](Emitter.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/ioc.ts:28](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L28)
|
||||
|
||||
___
|
||||
|
||||
### @sern/emitter
|
||||
|
||||
• **@sern/emitter**: () => [`Emitter`](Emitter.md)
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): [`Emitter`](Emitter.md)
|
||||
|
||||
##### Returns
|
||||
|
||||
[`Emitter`](Emitter.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/ioc.ts:29](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L29)
|
||||
|
||||
___
|
||||
|
||||
### @sern/errors
|
||||
|
||||
• **@sern/errors**: () => [`ErrorHandling`](ErrorHandling.md)
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): [`ErrorHandling`](ErrorHandling.md)
|
||||
|
||||
##### Returns
|
||||
|
||||
[`ErrorHandling`](ErrorHandling.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/ioc.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L36)
|
||||
|
||||
___
|
||||
|
||||
### @sern/logger
|
||||
|
||||
• `Optional` **@sern/logger**: () => [`Logging`](Logging.md)<`unknown`\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): [`Logging`](Logging.md)<`unknown`\>
|
||||
|
||||
##### Returns
|
||||
|
||||
[`Logging`](Logging.md)<`unknown`\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/ioc.ts:37](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L37)
|
||||
|
||||
___
|
||||
|
||||
### @sern/modules
|
||||
|
||||
• **@sern/modules**: () => [`ModuleManager`](ModuleManager.md)
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): [`ModuleManager`](ModuleManager.md)
|
||||
|
||||
##### Returns
|
||||
|
||||
[`ModuleManager`](ModuleManager.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/ioc.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L35)
|
||||
|
||||
___
|
||||
|
||||
### @sern/store
|
||||
|
||||
• **@sern/store**: () => [`CoreModuleStore`](CoreModuleStore.md)
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
Will be removed and turned internal
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): [`CoreModuleStore`](CoreModuleStore.md)
|
||||
|
||||
##### Returns
|
||||
|
||||
[`CoreModuleStore`](CoreModuleStore.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/ioc.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L34)
|
||||
@@ -1,67 +0,0 @@
|
||||
---
|
||||
id: "Dependencies"
|
||||
title: "Interface: Dependencies"
|
||||
sidebar_label: "Dependencies"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Properties
|
||||
|
||||
### @sern/client
|
||||
|
||||
• **@sern/client**: [`Singleton`](../modules.md#singleton)<`__module`\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/handler.ts:40](https://github.com/sern-handler/handler/blob/c1f6906/src/types/handler.ts#L40)
|
||||
|
||||
___
|
||||
|
||||
### @sern/emitter
|
||||
|
||||
• **@sern/emitter**: [`Singleton`](../modules.md#singleton)<[`SernEmitter`](../classes/SernEmitter.md)\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/handler.ts:42](https://github.com/sern-handler/handler/blob/c1f6906/src/types/handler.ts#L42)
|
||||
|
||||
___
|
||||
|
||||
### @sern/errors
|
||||
|
||||
• **@sern/errors**: [`Singleton`](../modules.md#singleton)<[`ErrorHandling`](ErrorHandling.md)\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/handler.ts:45](https://github.com/sern-handler/handler/blob/c1f6906/src/types/handler.ts#L45)
|
||||
|
||||
___
|
||||
|
||||
### @sern/logger
|
||||
|
||||
• `Optional` **@sern/logger**: [`Singleton`](../modules.md#singleton)<[`Logging`](Logging.md)<`unknown`\>\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/handler.ts:41](https://github.com/sern-handler/handler/blob/c1f6906/src/types/handler.ts#L41)
|
||||
|
||||
___
|
||||
|
||||
### @sern/modules
|
||||
|
||||
• **@sern/modules**: [`Singleton`](../modules.md#singleton)<[`ModuleManager`](ModuleManager.md)\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/handler.ts:44](https://github.com/sern-handler/handler/blob/c1f6906/src/types/handler.ts#L44)
|
||||
|
||||
___
|
||||
|
||||
### @sern/store
|
||||
|
||||
• **@sern/store**: [`Singleton`](../modules.md#singleton)<[`ModuleStore`](../classes/ModuleStore.md)\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/handler.ts:43](https://github.com/sern-handler/handler/blob/c1f6906/src/types/handler.ts#L43)
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
id: "DependencyConfiguration"
|
||||
title: "Interface: DependencyConfiguration<T>"
|
||||
sidebar_label: "DependencyConfiguration"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends [`Dependencies`](Dependencies.md) |
|
||||
|
||||
## Properties
|
||||
|
||||
### build
|
||||
|
||||
• **build**: (`root`: `Container`<`Omit`<[`Dependencies`](Dependencies.md), ``"@sern/client"``\>, {}\>) => `Container`<`T`, {}\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`root`): `Container`<`T`, {}\>
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `root` | `Container`<`Omit`<[`Dependencies`](Dependencies.md), ``"@sern/client"``\>, {}\> |
|
||||
|
||||
##### Returns
|
||||
|
||||
`Container`<`T`, {}\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/handler.ts:68](https://github.com/sern-handler/handler/blob/c1f6906/src/types/handler.ts#L68)
|
||||
|
||||
___
|
||||
|
||||
### exclude
|
||||
|
||||
• `Optional` **exclude**: `Set`<``"@sern/logger"``\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/handler.ts:67](https://github.com/sern-handler/handler/blob/c1f6906/src/types/handler.ts#L67)
|
||||
@@ -1,90 +0,0 @@
|
||||
---
|
||||
id: "DiscordEmitterPlugin"
|
||||
title: "Interface: DiscordEmitterPlugin"
|
||||
sidebar_label: "DiscordEmitterPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- [`Plugin`](Plugin.md)
|
||||
|
||||
↳ **`DiscordEmitterPlugin`**
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[description](Plugin.md#description)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`payload`: { `absPath`: `string` ; `mod`: `DiscordEventCommand`<keyof `ClientEvents`\> & { `name`: `string` } }, `controller`: [`Controller`](Controller.md)) => `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`payload`, `controller`): `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | `Object` |
|
||||
| `payload.absPath` | `string` |
|
||||
| `payload.mod` | `DiscordEventCommand`<keyof `ClientEvents`\> & { `name`: `string` } |
|
||||
| `controller` | [`Controller`](Controller.md) |
|
||||
|
||||
##### Returns
|
||||
|
||||
`Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:49](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L49)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[name](Plugin.md#name)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:31](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L31)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Command`](../enums/PluginType.md#command)
|
||||
|
||||
#### Overrides
|
||||
|
||||
[Plugin](Plugin.md).[type](Plugin.md#type)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:48](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L48)
|
||||
@@ -1,94 +0,0 @@
|
||||
---
|
||||
id: "DiscordEventPlugin"
|
||||
title: "Interface: DiscordEventPlugin<T>"
|
||||
sidebar_label: "DiscordEventPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends keyof `ClientEvents` = keyof `ClientEvents` |
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- [`Plugin`](Plugin.md)
|
||||
|
||||
↳ **`DiscordEventPlugin`**
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[description](Plugin.md#description)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`args`: `ClientEvents`[`T`], `controller`: [`Controller`](Controller.md)) => `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`args`, `controller`): `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `args` | `ClientEvents`[`T`] |
|
||||
| `controller` | [`Controller`](Controller.md) |
|
||||
|
||||
##### Returns
|
||||
|
||||
`Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:105](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L105)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `T`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Overrides
|
||||
|
||||
[Plugin](Plugin.md).[name](Plugin.md#name)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:103](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L103)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Event`](../enums/PluginType.md#event)
|
||||
|
||||
#### Overrides
|
||||
|
||||
[Plugin](Plugin.md).[type](Plugin.md#type)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:104](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L104)
|
||||
@@ -1,70 +0,0 @@
|
||||
---
|
||||
id: "Emitter"
|
||||
title: "Interface: Emitter"
|
||||
sidebar_label: "Emitter"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Methods
|
||||
|
||||
### addListener
|
||||
|
||||
▸ **addListener**(`eventName`, `listener`): `this`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `eventName` | `string` \| `symbol` |
|
||||
| `listener` | `AnyFunction` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`this`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/emitter.ts:6](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/emitter.ts#L6)
|
||||
|
||||
___
|
||||
|
||||
### emit
|
||||
|
||||
▸ **emit**(`eventName`, `...payload`): `boolean`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `eventName` | `string` \| `symbol` |
|
||||
| `...payload` | `any`[] |
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/emitter.ts:8](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/emitter.ts#L8)
|
||||
|
||||
___
|
||||
|
||||
### removeListener
|
||||
|
||||
▸ **removeListener**(`eventName`, `listener`): `this`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `eventName` | `string` \| `symbol` |
|
||||
| `listener` | `AnyFunction` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`this`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/emitter.ts:7](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/emitter.ts#L7)
|
||||
@@ -1,72 +0,0 @@
|
||||
---
|
||||
id: "EventPlugin"
|
||||
title: "Interface: EventPlugin<T>"
|
||||
sidebar_label: "EventPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
Use the newer helper functions
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends [`CommandType`](../enums/CommandType.md) |
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/plugin.ts:64](https://github.com/sern-handler/handler/blob/c1f6906/src/types/plugin.ts#L64)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`args`: [`CommandArgs`](../modules.md#commandargs)<`T`, [`Event`](../enums/PluginType.md#event)\>, `controller?`: [`Controller`](Controller.md)) => [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`args`, `controller?`): [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `args` | [`CommandArgs`](../modules.md#commandargs)<`T`, [`Event`](../enums/PluginType.md#event)\> |
|
||||
| `controller?` | [`Controller`](Controller.md) |
|
||||
|
||||
##### Returns
|
||||
|
||||
[`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/plugin.ts:66](https://github.com/sern-handler/handler/blob/c1f6906/src/types/plugin.ts#L66)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `string`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/plugin.ts:63](https://github.com/sern-handler/handler/blob/c1f6906/src/types/plugin.ts#L63)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Event`](../enums/PluginType.md#event)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/plugin.ts:65](https://github.com/sern-handler/handler/blob/c1f6906/src/types/plugin.ts#L65)
|
||||
@@ -1,90 +0,0 @@
|
||||
---
|
||||
id: "ExternalEmitterPlugin"
|
||||
title: "Interface: ExternalEmitterPlugin"
|
||||
sidebar_label: "ExternalEmitterPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- [`Plugin`](Plugin.md)
|
||||
|
||||
↳ **`ExternalEmitterPlugin`**
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[description](Plugin.md#description)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`payload`: { `absPath`: `string` ; `mod`: `ExternalEventCommand` & { `name`: `string` } }, `controller`: [`Controller`](Controller.md)) => `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`payload`, `controller`): `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | `Object` |
|
||||
| `payload.absPath` | `string` |
|
||||
| `payload.mod` | `ExternalEventCommand` & { `name`: `string` } |
|
||||
| `controller` | [`Controller`](Controller.md) |
|
||||
|
||||
##### Returns
|
||||
|
||||
`Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:57](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L57)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[name](Plugin.md#name)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:31](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L31)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Command`](../enums/PluginType.md#command)
|
||||
|
||||
#### Overrides
|
||||
|
||||
[Plugin](Plugin.md).[type](Plugin.md#type)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:56](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L56)
|
||||
@@ -1,88 +0,0 @@
|
||||
---
|
||||
id: "ExternalEventPlugin"
|
||||
title: "Interface: ExternalEventPlugin"
|
||||
sidebar_label: "ExternalEventPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- [`Plugin`](Plugin.md)
|
||||
|
||||
↳ **`ExternalEventPlugin`**
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[description](Plugin.md#description)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`args`: `unknown`[], `controller`: [`Controller`](Controller.md)) => `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`args`, `controller`): `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `args` | `unknown`[] |
|
||||
| `controller` | [`Controller`](Controller.md) |
|
||||
|
||||
##### Returns
|
||||
|
||||
`Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:99](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L99)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[name](Plugin.md#name)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:31](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L31)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Event`](../enums/PluginType.md#event)
|
||||
|
||||
#### Overrides
|
||||
|
||||
[Plugin](Plugin.md).[type](Plugin.md#type)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:98](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L98)
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
id: "InitArgs"
|
||||
title: "Interface: InitArgs<T>"
|
||||
sidebar_label: "InitArgs"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends [`Processed`](../modules.md#processed)<[`Module`](Module.md)\> |
|
||||
|
||||
## Properties
|
||||
|
||||
### absPath
|
||||
|
||||
• **absPath**: `string`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/args.ts:107](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/plugins/args.ts#L107)
|
||||
|
||||
___
|
||||
|
||||
### module
|
||||
|
||||
• **module**: `T`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/args.ts:106](https://github.com/sern-handler/handler/blob/c1f6906/src/handler/plugins/args.ts#L106)
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
id: "InitPlugin"
|
||||
title: "Interface: InitPlugin<Args>"
|
||||
sidebar_label: "InitPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `Args` | extends `any`[] = `any`[] |
|
||||
|
||||
## Properties
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (...`args`: `Args`) => [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`...args`): [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `...args` | `Args` |
|
||||
|
||||
##### Returns
|
||||
|
||||
[`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:69](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L69)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Init`](../enums/PluginType.md#init)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:68](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L68)
|
||||
@@ -1,101 +0,0 @@
|
||||
---
|
||||
id: "Logging"
|
||||
title: "Interface: Logging<T>"
|
||||
sidebar_label: "Logging"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.0.0
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | `unknown` |
|
||||
|
||||
## Implemented by
|
||||
|
||||
- [`DefaultLogging`](../classes/DefaultLogging.md)
|
||||
|
||||
## Methods
|
||||
|
||||
### debug
|
||||
|
||||
▸ **debug**(`payload`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | [`LogPayload`](../modules.md#logpayload)<`T`\> |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/logging.ts:8](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L8)
|
||||
|
||||
___
|
||||
|
||||
### error
|
||||
|
||||
▸ **error**(`payload`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | [`LogPayload`](../modules.md#logpayload)<`T`\> |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/logging.ts:5](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L5)
|
||||
|
||||
___
|
||||
|
||||
### info
|
||||
|
||||
▸ **info**(`payload`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | [`LogPayload`](../modules.md#logpayload)<`T`\> |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/logging.ts:7](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L7)
|
||||
|
||||
___
|
||||
|
||||
### warning
|
||||
|
||||
▸ **warning**(`payload`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | [`LogPayload`](../modules.md#logpayload)<`T`\> |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/logging.ts:6](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L6)
|
||||
@@ -1,115 +0,0 @@
|
||||
---
|
||||
id: "Module"
|
||||
title: "Interface: Module"
|
||||
sidebar_label: "Module"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- **`Module`**
|
||||
|
||||
↳ [`TextCommand`](TextCommand.md)
|
||||
|
||||
↳ [`SlashCommand`](SlashCommand.md)
|
||||
|
||||
↳ [`BothCommand`](BothCommand.md)
|
||||
|
||||
↳ [`ContextMenuUser`](ContextMenuUser.md)
|
||||
|
||||
↳ [`ContextMenuMsg`](ContextMenuMsg.md)
|
||||
|
||||
↳ [`ButtonCommand`](ButtonCommand.md)
|
||||
|
||||
↳ [`StringSelectCommand`](StringSelectCommand.md)
|
||||
|
||||
↳ [`ChannelSelectCommand`](ChannelSelectCommand.md)
|
||||
|
||||
↳ [`RoleSelectCommand`](RoleSelectCommand.md)
|
||||
|
||||
↳ [`MentionableSelectCommand`](MentionableSelectCommand.md)
|
||||
|
||||
↳ [`UserSelectCommand`](UserSelectCommand.md)
|
||||
|
||||
↳ [`ModalSubmitCommand`](ModalSubmitCommand.md)
|
||||
|
||||
↳ [`SernEventCommand`](SernEventCommand.md)
|
||||
|
||||
↳ [`DiscordEventCommand`](DiscordEventCommand.md)
|
||||
|
||||
↳ [`ExternalEventCommand`](ExternalEventCommand.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/c1f6906/src/types/module.ts#L38)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (...`args`: `any`[]) => `any`
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (...`args`): `any`
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `...args` | `any`[] |
|
||||
|
||||
##### Returns
|
||||
|
||||
`any`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/module.ts:39](https://github.com/sern-handler/handler/blob/c1f6906/src/types/module.ts#L39)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `string`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/c1f6906/src/types/module.ts#L35)
|
||||
|
||||
___
|
||||
|
||||
### onEvent
|
||||
|
||||
• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/c1f6906/src/types/module.ts#L36)
|
||||
|
||||
___
|
||||
|
||||
### plugins
|
||||
|
||||
• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/c1f6906/src/types/module.ts#L37)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`CommandType`](../enums/CommandType.md) \| [`EventType`](../enums/EventType.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/module.ts:34](https://github.com/sern-handler/handler/blob/c1f6906/src/types/module.ts#L34)
|
||||
@@ -1,155 +0,0 @@
|
||||
---
|
||||
id: "ModuleManager"
|
||||
title: "Interface: ModuleManager"
|
||||
sidebar_label: "ModuleManager"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.0.0
|
||||
- direct access to the module manager will be removed in version 4
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- `MetadataAccess`
|
||||
|
||||
↳ **`ModuleManager`**
|
||||
|
||||
## Implemented by
|
||||
|
||||
- [`DefaultModuleManager`](../classes/DefaultModuleManager.md)
|
||||
|
||||
## Methods
|
||||
|
||||
### get
|
||||
|
||||
▸ **get**(`id`): `undefined` \| `Module`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `id` | `string` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`undefined` \| `Module`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/module-manager.ts:19](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/module-manager.ts#L19)
|
||||
|
||||
___
|
||||
|
||||
### getByNameCommandType
|
||||
|
||||
▸ **getByNameCommandType**<`T`\>(`name`, `commandType`): `undefined` \| [`CommandModuleDefs`](CommandModuleDefs.md)[`T`]
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends [`CommandType`](../enums/CommandType.md) |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `name` | `string` |
|
||||
| `commandType` | `T` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`undefined` \| [`CommandModuleDefs`](CommandModuleDefs.md)[`T`]
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/module-manager.ts:30](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/module-manager.ts#L30)
|
||||
|
||||
___
|
||||
|
||||
### getMetadata
|
||||
|
||||
▸ **getMetadata**(`m`): `undefined` \| `CommandMeta`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `m` | `Module` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`undefined` \| `CommandMeta`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
MetadataAccess.getMetadata
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/module-manager.ts:10](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/module-manager.ts#L10)
|
||||
|
||||
___
|
||||
|
||||
### getPublishableCommands
|
||||
|
||||
▸ **getPublishableCommands**(): [`CommandModule`](../modules.md#commandmodule)[]
|
||||
|
||||
#### Returns
|
||||
|
||||
[`CommandModule`](../modules.md#commandmodule)[]
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/module-manager.ts:25](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/module-manager.ts#L25)
|
||||
|
||||
___
|
||||
|
||||
### set
|
||||
|
||||
▸ **set**(`id`, `path`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `id` | `string` |
|
||||
| `path` | `Module` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/module-manager.ts:21](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/module-manager.ts#L21)
|
||||
|
||||
___
|
||||
|
||||
### setMetadata
|
||||
|
||||
▸ **setMetadata**(`m`, `c`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `m` | `Module` |
|
||||
| `c` | `CommandMeta` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
MetadataAccess.setMetadata
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/module-manager.ts:11](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/module-manager.ts#L11)
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
id: "Plugin"
|
||||
title: "Interface: Plugin<Args>"
|
||||
sidebar_label: "Plugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `Args` | extends `any`[] = `any`[] |
|
||||
|
||||
## Properties
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (...`args`: `Args`) => [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`...args`): [`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `...args` | `Args` |
|
||||
|
||||
##### Returns
|
||||
|
||||
[`PluginResult`](../modules.md#pluginresult)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:64](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L64)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`PluginType`](../enums/PluginType.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:63](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L63)
|
||||
@@ -1,113 +0,0 @@
|
||||
---
|
||||
id: "SernAutocompleteData"
|
||||
title: "Interface: SernAutocompleteData"
|
||||
sidebar_label: "SernAutocompleteData"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- `Omit`<`BaseApplicationCommandOptionsData`, ``"autocomplete"``\>
|
||||
|
||||
↳ **`SernAutocompleteData`**
|
||||
|
||||
## Properties
|
||||
|
||||
### autocomplete
|
||||
|
||||
• **autocomplete**: ``true``
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:172](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L172)
|
||||
|
||||
___
|
||||
|
||||
### command
|
||||
|
||||
• **command**: `AutocompleteCommand`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:177](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L177)
|
||||
|
||||
___
|
||||
|
||||
### description
|
||||
|
||||
• **description**: `string`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
Omit.description
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4493
|
||||
|
||||
___
|
||||
|
||||
### descriptionLocalizations
|
||||
|
||||
• `Optional` **descriptionLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
Omit.descriptionLocalizations
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4494
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• **name**: `string`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
Omit.name
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4491
|
||||
|
||||
___
|
||||
|
||||
### nameLocalizations
|
||||
|
||||
• `Optional` **nameLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
Omit.nameLocalizations
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4492
|
||||
|
||||
___
|
||||
|
||||
### required
|
||||
|
||||
• `Optional` **required**: `boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
Omit.required
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4495
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: `String` \| `Integer` \| `Number`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:173](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L173)
|
||||
@@ -1,90 +0,0 @@
|
||||
---
|
||||
id: "SernEmitterPlugin"
|
||||
title: "Interface: SernEmitterPlugin"
|
||||
sidebar_label: "SernEmitterPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- [`Plugin`](Plugin.md)
|
||||
|
||||
↳ **`SernEmitterPlugin`**
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[description](Plugin.md#description)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`payload`: { `absPath`: `string` ; `mod`: `SernEventCommand`<keyof [`SernEventsMapping`](../modules.md#serneventsmapping)\> & { `name`: `string` } }, `controller`: [`Controller`](Controller.md)) => `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`payload`, `controller`): `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `payload` | `Object` |
|
||||
| `payload.absPath` | `string` |
|
||||
| `payload.mod` | `SernEventCommand`<keyof [`SernEventsMapping`](../modules.md#serneventsmapping)\> & { `name`: `string` } |
|
||||
| `controller` | [`Controller`](Controller.md) |
|
||||
|
||||
##### Returns
|
||||
|
||||
`Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:65](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L65)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[name](Plugin.md#name)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:31](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L31)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Command`](../enums/PluginType.md#command)
|
||||
|
||||
#### Overrides
|
||||
|
||||
[Plugin](Plugin.md).[type](Plugin.md#type)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:64](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L64)
|
||||
@@ -1,94 +0,0 @@
|
||||
---
|
||||
id: "SernEventPlugin"
|
||||
title: "Interface: SernEventPlugin<T>"
|
||||
sidebar_label: "SernEventPlugin"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends keyof [`SernEventsMapping`](../modules.md#serneventsmapping) = keyof [`SernEventsMapping`](../modules.md#serneventsmapping) |
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- [`Plugin`](Plugin.md)
|
||||
|
||||
↳ **`SernEventPlugin`**
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• `Optional` **description**: `string`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[Plugin](Plugin.md).[description](Plugin.md#description)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
|
||||
|
||||
___
|
||||
|
||||
### execute
|
||||
|
||||
• **execute**: (`args`: [`SernEventsMapping`](../modules.md#serneventsmapping)[`T`], `controller`: [`Controller`](Controller.md)) => `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (`args`, `controller`): `Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
##### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `args` | [`SernEventsMapping`](../modules.md#serneventsmapping)[`T`] |
|
||||
| `controller` | [`Controller`](Controller.md) |
|
||||
|
||||
##### Returns
|
||||
|
||||
`Awaitable`<`Result`<`void`, `void`\>\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:91](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L91)
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• `Optional` **name**: `T`
|
||||
|
||||
**`Deprecated`**
|
||||
|
||||
will be removed in the next update
|
||||
|
||||
#### Overrides
|
||||
|
||||
[Plugin](Plugin.md).[name](Plugin.md#name)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:89](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L89)
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: [`Event`](../enums/PluginType.md#event)
|
||||
|
||||
#### Overrides
|
||||
|
||||
[Plugin](Plugin.md).[type](Plugin.md#type)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/handler/plugins/plugin.ts:90](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L90)
|
||||
@@ -1,107 +0,0 @@
|
||||
---
|
||||
id: "SernSubCommandData"
|
||||
title: "Interface: SernSubCommandData"
|
||||
sidebar_label: "SernSubCommandData"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- `APIApplicationCommandOptionBase`<`ApplicationCommandOptionType.Subcommand`\>
|
||||
|
||||
↳ **`SernSubCommandData`**
|
||||
|
||||
## Properties
|
||||
|
||||
### description
|
||||
|
||||
• **description**: `string`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
APIApplicationCommandOptionBase.description
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.d.ts:7
|
||||
|
||||
___
|
||||
|
||||
### description\_localizations
|
||||
|
||||
• `Optional` **description\_localizations**: ``null`` \| `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
APIApplicationCommandOptionBase.description\_localizations
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.d.ts:8
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• **name**: `string`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
APIApplicationCommandOptionBase.name
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.d.ts:5
|
||||
|
||||
___
|
||||
|
||||
### name\_localizations
|
||||
|
||||
• `Optional` **name\_localizations**: ``null`` \| `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
APIApplicationCommandOptionBase.name\_localizations
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.d.ts:6
|
||||
|
||||
___
|
||||
|
||||
### options
|
||||
|
||||
• `Optional` **options**: [`SernOptionsData`](../modules.md#sernoptionsdata)[]
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:209](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L209)
|
||||
|
||||
___
|
||||
|
||||
### required
|
||||
|
||||
• `Optional` **required**: `boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
APIApplicationCommandOptionBase.required
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.d.ts:9
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: `Subcommand`
|
||||
|
||||
#### Overrides
|
||||
|
||||
APIApplicationCommandOptionBase.type
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:208](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L208)
|
||||
@@ -1,117 +0,0 @@
|
||||
---
|
||||
id: "SernSubCommandGroupData"
|
||||
title: "Interface: SernSubCommandGroupData"
|
||||
sidebar_label: "SernSubCommandGroupData"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Hierarchy
|
||||
|
||||
- `BaseApplicationCommandOptionsData`
|
||||
|
||||
↳ **`SernSubCommandGroupData`**
|
||||
|
||||
## Properties
|
||||
|
||||
### autocomplete
|
||||
|
||||
• `Optional` **autocomplete**: `undefined`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
BaseApplicationCommandOptionsData.autocomplete
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4496
|
||||
|
||||
___
|
||||
|
||||
### description
|
||||
|
||||
• **description**: `string`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
BaseApplicationCommandOptionsData.description
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4493
|
||||
|
||||
___
|
||||
|
||||
### descriptionLocalizations
|
||||
|
||||
• `Optional` **descriptionLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
BaseApplicationCommandOptionsData.descriptionLocalizations
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4494
|
||||
|
||||
___
|
||||
|
||||
### name
|
||||
|
||||
• **name**: `string`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
BaseApplicationCommandOptionsData.name
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4491
|
||||
|
||||
___
|
||||
|
||||
### nameLocalizations
|
||||
|
||||
• `Optional` **nameLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
BaseApplicationCommandOptionsData.nameLocalizations
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4492
|
||||
|
||||
___
|
||||
|
||||
### options
|
||||
|
||||
• `Optional` **options**: [`SernSubCommandData`](SernSubCommandData.md)[]
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:214](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L214)
|
||||
|
||||
___
|
||||
|
||||
### required
|
||||
|
||||
• `Optional` **required**: `boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
BaseApplicationCommandOptionsData.required
|
||||
|
||||
#### Defined in
|
||||
|
||||
node_modules/discord.js/typings/index.d.ts:4495
|
||||
|
||||
___
|
||||
|
||||
### type
|
||||
|
||||
• **type**: `SubcommandGroup`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:213](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L213)
|
||||
@@ -1,2 +0,0 @@
|
||||
label: "Interfaces"
|
||||
position: 4
|
||||
@@ -1,734 +0,0 @@
|
||||
---
|
||||
id: "modules"
|
||||
title: "@sern/handler"
|
||||
sidebar_label: "Exports"
|
||||
sidebar_position: 0.5
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Namespaces
|
||||
|
||||
- [Presence](namespaces/Presence.md)
|
||||
- [Sern](namespaces/Sern.md)
|
||||
|
||||
## Enumerations
|
||||
|
||||
- [CommandType](enums/CommandType.md)
|
||||
- [EventType](enums/EventType.md)
|
||||
- [PayloadType](enums/PayloadType.md)
|
||||
- [PluginType](enums/PluginType.md)
|
||||
|
||||
## Classes
|
||||
|
||||
- [Context](classes/Context.md)
|
||||
- [DefaultErrorHandling](classes/DefaultErrorHandling.md)
|
||||
- [DefaultLogging](classes/DefaultLogging.md)
|
||||
- [DefaultModuleManager](classes/DefaultModuleManager.md)
|
||||
- [ModuleStore](classes/ModuleStore.md)
|
||||
|
||||
## Interfaces
|
||||
|
||||
- [BothCommand](interfaces/BothCommand.md)
|
||||
- [ButtonCommand](interfaces/ButtonCommand.md)
|
||||
- [ChannelSelectCommand](interfaces/ChannelSelectCommand.md)
|
||||
- [CommandModuleDefs](interfaces/CommandModuleDefs.md)
|
||||
- [ContextMenuMsg](interfaces/ContextMenuMsg.md)
|
||||
- [ContextMenuUser](interfaces/ContextMenuUser.md)
|
||||
- [ControlPlugin](interfaces/ControlPlugin.md)
|
||||
- [Controller](interfaces/Controller.md)
|
||||
- [CoreDependencies](interfaces/CoreDependencies.md)
|
||||
- [CoreModuleStore](interfaces/CoreModuleStore.md)
|
||||
- [DiscordEventCommand](interfaces/DiscordEventCommand.md)
|
||||
- [Disposable](interfaces/Disposable.md)
|
||||
- [Emitter](interfaces/Emitter.md)
|
||||
- [ErrorHandling](interfaces/ErrorHandling.md)
|
||||
- [EventModuleDefs](interfaces/EventModuleDefs.md)
|
||||
- [ExternalEventCommand](interfaces/ExternalEventCommand.md)
|
||||
- [Init](interfaces/Init.md)
|
||||
- [InitPlugin](interfaces/InitPlugin.md)
|
||||
- [Logging](interfaces/Logging.md)
|
||||
- [MentionableSelectCommand](interfaces/MentionableSelectCommand.md)
|
||||
- [ModalSubmitCommand](interfaces/ModalSubmitCommand.md)
|
||||
- [ModuleManager](interfaces/ModuleManager.md)
|
||||
- [Plugin](interfaces/Plugin.md)
|
||||
- [RoleSelectCommand](interfaces/RoleSelectCommand.md)
|
||||
- [SernAutocompleteData](interfaces/SernAutocompleteData.md)
|
||||
- [SernEventCommand](interfaces/SernEventCommand.md)
|
||||
- [SernEventsMapping](interfaces/SernEventsMapping.md)
|
||||
- [SernSubCommandData](interfaces/SernSubCommandData.md)
|
||||
- [SernSubCommandGroupData](interfaces/SernSubCommandGroupData.md)
|
||||
- [SlashCommand](interfaces/SlashCommand.md)
|
||||
- [StringSelectCommand](interfaces/StringSelectCommand.md)
|
||||
- [TextCommand](interfaces/TextCommand.md)
|
||||
- [UserSelectCommand](interfaces/UserSelectCommand.md)
|
||||
- [Wrapper](interfaces/Wrapper.md)
|
||||
|
||||
## Type Aliases
|
||||
|
||||
### AnyCommandPlugin
|
||||
|
||||
Ƭ **AnyCommandPlugin**: [`ControlPlugin`](interfaces/ControlPlugin.md) \| [`InitPlugin`](interfaces/InitPlugin.md)<[`InitArgs`<`Processed`<[`CommandModule`](modules.md#commandmodule)\>\>]\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:76](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L76)
|
||||
|
||||
___
|
||||
|
||||
### AnyEventPlugin
|
||||
|
||||
Ƭ **AnyEventPlugin**: [`ControlPlugin`](interfaces/ControlPlugin.md) \| [`InitPlugin`](interfaces/InitPlugin.md)<[`InitArgs`<`Processed`<[`EventModule`](modules.md#eventmodule)\>\>]\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:77](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L77)
|
||||
|
||||
___
|
||||
|
||||
### Args
|
||||
|
||||
Ƭ **Args**: `ParseType`<\{ `slash`: [`SlashOptions`](modules.md#slashoptions) ; `text`: `string`[] }\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/utility.ts:16](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L16)
|
||||
|
||||
___
|
||||
|
||||
### CommandModule
|
||||
|
||||
Ƭ **CommandModule**: [`TextCommand`](interfaces/TextCommand.md) \| [`SlashCommand`](interfaces/SlashCommand.md) \| [`BothCommand`](interfaces/BothCommand.md) \| [`ContextMenuUser`](interfaces/ContextMenuUser.md) \| [`ContextMenuMsg`](interfaces/ContextMenuMsg.md) \| [`ButtonCommand`](interfaces/ButtonCommand.md) \| [`StringSelectCommand`](interfaces/StringSelectCommand.md) \| [`MentionableSelectCommand`](interfaces/MentionableSelectCommand.md) \| [`UserSelectCommand`](interfaces/UserSelectCommand.md) \| [`ChannelSelectCommand`](interfaces/ChannelSelectCommand.md) \| [`RoleSelectCommand`](interfaces/RoleSelectCommand.md) \| [`ModalSubmitCommand`](interfaces/ModalSubmitCommand.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:132](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L132)
|
||||
|
||||
___
|
||||
|
||||
### EventModule
|
||||
|
||||
Ƭ **EventModule**: [`DiscordEventCommand`](interfaces/DiscordEventCommand.md) \| [`SernEventCommand`](interfaces/SernEventCommand.md) \| [`ExternalEventCommand`](interfaces/ExternalEventCommand.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:131](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L131)
|
||||
|
||||
___
|
||||
|
||||
### Initializable
|
||||
|
||||
Ƭ **Initializable**<`T`\>: `T`
|
||||
|
||||
Type to annotate that something is initializable.
|
||||
If T has an init method, this will be called.
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends [`Init`](interfaces/Init.md) |
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/ioc.ts:17](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L17)
|
||||
|
||||
___
|
||||
|
||||
### LogPayload
|
||||
|
||||
Ƭ **LogPayload**<`T`\>: `Object`
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | `unknown` |
|
||||
|
||||
#### Type declaration
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `message` | `T` |
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/contracts/logging.ts:11](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L11)
|
||||
|
||||
___
|
||||
|
||||
### Payload
|
||||
|
||||
Ƭ **Payload**: \{ `module`: `AnyModule` ; `type`: [`Success`](enums/PayloadType.md#success) } \| \{ `module?`: `AnyModule` ; `reason`: `string` \| `Error` ; `type`: [`Failure`](enums/PayloadType.md#failure) } \| \{ `module`: `undefined` ; `reason`: `string` ; `type`: [`Warning`](enums/PayloadType.md#warning) }
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/utility.ts:26](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L26)
|
||||
|
||||
___
|
||||
|
||||
### PluginResult
|
||||
|
||||
Ƭ **PluginResult**: `Awaitable`<`VoidResult`\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-plugin.ts:51](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L51)
|
||||
|
||||
___
|
||||
|
||||
### SernOptionsData
|
||||
|
||||
Ƭ **SernOptionsData**: [`SernSubCommandData`](interfaces/SernSubCommandData.md) \| [`SernSubCommandGroupData`](interfaces/SernSubCommandGroupData.md) \| `APIApplicationCommandBasicOption` \| [`SernAutocompleteData`](interfaces/SernAutocompleteData.md)
|
||||
|
||||
Type that replaces autocomplete with [SernAutocompleteData](interfaces/SernAutocompleteData.md)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/core-modules.ts:200](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L200)
|
||||
|
||||
___
|
||||
|
||||
### Singleton
|
||||
|
||||
Ƭ **Singleton**<`T`\>: () => `T`
|
||||
|
||||
Type to annotate that something is a singleton.
|
||||
T is created once and lazily.
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name |
|
||||
| :------ |
|
||||
| `T` |
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): `T`
|
||||
|
||||
##### Returns
|
||||
|
||||
`T`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/ioc.ts:7](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L7)
|
||||
|
||||
___
|
||||
|
||||
### SlashOptions
|
||||
|
||||
Ƭ **SlashOptions**: `Omit`<`CommandInteractionOptionResolver`, ``"getMessage"`` \| ``"getFocused"``\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/utility.ts:14](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L14)
|
||||
|
||||
___
|
||||
|
||||
### Transient
|
||||
|
||||
Ƭ **Transient**<`T`\>: () => () => `T`
|
||||
|
||||
Type to annotate that something is transient.
|
||||
Every time this is called, a new object is created
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name |
|
||||
| :------ |
|
||||
| `T` |
|
||||
|
||||
#### Type declaration
|
||||
|
||||
▸ (): () => `T`
|
||||
|
||||
##### Returns
|
||||
|
||||
`fn`
|
||||
|
||||
▸ (): `T`
|
||||
|
||||
##### Returns
|
||||
|
||||
`T`
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/types/ioc.ts:12](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L12)
|
||||
|
||||
## Variables
|
||||
|
||||
### controller
|
||||
|
||||
• `Const` **controller**: `Object`
|
||||
|
||||
**`Since`**
|
||||
|
||||
1.0.0
|
||||
The object passed into every plugin to control a command's behavior
|
||||
|
||||
#### Type declaration
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `next` | () => `OkImpl`<`void`\> |
|
||||
| `stop` | () => `ErrImpl`<`void`\> |
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/create-plugins.ts:69](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L69)
|
||||
|
||||
## Functions
|
||||
|
||||
### CommandControlPlugin
|
||||
|
||||
▸ **CommandControlPlugin**<`I`\>(`execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `I` | extends [`CommandType`](enums/CommandType.md) |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `execute` | (...`args`: `CommandArgs`<`I`, [`Control`](enums/PluginType.md#control)\>) => [`PluginResult`](modules.md#pluginresult) |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.5.0
|
||||
@__PURE__
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/create-plugins.ts:37](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L37)
|
||||
|
||||
___
|
||||
|
||||
### CommandInitPlugin
|
||||
|
||||
▸ **CommandInitPlugin**<`I`\>(`execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `I` | extends [`CommandType`](enums/CommandType.md) |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `execute` | (...`args`: `CommandArgs`<`I`, [`Init`](enums/PluginType.md#init)\>) => [`PluginResult`](modules.md#pluginresult) |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.5.0
|
||||
@__PURE__
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/create-plugins.ts:28](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L28)
|
||||
|
||||
___
|
||||
|
||||
### DiscordEventControlPlugin
|
||||
|
||||
▸ **DiscordEventControlPlugin**<`T`\>(`name`, `execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends keyof `ClientEvents` |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `name` | `T` |
|
||||
| `execute` | (...`args`: `ClientEvents`[`T`]) => [`PluginResult`](modules.md#pluginresult) |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.5.0
|
||||
|
||||
**`Experimental`**
|
||||
|
||||
A specialized function for creating control plugins with discord.js ClientEvents.
|
||||
Will probably be moved one day!
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/create-plugins.ts:58](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L58)
|
||||
|
||||
___
|
||||
|
||||
### EventControlPlugin
|
||||
|
||||
▸ **EventControlPlugin**<`I`\>(`execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `I` | extends [`EventType`](enums/EventType.md) |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `execute` | (...`args`: `EventArgs`<`I`, [`Control`](enums/PluginType.md#control)\>) => [`PluginResult`](modules.md#pluginresult) |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.5.0
|
||||
@__PURE__
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/create-plugins.ts:46](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L46)
|
||||
|
||||
___
|
||||
|
||||
### EventInitPlugin
|
||||
|
||||
▸ **EventInitPlugin**<`I`\>(`execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `I` | extends [`EventType`](enums/EventType.md) |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `execute` | (...`args`: `EventArgs`<`I`, [`Init`](enums/PluginType.md#init)\>) => [`PluginResult`](modules.md#pluginresult) |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.5.0
|
||||
@__PURE__
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/create-plugins.ts:19](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L19)
|
||||
|
||||
___
|
||||
|
||||
### Service
|
||||
|
||||
▸ **Service**<`T`\>(`key`): `NonNullable`<`UnpackFunction`<`Partial`<`Dependencies`\>[`T`]\>\>
|
||||
|
||||
The new Service api, a cleaner alternative to useContainer
|
||||
To obtain intellisense, ensure a .d.ts file exists in the root of compilation.
|
||||
Usually our scaffolding tool takes care of this.
|
||||
Note: this method only works AFTER your container has been initiated
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends keyof `Dependencies` |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type | Description |
|
||||
| :------ | :------ | :------ |
|
||||
| `key` | `T` | a key that corresponds to a dependency registered. |
|
||||
|
||||
#### Returns
|
||||
|
||||
`NonNullable`<`UnpackFunction`<`Partial`<`Dependencies`\>[`T`]\>\>
|
||||
|
||||
**`Since`**
|
||||
|
||||
3.0.0
|
||||
|
||||
**`Example`**
|
||||
|
||||
```ts
|
||||
const client = Service('@sern/client');
|
||||
```
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/ioc/dependency-injection.ts:37](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/dependency-injection.ts#L37)
|
||||
|
||||
___
|
||||
|
||||
### Services
|
||||
|
||||
▸ **Services**<`T`\>(`...keys`): `IntoDependencies`<`T`\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends keyof `Dependencies`[] |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `...keys` | [...T[]] |
|
||||
|
||||
#### Returns
|
||||
|
||||
`IntoDependencies`<`T`\>
|
||||
|
||||
array of dependencies, in the same order of keys provided
|
||||
|
||||
**`Since`**
|
||||
|
||||
3.0.0
|
||||
The plural version of [Service](modules.md#service)
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/ioc/dependency-injection.ts:47](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/dependency-injection.ts#L47)
|
||||
|
||||
___
|
||||
|
||||
### commandModule
|
||||
|
||||
▸ **commandModule**(`mod`): [`CommandModule`](modules.md#commandmodule)
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `mod` | `InputCommand` |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`CommandModule`](modules.md#commandmodule)
|
||||
|
||||
**`Since`**
|
||||
|
||||
1.0.0 The wrapper function to define command modules for sern
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:19](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/modules.ts#L19)
|
||||
|
||||
___
|
||||
|
||||
### discordEvent
|
||||
|
||||
▸ **discordEvent**<`T`\>(`mod`): [`EventModule`](modules.md#eventmodule)
|
||||
|
||||
Create event modules from discord.js client events,
|
||||
This is an [eventModule](modules.md#eventmodule-1) for discord events,
|
||||
where typings can be very bad.
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends keyof `ClientEvents` |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `mod` | `Object` |
|
||||
| `mod.execute` | (...`args`: `ClientEvents`[`T`]) => `unknown` |
|
||||
| `mod.name` | `T` |
|
||||
| `mod.plugins?` | [`AnyEventPlugin`](modules.md#anyeventplugin)[] |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`EventModule`](modules.md#eventmodule)
|
||||
|
||||
**`Experimental`**
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:47](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/modules.ts#L47)
|
||||
|
||||
___
|
||||
|
||||
### eventModule
|
||||
|
||||
▸ **eventModule**(`mod`): [`EventModule`](modules.md#eventmodule)
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `mod` | `InputEvent` |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`EventModule`](modules.md#eventmodule)
|
||||
|
||||
**`Since`**
|
||||
|
||||
1.0.0
|
||||
The wrapper function to define event modules for sern
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/modules.ts:32](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/modules.ts#L32)
|
||||
|
||||
___
|
||||
|
||||
### makeDependencies
|
||||
|
||||
▸ **makeDependencies**<`T`\>(`conf`): `Promise`<<V\>(...`keys`: [...V[]]) => `IntoDependencies`<`V`\>\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends `Dependencies` |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `conf` | `ValidDependencyConfig` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`<<V\>(...`keys`: [...V[]]) => `IntoDependencies`<`V`\>\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/ioc/base.ts:144](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/base.ts#L144)
|
||||
|
||||
___
|
||||
|
||||
### makePlugin
|
||||
|
||||
▸ **makePlugin**<`V`\>(`type`, `execute`): [`Plugin`](interfaces/Plugin.md)<`V`\>
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `V` | extends `unknown`[] |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `type` | [`PluginType`](enums/PluginType.md) |
|
||||
| `execute` | (...`args`: `any`[]) => `any` |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Plugin`](interfaces/Plugin.md)<`V`\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/create-plugins.ts:6](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L6)
|
||||
|
||||
___
|
||||
|
||||
### single
|
||||
|
||||
▸ **single**<`T`\>(`cb`): () => `T`
|
||||
|
||||
@__PURE__
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name |
|
||||
| :------ |
|
||||
| `T` |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `cb` | () => `T` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`fn`
|
||||
|
||||
▸ (): `T`
|
||||
|
||||
##### Returns
|
||||
|
||||
`T`
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.0.0.
|
||||
Creates a singleton object.
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/ioc/dependency-injection.ts:11](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/dependency-injection.ts#L11)
|
||||
|
||||
___
|
||||
|
||||
### transient
|
||||
|
||||
▸ **transient**<`T`\>(`cb`): () => () => `T`
|
||||
|
||||
@__PURE__
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name |
|
||||
| :------ |
|
||||
| `T` |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `cb` | () => () => `T` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`fn`
|
||||
|
||||
▸ (): () => `T`
|
||||
|
||||
##### Returns
|
||||
|
||||
`fn`
|
||||
|
||||
▸ (): `T`
|
||||
|
||||
##### Returns
|
||||
|
||||
`T`
|
||||
|
||||
**`Since`**
|
||||
|
||||
2.0.0
|
||||
Creates a transient object
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/ioc/dependency-injection.ts:21](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/dependency-injection.ts#L21)
|
||||
@@ -1,31 +0,0 @@
|
||||
---
|
||||
id: "CommandError"
|
||||
title: "Namespace: CommandError"
|
||||
sidebar_label: "CommandError"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Interfaces
|
||||
|
||||
- [Response](../interfaces/CommandError.Response.md)
|
||||
|
||||
## Functions
|
||||
|
||||
### of
|
||||
|
||||
▸ **of**(): `Object`
|
||||
|
||||
#### Returns
|
||||
|
||||
`Object`
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `log` | <T\>(`type`: keyof [`Logging`](../interfaces/Logging.md)<`unknown`\>, `message`: `T`) => `Record`<`PropertyKey`, `unknown`\> |
|
||||
| `reply` | (`bodyContent`: `ReplyOptions`) => `Record`<`PropertyKey`, `unknown`\> |
|
||||
| `status` | (`p`: ``"fail"`` \| ``"continue"``) => `Record`<`PropertyKey`, `unknown`\> |
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/structures/command-error.ts:10](https://github.com/sern-handler/handler/blob/504cdee/src/core/structures/command-error.ts#L10)
|
||||
@@ -1,93 +0,0 @@
|
||||
---
|
||||
id: "Presence"
|
||||
title: "Namespace: Presence"
|
||||
sidebar_label: "Presence"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Interfaces
|
||||
|
||||
- [Result](../interfaces/Presence.Result.md)
|
||||
|
||||
## Type Aliases
|
||||
|
||||
### Config
|
||||
|
||||
Ƭ **Config**<`T`\>: `Object`
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends keyof `Dependencies`[] |
|
||||
|
||||
#### Type declaration
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `execute` | (...`v`: `IntoDependencies`<`T`\>) => [`Result`](../interfaces/Presence.Result.md) |
|
||||
| `inject?` | [...T] |
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/presences.ts:17](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L17)
|
||||
|
||||
## Functions
|
||||
|
||||
### module
|
||||
|
||||
▸ **module**<`T`\>(`conf`): [`Config`](Presence.md#config)<`T`\>
|
||||
|
||||
A small wrapper to provide type inference.
|
||||
Create a Presence module which **MUST** be put in a file called presence.(language-extension)
|
||||
adjacent to the file where **Sern.init** is CALLED.
|
||||
|
||||
#### Type parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `T` | extends keyof `Dependencies`[] |
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `conf` | [`Config`](Presence.md#config)<`T`\> |
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Config`](Presence.md#config)<`T`\>
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/presences.ts:28](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L28)
|
||||
|
||||
___
|
||||
|
||||
### of
|
||||
|
||||
▸ **of**(`root`): `Object`
|
||||
|
||||
Create a Presence body which can be either:
|
||||
- once, the presence is activated only once.
|
||||
- repeated, per cycle or event, the presence can be changed.
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `root` | `Omit`<[`Result`](../interfaces/Presence.Result.md), ``"repeat"`` \| ``"onRepeat"``\> |
|
||||
|
||||
#### Returns
|
||||
|
||||
`Object`
|
||||
|
||||
| Name | Type | Description |
|
||||
| :------ | :------ | :------ |
|
||||
| `once` | () => `Omit`<[`Result`](../interfaces/Presence.Result.md), ``"repeat"`` \| ``"onRepeat"``\> | - |
|
||||
| `repeated` | (`onRepeat`: `PresenceReduce`, `repeat`: `number` \| [[`Emitter`](../interfaces/Emitter.md), `string`]) => \{ `activities?`: `ActivitiesOptions`[] ; `afk?`: `boolean` ; `onRepeat`: `PresenceReduce` ; `repeat`: `number` \| [[`Emitter`](../interfaces/Emitter.md), `string`] ; `shardId?`: `number`[] ; `status?`: `Status` } | - |
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/core/presences.ts:37](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L37)
|
||||
@@ -1,40 +0,0 @@
|
||||
---
|
||||
id: "Sern"
|
||||
title: "Namespace: Sern"
|
||||
sidebar_label: "Sern"
|
||||
sidebar_position: 0
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
## Functions
|
||||
|
||||
### init
|
||||
|
||||
▸ **init**(`maybeWrapper`): `void`
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Name | Type |
|
||||
| :------ | :------ |
|
||||
| `maybeWrapper` | [`Wrapper`](../interfaces/Wrapper.md) \| ``"file"`` |
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
**`Since`**
|
||||
|
||||
1.0.0
|
||||
|
||||
**`Example`**
|
||||
|
||||
```ts title="src/index.ts"
|
||||
Sern.init({
|
||||
commands: 'dist/commands',
|
||||
events: 'dist/events',
|
||||
})
|
||||
```
|
||||
|
||||
#### Defined in
|
||||
|
||||
[src/sern.ts:26](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/sern.ts#L26)
|
||||
@@ -1,2 +0,0 @@
|
||||
label: "Namespaces"
|
||||
position: 1
|
||||
@@ -1,30 +0,0 @@
|
||||
# Introduction
|
||||
|
||||
Welcome to our official guide. This guide will go through all the core features of the framework.
|
||||
- 💖 Thank you for choosing sern to be your framework!
|
||||
|
||||
- Teaching the discord.js library and / or Javascript / Typescript is out of scope of this project, so the documentation assumes you already know these elements.
|
||||
- [discord.js](https://discord.js.org/#/)
|
||||
- [javascript](https://nodejs.dev/en/learn/)
|
||||
- [typescript](https://www.typescriptlang.org/docs/)
|
||||
|
||||
- discord.js v14 is the only supported library at the moment
|
||||
|
||||
## You will learn
|
||||
* [sern's goal](walkthrough/goal.md)
|
||||
* How to use sern with the [CLI](walkthrough/cli.md)
|
||||
* [Your first command](walkthrough/first-command.md)
|
||||
* [The Context class](walkthrough/first-command.md#context-class)
|
||||
* [Autocomplete](walkthrough/autocomplete.md)
|
||||
* [Services](walkthrough/services.md)
|
||||
* [dependency injection](walkthrough/dependency-injection.md)
|
||||
### Working with plugins
|
||||
* [Plugins](walkthrough/plugins.md)
|
||||
- [Init Plugins](walkthrough/plugins.md#command-plugins)
|
||||
- [Control Plugins](walkthrough/plugins.md#event-plugins)
|
||||
### Events
|
||||
* [The SernEmitter class](walkthrough/sern-emitter.md)
|
||||
* [Your first event](walkthrough/first-event.md)
|
||||
|
||||
### Good to know
|
||||
* [sern.config.json](walkthrough/good-to-know.md)
|
||||
@@ -1 +0,0 @@
|
||||
label: Getting Started
|
||||
@@ -1,11 +0,0 @@
|
||||
# Choosing an IDE
|
||||
|
||||
Choosing an IDE is a matter of personal preference. They make programming easier. The following are some
|
||||
suggestions for choosing an IDE:
|
||||
|
||||
* [Visual Studio Code](https://code.visualstudio.com)
|
||||
* we have an [snippet extension](https://marketplace.visualstudio.com/items?itemName=SrIzan.sern-snippets) to help automate development :)
|
||||
* [Sublime Text](https://www.sublimetext.com/)
|
||||
* [NotePad++](https://notepad-plus-plus.org/)
|
||||
* [nvim](https://neovim.io/) (chad)
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
|
||||
# Preparing to Code
|
||||
|
||||
After installing an IDE, you need to install node.
|
||||
|
||||
[Click to download the LTS version of node right here](https://nodejs.org/en/download/).
|
||||
|
||||
After you downloaded node you will need:
|
||||
|
||||
#### [Discord token](https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token)
|
||||
|
||||
|
||||
CONTINUE 🤓
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
label: Walkthrough
|
||||
@@ -1,45 +0,0 @@
|
||||
---
|
||||
sidebar_position: 7
|
||||
---
|
||||
|
||||
# Autocomplete
|
||||
|
||||
|
||||
Autocomplete is a special interaction where it can happen on multiple options on a single command. We've handled this with a simple
|
||||
tree search algorithm in a nested options tree.
|
||||
|
||||
## Example
|
||||
|
||||
```ts title="src/commands/cheese.ts" {11-18}
|
||||
export default commandModule({
|
||||
type: CommandType.Slash,
|
||||
description: "show me cheese",
|
||||
options: [
|
||||
{
|
||||
name: "list",
|
||||
type: ApplicationCommandOptionType.String,
|
||||
description: "pick a cheese to show",
|
||||
required: true,
|
||||
autocomplete: true,
|
||||
command: {
|
||||
onEvent: [],
|
||||
execute: (ctx) => {
|
||||
const focus = ctx.options.getFocused();
|
||||
ctx.respond(['gouda', 'parmesan', 'harvati']
|
||||
.map((cheese) => ({ name: cheese, value: cheese })));
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
execute: (ctx, [, args]) => {
|
||||
const cheese = args.getString('list', true);
|
||||
ctx.reply('selected cheese');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
```
|
||||
|
||||
Sern will handle autocomplete interactions at arbitrary depths and subcommand levels.
|
||||
|
||||
|
||||
@@ -1,110 +0,0 @@
|
||||
---
|
||||
sidebar_position: 7
|
||||
---
|
||||
|
||||
# Dependency Injection
|
||||
|
||||
:::warning
|
||||
This contains version 2 code. Please view [transitioning to v3](./transition)
|
||||
:::
|
||||
|
||||
Since version 2.0.0, dependency injection, thanks to [iti](https://github.com/molszanski/iti), is a feature to customize your bot's utilities and structures.
|
||||
|
||||
Minimal setup for any project.
|
||||
|
||||
```ts
|
||||
const client = new Client({
|
||||
...options
|
||||
})
|
||||
Sern.makeDependencies<MyDependencies>({
|
||||
build: root =>
|
||||
root.add({
|
||||
'@sern/client': single(() => client)
|
||||
})
|
||||
})
|
||||
|
||||
```
|
||||
For any typescript project, you'll need to add an interface to get intellisense and typings.
|
||||
```typescript
|
||||
interface MyDependencies extends Dependencies {
|
||||
'@sern/client': Singleton<Client>
|
||||
}
|
||||
```
|
||||
Full Dependency Injection setup
|
||||
```typescript
|
||||
const client = new Client({
|
||||
...options
|
||||
})
|
||||
|
||||
interface MyDependencies extends Dependencies {
|
||||
'@sern/client': Singleton<Client>
|
||||
}
|
||||
|
||||
export const useContainer = Sern.makeDependencies<MyDependencies>({
|
||||
build: root =>
|
||||
root.add({
|
||||
'@sern/client': single(() => client)
|
||||
})
|
||||
})
|
||||
|
||||
```
|
||||
Everything else is handled. However, you may want customize things.
|
||||
|
||||
## Adding dependencies to root
|
||||
Each sern built dependency must implement its contracts.
|
||||
- `@sern/logger`: Log data. [Logging](../../api/interfaces/Logging)
|
||||
- `@sern/errors`: Handling errors and lifetime. [ErrorHandling](../../api/interfaces/ErrorHandling)
|
||||
- `@sern/modules`: Managing all command modules. [ModuleManager](../../api/interfaces/ModuleManager)
|
||||
- `@sern/emitter`: is the key to emit events and occurences in a project. [SernEmitter](../../api/classes/SernEmitter)
|
||||
|
||||
|
||||
You may also add disposers so that when the application crashes, the targeted dependency calls that function.
|
||||
|
||||
```typescript
|
||||
export const useContainer = Sern.makeDependencies<MyDependencies>({
|
||||
build: root =>
|
||||
root.add({
|
||||
'@sern/client': single(() => client)
|
||||
})
|
||||
.addDisposer({ '@sern/client': client => client.destroy() })
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
:::tip
|
||||
Below is v3 api.
|
||||
:::
|
||||
|
||||
## Init
|
||||
Do you need to perform intializing behavor for a dependency?
|
||||
|
||||
```ts
|
||||
import { Init } from '@sern/handler';
|
||||
class Database implements Init {
|
||||
init() {
|
||||
await this.connect()
|
||||
console.log('Connected');
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Modify you Dependencies interface:
|
||||
```ts title="src/dependencies.d.ts"
|
||||
import type { Initializable } from '@sern/handler'
|
||||
|
||||
interface Dependencies extends CoreDependencies {
|
||||
database: Initializable<Database>
|
||||
}
|
||||
|
||||
```
|
||||
Make sure its been added:
|
||||
```ts title="src/index.ts"
|
||||
await makeDependencies({
|
||||
build: root => root
|
||||
.add({ database => new Database() })
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
---
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# First Command
|
||||
|
||||
We will dissect a basic command.
|
||||
If you installed a new project via the cli, This is the `ping` command located in src/commands folder.
|
||||
|
||||
:::tip
|
||||
TLDR: command modules are discord bot commands. There are many types, and each one will correspond to an event from discord.
|
||||
For example, CommandType.Slash commands will listen to slash command interactions.
|
||||
:::
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="js" label="JavaScript">
|
||||
|
||||
```js
|
||||
const { CommandType, commandModule } = require('@sern/handler');
|
||||
|
||||
export default commandModule({
|
||||
type: CommandType.Both,
|
||||
plugins: [],
|
||||
description: 'A ping command',
|
||||
// alias : [],
|
||||
execute: async (ctx, args) => {
|
||||
await ctx.reply('Pong 🏓');
|
||||
},
|
||||
})
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="ts" label="Typescript">
|
||||
|
||||
```ts
|
||||
import { commandModule, CommandType } from '@sern/handler';
|
||||
|
||||
export default commandModule({
|
||||
type: CommandType.Both,
|
||||
plugins: [],
|
||||
description: 'A ping command',
|
||||
// alias : [],
|
||||
execute: async (ctx, args) => {
|
||||
await ctx.reply({ content: 'Pong 🏓' });
|
||||
},
|
||||
});
|
||||
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
||||
</Tabs>
|
||||
|
||||
|
||||
To view what each of these properties mean in depth, visit the [official documentation](https://sern.dev/docs/api/enums/CommandType).
|
||||
### Types of command modules
|
||||
Every command module `type` is part of an enum. This field allows type inference for the rest of a module's fields. <br />
|
||||
All the command types can be found in the [official documentation](https://sern.dev/docs/api/enums/CommandType)!
|
||||
<p>So, lets say you want to make a command module that listens to modals. </p>
|
||||
|
||||
**Note**: Keep in mind you'll need to send a modal with a custom id `dm-me`. This example below is the response to a modal being sent.
|
||||
<br />
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="js" label="JavaScript">
|
||||
|
||||
```javascript
|
||||
const { CommandType, commandModule } = require('@sern/handler');
|
||||
exports.default = commandModule({
|
||||
name: 'dm-me',
|
||||
type: CommandType.Modal,
|
||||
async execute (modal) {
|
||||
const value = modal.fields.getTextInputValue('message');
|
||||
modal.client.users.fetch('182326315813306368').then( u =>
|
||||
u.send(value + ` from ${modal.user}`)
|
||||
);
|
||||
modal.reply( { ephemeral:true, content: 'Sent' })
|
||||
}
|
||||
});
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="ts" label="Typescript">
|
||||
|
||||
```typescript
|
||||
import { commandModule, CommandType } from '@sern/handler';
|
||||
export default commandModule({
|
||||
name: 'dm-me',
|
||||
type: CommandType.Modal,
|
||||
async execute (modal) {
|
||||
const value = modal.fields.getTextInputValue('message');
|
||||
modal.client.users.fetch('182326315813306368').then( u =>
|
||||
u.send(value + ` from ${modal.user}`)
|
||||
);
|
||||
modal.reply( { ephemeral:true, content: 'Sent' })
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
||||
</Tabs>
|
||||
|
||||
|
||||
Commands are straight forward. Keep in mind, every other property on the commandModule object is
|
||||
optional **except** the type and execute function.
|
||||
|
||||
# Context class
|
||||
The provided Context class helps with modules of `CommandType.Both` (A mixture of slash / legacy commands).
|
||||
|
||||
The Context class is passed into modules with type:
|
||||
- `CommandType.Both`
|
||||
- `CommandType.Slash`
|
||||
- `CommandType.Text`
|
||||
|
||||
This data structure helps interop between legacy commands and slash commands with ease.
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Goal
|
||||
|
||||
This walkthrough will be written in [TypeScript](https://www.typescriptlang.org/) but will have JavaScript snippets throughout.
|
||||
|
||||
# Make robust, modular, bots
|
||||
|
||||
- *Modularity*: sern is built with modularity in mind. You can swap pieces and parts easily.
|
||||
- *Familiar*: commands and structures are similar to classic v12 handlers and the official discord.js command handler guide, while packing many features
|
||||
- *Concise*: Too much code is a liability. with sern, write less for more 🤯
|
||||
|
||||
|
||||
### Using @sapphire/framework
|
||||
```ts title="commands/ping.ts" showLineNumbers
|
||||
import { Command } from '@sapphire/framework'
|
||||
import type { CommandInteraction } from 'discord.js'
|
||||
|
||||
export class PingCommand extends Command {
|
||||
public constructor(context: Command.Context) {
|
||||
super(context, {
|
||||
description: 'Pong!',
|
||||
chatInputCommand: {
|
||||
register: true,
|
||||
},
|
||||
})
|
||||
}
|
||||
public async chatInputRun(interaction: CommandInteraction) {
|
||||
await interaction.reply('Pong!')
|
||||
}
|
||||
}
|
||||
```
|
||||
### Using @sern/handler
|
||||
```ts title="commands/ping.ts" showLineNumbers
|
||||
import { commandModule, CommandType } from '@sern/handler'
|
||||
import { publish } from '../plugins';
|
||||
|
||||
export default commandModule({
|
||||
type: CommandType.Both,
|
||||
plugins: [publish()],
|
||||
description: 'Pong!',
|
||||
execute: (ctx, args) => {
|
||||
await ctx.reply('Pong!')
|
||||
}
|
||||
})
|
||||
```
|
||||
Keep in mind the above example acts as both a slash command AND text command
|
||||
@@ -1,158 +0,0 @@
|
||||
---
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
# Services
|
||||
|
||||
:::tip
|
||||
This is version 3 api only!!
|
||||
:::
|
||||
|
||||
|
||||
:::tip
|
||||
TLDR: The direct upgrade to useContainer. if you set up a bot with create-bot, check dependencies.d.ts.
|
||||
Dependencies are the types that Services uses.
|
||||
:::
|
||||
|
||||
You need someway to use dependencies in your command module. Services to the rescue!
|
||||
```ts title="src/dependencies.d.ts"
|
||||
import { CoreDependencies, Singleton } from '@sern/handler'
|
||||
import { Client } from 'discord.js'
|
||||
|
||||
interface Dependencies extends CoreDependencies {
|
||||
'@sern/client': Singleton<Client>
|
||||
}
|
||||
|
||||
```
|
||||
Recall, some keys in Dependencies are special.
|
||||
|
||||
> Special key dependency must implement its contracts.
|
||||
> - `@sern/client`: Your discord client. -> [Emitter](../../api/interfaces/Emitter)
|
||||
> - `@sern/logger`: Log data -> [Logging](../../api/interfaces/Logging)
|
||||
> - `@sern/errors`: Handling errors and lifetime -> [ErrorHandling](../../api/interfaces/ErrorHandling)
|
||||
> - `@sern/modules`: Managing all command modules -> [ModuleManager](../../api/interfaces/ModuleManager)
|
||||
> - `@sern/emitter`: is the key to emit events and occurences in a project -> [Emitter](../../api/interfaces/Emitter)
|
||||
|
||||
|
||||
Lets try to access the client you provided.
|
||||
|
||||
```ts title="src/commands/ping.ts"
|
||||
import { Service } from '@sern/handler'
|
||||
|
||||
export default commandModule({
|
||||
// ...
|
||||
execute: (ctx) => {
|
||||
//Client!
|
||||
const client = Service('@sern/client');
|
||||
}
|
||||
//
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
## Safety
|
||||
- Services cannot be called in other services while makeDependencies is forming.
|
||||
|
||||
<Tabs>
|
||||
|
||||
<TabItem value="good" label="A good example">
|
||||
|
||||
Lets pass a logger into our database.
|
||||
```ts title="index.ts" showLineNumbers
|
||||
await makeDependencies({
|
||||
build: root => root
|
||||
//Overriding the default logger provided.
|
||||
.upsert({ '@sern/logger': single(() => new Logger()) })
|
||||
|
||||
// Wiring our logger into the database.
|
||||
.add(ctx => {
|
||||
return { database: single(() => new Database(ctx['sern/logger']))) }
|
||||
})
|
||||
})
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="bad" label="Don't do this">
|
||||
|
||||
```ts title="index.ts" showLineNumbers
|
||||
await makeDependencies({
|
||||
build: root => root
|
||||
//Overriding the default logger provided.
|
||||
.upsert({ '@sern/logger': single(() => new Logger()) })
|
||||
|
||||
// Wiring our logger into the database.
|
||||
// We wire our database incorrectly. Logger should be passed INTO the constructor
|
||||
.add({ database: single(() => new Database()) })
|
||||
})
|
||||
```
|
||||
|
||||
```ts title="index.ts" showLineNumbers
|
||||
import { Service, makeDependencies } from '@sern/handler';
|
||||
|
||||
//Calling Service prematurely!
|
||||
const logger = Service('@sern/logger');
|
||||
|
||||
class Database {
|
||||
|
||||
constructor() {
|
||||
this.logger = logger
|
||||
}
|
||||
}
|
||||
```
|
||||
This is a code smell anyway. It breaks encapsulation and defeats the purpose of wiring dependencies
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
- Services can only be used after sern has made dependencies.
|
||||
- Calling a service before will crash your application.
|
||||
- Services can be safely used outside of commandModules.
|
||||
- Be careful to not cause too many side effects.
|
||||
|
||||
|
||||
|
||||
- You will need to wire dependencies together.
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="good" label="A good example">
|
||||
|
||||
```ts title="index.ts" showLineNumbers
|
||||
await makeDependencies(...pass your options here)
|
||||
```
|
||||
```ts title="commands/ping.ts" showLineNumbers
|
||||
// This is guaranteed to be defined if configured correctly
|
||||
import { Service } from '@sern/handler';
|
||||
const client = Service('@sern/client');
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="bad" label="Don't do this">
|
||||
|
||||
```ts title="index.ts" showLineNumbers
|
||||
import { Service, makeDependencies } from '@sern/handler';
|
||||
/* DON'T USE SERVICES BEFORE CALLING makeDependencies */
|
||||
const logger = Service('@sern/logger');
|
||||
|
||||
await makeDependencies()
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
||||
</Tabs>
|
||||
|
||||
- Services can only be used after sern has made dependencies.
|
||||
- Calling a service before will crash your application.
|
||||
- Services can be safely used outside of commandModules.
|
||||
- Be careful to not cause too many side effects.
|
||||
|
||||
|
||||
## Related api
|
||||
- use `Service` for single dependency.
|
||||
- use `Services` for multiple dependencies.
|
||||
|
||||
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Transition from v2 to v3
|
||||
|
||||
```diff title="src/index.ts"
|
||||
- Sern.makeDependencies({ build: () => {} })
|
||||
+ await makeDependencies({ build: () => {} })
|
||||
```
|
||||
|
||||
v3 comes with the new [Service api](../walkthrough/services). To make sure to enable intellisense
|
||||
include a dependencies.d.ts file into compilation. [Click here for all new features](../../../blog/3.0.0)
|
||||
```ts
|
||||
/**
|
||||
* This file serves as intellisense for sern projects.
|
||||
* Types are declared here for dependencies to function properly
|
||||
* Service(s) api rely on this file to provide a better developer experience.
|
||||
*/
|
||||
|
||||
import { SernEmitter, Logging, CoreModuleStore, ModuleManager, ErrorHandling, CoreDependencies, Singleton } from '@sern/handler'
|
||||
import { Client } from 'discord.js'
|
||||
|
||||
declare global {
|
||||
interface Dependencies extends CoreDependencies {
|
||||
'@sern/client': Singleton<Client>
|
||||
}
|
||||
}
|
||||
|
||||
export {}
|
||||
|
||||
```
|
||||
|
||||
A standard project file tree: <br />
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
---
|
||||
sidebar_position: 0
|
||||
---
|
||||
|
||||
# Welcome!
|
||||
|
||||
:::warning
|
||||
Please read the [transition](./transition) page if you are moving from version 2 to version 3.
|
||||
:::
|
||||
|
||||
## Content
|
||||
- [transition](../docs/guide/walkthrough/transition.md) for current users to transition bots to version 3.
|
||||
- [/docs/api](../docs/api) contains autogenerated documentation of our codebase using [typedoc](https://typedoc.org/)
|
||||
- [/docs/guide](../docs/guide) contains a basic startup guide and details to get started with sern faster!
|
||||
|
||||
:::tip
|
||||
This site is open source! Please do contribute if you find any bugs, typos, or sections in need of improvements.
|
||||
:::
|
||||
:::tip
|
||||
If you have problems, join the discord server [here](https://sern.dev/discord)
|
||||
:::
|
||||
@@ -1,208 +0,0 @@
|
||||
// @ts-check
|
||||
// Note: type annotations allow type checking and IDEs autocompletion
|
||||
|
||||
// WARNING: When changing things in this file, please also change them on the other docgen.docusaurus.config.js file!
|
||||
|
||||
const lightCodeTheme = require('prism-react-renderer').themes.nightOwlLight;
|
||||
const darkCodeTheme = require('prism-react-renderer').themes.oceanicNext;
|
||||
/** @type {import('@docusaurus/types').Config} */
|
||||
const config = {
|
||||
title: 'sern - Handlers. Redefined.',
|
||||
tagline: 'With the support of the community made plugins and a powerful CLI, it\'s more than just a handler.',
|
||||
url: 'https://sern.dev',
|
||||
baseUrl: '/',
|
||||
onBrokenLinks: 'ignore',
|
||||
onBrokenMarkdownLinks: 'warn',
|
||||
favicon: '/img/favicon.ico', // this currently not working
|
||||
|
||||
// GitHub pages deployment config.
|
||||
// If you aren't using GitHub pages, you don't need these.
|
||||
organizationName: 'sern-handler', // Usually your GitHub org/user name.
|
||||
projectName: 'website', // Usually your repo name.
|
||||
deploymentBranch: 'main',
|
||||
trailingSlash: false,
|
||||
|
||||
// Even if you don't use internalization, you can use this field to set useful
|
||||
// metadata like html lang. For example, if your site is Chinese, you may want
|
||||
// to replace "en" with "zh-Hans".
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en']
|
||||
},
|
||||
markdown: {
|
||||
format: 'detect'
|
||||
},
|
||||
presets: [
|
||||
[
|
||||
'classic',
|
||||
/** @type {import('@docusaurus/preset-classic').Options} */
|
||||
({
|
||||
docs: {
|
||||
sidebarPath: require.resolve('./sidebars.js'),
|
||||
editUrl:
|
||||
'https://github.com/sern-handler/website/edit/main/',
|
||||
},
|
||||
blog: {
|
||||
showReadingTime: true,
|
||||
// Please change this to your repo.
|
||||
// Remove this to remove the "edit this page" links.
|
||||
editUrl:
|
||||
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
|
||||
blogSidebarCount: 'ALL',
|
||||
},
|
||||
pages: {
|
||||
path: 'src/pages',
|
||||
routeBasePath: '/',
|
||||
include: ['**/*.{js,jsx,ts,tsx,md,mdx}'],
|
||||
exclude: [
|
||||
'**/_*.{js,jsx,ts,tsx,md,mdx}',
|
||||
'**/_*/**',
|
||||
'**/*.test.{js,jsx,ts,tsx}',
|
||||
'**/__tests__/**',
|
||||
],
|
||||
},
|
||||
theme: {
|
||||
customCss: require.resolve('./src/css/custom.css'),
|
||||
},
|
||||
}),
|
||||
],
|
||||
],
|
||||
|
||||
themeConfig:
|
||||
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
||||
({
|
||||
image: 'https://sern.dev/img/logo.png',
|
||||
algolia: {
|
||||
appId: 'AA9S5J9NYT',
|
||||
apiKey: 'ccfe6abc4d12ac6f882565a9d0caafb1',
|
||||
indexName: 'sern',
|
||||
insights: true,
|
||||
container: 'div',
|
||||
debug: false,
|
||||
contextualSearch: true,
|
||||
externalUrlRegex: 'external\\.com|domain\\.com',
|
||||
replaceSearchResultPathname: {
|
||||
from: '/docs/api',
|
||||
to: '/docs/api',
|
||||
},
|
||||
searchParameters: {},
|
||||
searchPagePath: 'search',
|
||||
},
|
||||
navbar: {
|
||||
title: 'Home',
|
||||
logo: {
|
||||
alt: 'logo logo',
|
||||
src: 'img/favicon.ico',
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: 'doc',
|
||||
docId: 'intro',
|
||||
position: 'left',
|
||||
label: 'Docs & Guide',
|
||||
},
|
||||
{ to: '/blog', label: 'Blog', position: 'left' },
|
||||
{
|
||||
href: 'https://github.com/sern-handler',
|
||||
label: 'GitHub',
|
||||
position: 'right',
|
||||
},
|
||||
{ to: "/sponsors", label: "Sponsor", position: "left" },
|
||||
{
|
||||
to: '/plugins',
|
||||
label: 'Plugins',
|
||||
position: 'left'
|
||||
}
|
||||
],
|
||||
},
|
||||
footer: {
|
||||
style: 'dark',
|
||||
links: [
|
||||
{
|
||||
title: 'Information',
|
||||
items: [
|
||||
{
|
||||
label: 'Docs & Guide',
|
||||
to: '/docs/intro',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Community',
|
||||
items: [
|
||||
{
|
||||
label: 'Stack Overflow',
|
||||
href: 'https://stackoverflow.com/questions/tagged/sern-handler',
|
||||
},
|
||||
{
|
||||
label: 'Discord',
|
||||
href: 'https://discord.gg/DwbF5H5JgQ',
|
||||
},
|
||||
{
|
||||
label: 'Open Collective',
|
||||
href: 'https://opencollective.com/sern'
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'More',
|
||||
items: [
|
||||
{
|
||||
label: 'Blog',
|
||||
to: '/blog',
|
||||
},
|
||||
{
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/sern-handler',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
copyright: `Built with ❤️ by the sern Handler team and its contributors`,
|
||||
},
|
||||
metadata: [
|
||||
{ name: 'og:title', content: 'sern - Handlers. Redefined.' },
|
||||
{ name: 'og:description', content: 'A modular, customizable, fast Discord.js framework to streamline bot development' },
|
||||
{ name: 'og:url', content: 'https://sern.dev' },
|
||||
{ name: 'og:type', content: 'website' },
|
||||
{ name: 'twitter:site', content: '@sern-handler' },
|
||||
{ property: 'og:image:alt', content: 'sernlogo' },
|
||||
{ name: 'twitter:title', content: 'sern - Handlers. Redefined.' },
|
||||
{ name: 'twitter:description', content: 'A modular, customizable, fast Discord.js framework to streamline bot development' },
|
||||
{ name: 'keywords', content: 'discord, bot, handler, framework, documentation, sern' },
|
||||
{ name: 'twitter:image', content: 'https://sern.dev/img/logo.png' },
|
||||
{ name: 'twitter:url', content: 'https://sern.dev' },
|
||||
{ property: 'og:image:height', content: '512' },
|
||||
{ property: 'og:image:width', content: '1024' },
|
||||
{ name: 'theme-color', content: '#F25186' }
|
||||
],
|
||||
prism: {
|
||||
theme: lightCodeTheme,
|
||||
darkTheme: darkCodeTheme,
|
||||
},
|
||||
}),
|
||||
plugins: [
|
||||
/* [
|
||||
'docusaurus-plugin-typedoc',
|
||||
{
|
||||
//if you're editing website, please change this to your local branch of sern to generate documentation
|
||||
entryPoints: ['../sernHandlerV2/src/index.ts'],
|
||||
tsconfig: '../sernHandlerV2/tsconfig.json',
|
||||
},
|
||||
], */
|
||||
[
|
||||
"@dipakparmar/docusaurus-plugin-umami",
|
||||
{
|
||||
websiteID: "e82ff65c-b08f-47b5-8e74-5c31cbcec0ad",
|
||||
analyticsDomain: "analytics.srizan.dev",
|
||||
scriptName: 'ua.js',
|
||||
dataAutoTrack: true,
|
||||
dataDoNotTrack: true,
|
||||
dataCache: true,
|
||||
dataDomains: "sern.dev",
|
||||
},
|
||||
]
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = config;
|
||||
14
ec.config.mjs
Normal file
@@ -0,0 +1,14 @@
|
||||
import { defineEcConfig } from '@astrojs/starlight/expressive-code';
|
||||
import { pluginLineNumbers } from '@expressive-code/plugin-line-numbers';
|
||||
|
||||
export default defineEcConfig({
|
||||
plugins: [pluginLineNumbers()],
|
||||
defaultProps: {
|
||||
showLineNumbers: false,
|
||||
overridesByLang: {
|
||||
'js,javascript,typescript,ts': {
|
||||
showLineNumbers: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -1,3 +1,3 @@
|
||||
[build]
|
||||
publish = "/build"
|
||||
command = "npm run build"
|
||||
publish = "dist"
|
||||
command = "rm -rf sern-handler && git clone https://github.com/sern-handler/handler sern-handler && cd sern-handler && bun install && cd .. && bun run build"
|
||||
15640
package-lock.json
generated
82
package.json
@@ -1,64 +1,30 @@
|
||||
{
|
||||
"name": "sern-website",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"description": "Our modern, clean and beginner friendly web interface",
|
||||
"main": "index.js",
|
||||
"name": "sern-docs",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
"start": "docusaurus start",
|
||||
"build": "docusaurus build",
|
||||
"swizzle": "docusaurus swizzle",
|
||||
"deploy": "docusaurus deploy",
|
||||
"clear": "docusaurus clear",
|
||||
"serve": "docusaurus serve",
|
||||
"write-translations": "docusaurus write-translations",
|
||||
"write-heading-ids": "docusaurus write-heading-ids",
|
||||
"typedoc-json": "typedoc --json ../sern-community/docs.json --pretty --entryPoints ../sernHandlerV2/src/index.ts --tsconfig ../sernHandlerV2/tsconfig.json --excludeExternals"
|
||||
"dev": "astro dev",
|
||||
"start": "astro dev",
|
||||
"build": "astro check && astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@dipakparmar/docusaurus-plugin-umami": "^2.1.1",
|
||||
"@docusaurus/core": "3.0.0",
|
||||
"@docusaurus/preset-classic": "3.0.0",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
"clsx": "^1.2.1",
|
||||
"jsdoc-parse-plus": "^1.3.0",
|
||||
"prism-react-renderer": "^2.1.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-modal": "^3.16.1"
|
||||
"@astrojs/check": "^0.5.10",
|
||||
"@astrojs/starlight": "^0.22.1",
|
||||
"@astrojs/starlight-docsearch": "^0.1.0",
|
||||
"@astrojs/starlight-tailwind": "^2.0.2",
|
||||
"@astropub/md": "^0.4.0",
|
||||
"@expressive-code/plugin-line-numbers": "^0.35.3",
|
||||
"astro": "^4.3.5",
|
||||
"sharp": "^0.32.5",
|
||||
"starlight-blog": "^0.7.0",
|
||||
"starlight-typedoc": "^0.12.0",
|
||||
"typedoc": "^0.25.13",
|
||||
"typedoc-plugin-markdown": "next",
|
||||
"typescript": "^5.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "3.0.0",
|
||||
"@docusaurus/types": "3.0.0",
|
||||
"docusaurus-plugin-typedoc": "latest",
|
||||
"typedoc": "latest",
|
||||
"typedoc-plugin-markdown": "latest",
|
||||
"typescript": "latest"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.5%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.16"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/sern-handler/website.git"
|
||||
},
|
||||
"author": "xxDeveloper",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/sern-handler/website/issues"
|
||||
},
|
||||
"homepage": "https://github.com/sern-handler/website#readme"
|
||||
}
|
||||
"@types/bun": "^1.1.1"
|
||||
}
|
||||
}
|
||||
9
public/favicon.svg
Normal file
|
After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
31
sidebars.js
@@ -1,31 +0,0 @@
|
||||
/**
|
||||
* Creating a sidebar enables you to:
|
||||
- create an ordered group of docs
|
||||
- render a sidebar for each doc of that group
|
||||
- provide next/previous navigation
|
||||
|
||||
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||
|
||||
Create as many sidebars as you want.
|
||||
*/
|
||||
|
||||
// @ts-check
|
||||
|
||||
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
|
||||
const sidebars = {
|
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
|
||||
|
||||
// But you can create a sidebar manually
|
||||
/*
|
||||
tutorialSidebar: [
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['hello'],
|
||||
},
|
||||
],
|
||||
*/
|
||||
};
|
||||
|
||||
module.exports = sidebars;
|
||||
|
Before Width: | Height: | Size: 627 KiB After Width: | Height: | Size: 627 KiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 2.4 MiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
BIN
src/assets/docs/event-plugins.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
BIN
src/assets/logo/navbar-icon.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
src/assets/logo/sern-logo.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
16
src/components/DeprecatedIcon.astro
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
import { Icon } from "@astrojs/starlight/components";
|
||||
---
|
||||
|
||||
<span class="group">
|
||||
<span class="group-hover:hidden">
|
||||
<div
|
||||
class="p-1 h-8 w-8 flex items-center justify-center rounded bg-[var(--sl-color-orange-low)] border border-[var(--sl-color-orange)] text-gray-900 dark:text-white"
|
||||
>
|
||||
<Icon name="warning" />
|
||||
</div>
|
||||
</span>
|
||||
<span class="group-hover:block hidden">
|
||||
<b>[DEPRECATED]</b>
|
||||
</span>
|
||||
</span>
|
||||
32
src/components/Head.astro
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
import type { Props } from "@astrojs/starlight/props";
|
||||
import DefaultHead from "@astrojs/starlight/components/Head.astro";
|
||||
|
||||
const logo = new URL("/sern-logo.png", Astro.url);
|
||||
---
|
||||
|
||||
<DefaultHead {...Astro.props}><slot /></DefaultHead>
|
||||
<meta property="og:title" content="sern - Handlers. Redefined." />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="A modular, customizable, fast Discord.js framework to streamline bot development"
|
||||
/>
|
||||
<meta property="og:url" content="https://sern.dev" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image:alt" content="sern logo" />
|
||||
<meta property="og:image" content={logo} />
|
||||
<meta property="og:image:height" content="512" />
|
||||
<meta property="og:image:width" content="1024" />
|
||||
<meta name="theme-color" content="#F25186" />
|
||||
<meta
|
||||
name="keywords"
|
||||
content="discord, bot, handler, framework, documentation, sern"
|
||||
/>
|
||||
<meta name="twitter:title" content="sern - Handlers. Redefined." />
|
||||
<meta
|
||||
name="twitter:description"
|
||||
content="A modular, customizable, fast Discord.js framework to streamline bot development"
|
||||
/>
|
||||
<meta name="twitter:image" content={logo} />
|
||||
<meta name="twitter:url" content="https://sern.dev" />
|
||||
<meta property="twitter:site" content="@sern-handler" />
|
||||
@@ -1,65 +0,0 @@
|
||||
import React from 'react';
|
||||
import clsx from 'clsx';
|
||||
import styles from './styles.module.css';
|
||||
|
||||
const FeatureList = [
|
||||
{
|
||||
title: 'Modular',
|
||||
|
||||
Svg: require('@site/static/img/bricks-svgrepo-com.svg').default,
|
||||
description: (
|
||||
<>
|
||||
Take apart, build, or customize code with ease to create robust bots.
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: 'Concise',
|
||||
Svg: require('@site/static/img/pencil-svgrepo-com.svg').default,
|
||||
description: (
|
||||
<>
|
||||
Commands are significantly smaller than other competitors.
|
||||
Write impactful, concise code.
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: 'Familiar',
|
||||
Svg: require('@site/static/img/fire-com.svg').default,
|
||||
description: (
|
||||
<>
|
||||
Code like a traditional command handler. Although not exactly the same, the api is easy to learn
|
||||
and resembles classic v12 command handlers.
|
||||
</>
|
||||
),
|
||||
},
|
||||
|
||||
];
|
||||
|
||||
function Feature({Svg, title, description}) {
|
||||
return (
|
||||
<div className={clsx('col col--4')}>
|
||||
<div className="text--center">
|
||||
<Svg className={styles.featureSvg} role="img" />
|
||||
</div>
|
||||
<div className="text--center padding-horiz--md">
|
||||
<h3>{title}</h3>
|
||||
<p>{description}</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default function HomepageFeatures() {
|
||||
return (
|
||||
<section className={styles.features}>
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
{FeatureList.map((props, idx) => (
|
||||
<Feature key={idx} {...props} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
|
||||
.features {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 2rem 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.featureSvg {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
}
|
||||
42
src/components/Modal.astro
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
import { Icon } from "@astrojs/starlight/components";
|
||||
|
||||
interface Props {
|
||||
title: string;
|
||||
button: string;
|
||||
icon: Parameters<typeof Icon>[0]["name"];
|
||||
}
|
||||
|
||||
const { title, icon, button } = Astro.props;
|
||||
const modalId = `modal-${Math.random().toString(36).slice(2)}`;
|
||||
---
|
||||
|
||||
<div>
|
||||
<label
|
||||
for={modalId}
|
||||
class="cursor-pointer bg-accent-600 dark:bg-accent-200 text-white dark:text-gray-900 px-4 py-2 rounded-lg flex items-center justify-center"
|
||||
>
|
||||
<b>{button}</b>
|
||||
<Icon name={icon} class="w-6 h-6" />
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id={modalId}
|
||||
class="peer fixed appearance-none opacity-0"
|
||||
/>
|
||||
|
||||
<label
|
||||
for={modalId}
|
||||
class="pointer-events-none invisible fixed inset-0 flex cursor-pointer items-center justify-center overflow-hidden overscroll-contain backdrop-blur-md bg-gray-800/90 opacity-0 transition-all duration-200 ease-in-out peer-checked:pointer-events-auto peer-checked:visible peer-checked:opacity-100 peer-checked:[&>*]:translate-y-0 peer-checked:[&>*]:scale-100 z-50"
|
||||
>
|
||||
<div
|
||||
class="bg-white dark:bg-gray-900 border dark:border-gray-700 border-gray-300 p-4 shadow-lg w-5/6 transform -translate-y-4 scale-95 transition-all duration-200 ease-in-out"
|
||||
>
|
||||
<h2 class="text-xl font-bold mb-4">{title}</h2>
|
||||
<slot />
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
41
src/components/PluginCard.astro
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
import PluginModal from "./PluginModal.astro";
|
||||
import { Markdown } from "@astropub/md";
|
||||
import DeprecatedIcon from "./DeprecatedIcon.astro";
|
||||
|
||||
export interface Plugin {
|
||||
description: string;
|
||||
hash: string;
|
||||
name: string;
|
||||
author: string[];
|
||||
link: string;
|
||||
example: string;
|
||||
version: string;
|
||||
}
|
||||
|
||||
type Props = Plugin;
|
||||
|
||||
const plugin = Astro.props;
|
||||
const description = (
|
||||
plugin.description.length > 200
|
||||
? plugin.description.slice(0, 200) + "..."
|
||||
: plugin.description
|
||||
).replace("[DEPRECATED]", "");
|
||||
|
||||
const deprecated = plugin.description.includes("[DEPRECATED]");
|
||||
---
|
||||
|
||||
<div
|
||||
class="relative p-4 border border-gray-300 dark:border-gray-700 not-content"
|
||||
>
|
||||
<div class="flex justify-between items-center mb-4">
|
||||
<h3>{plugin.name}</h3>
|
||||
{deprecated && <DeprecatedIcon />}
|
||||
</div>
|
||||
<div class="mb-14">
|
||||
<Markdown of={description} />
|
||||
</div>
|
||||
<div class="absolute bottom-4 right-4">
|
||||
<PluginModal {...plugin} />
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,28 +0,0 @@
|
||||
import styles from './index.module.css'
|
||||
import PluginModal from "../PluginModal";
|
||||
|
||||
export default function PluginCard({ plugin }) {
|
||||
return (
|
||||
<div className={styles.card}>
|
||||
<div className={styles.cardHeader}>
|
||||
<h3>{plugin.name}</h3>
|
||||
</div>
|
||||
<div className={styles.cardBody}>
|
||||
<p>{plugin.trimmedDescription}</p>
|
||||
</div>
|
||||
<div className={styles.cardFooter}>
|
||||
<PluginModal plugin={plugin} />
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
/*
|
||||
- description
|
||||
- hash
|
||||
- name
|
||||
- author
|
||||
- link
|
||||
- example
|
||||
- version
|
||||
*/
|
||||
@@ -1,31 +0,0 @@
|
||||
.card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
height: 100%;
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
background-color: var(--color-white);
|
||||
box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.cardHeader {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.cardBody {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
height: 100%;
|
||||
}
|
||||
.cardFooter {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 1rem;
|
||||
/* put on the right side of the footer */
|
||||
margin-left: auto;
|
||||
}
|
||||
46
src/components/PluginModal.astro
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
import type { Plugin } from "./PluginCard.astro";
|
||||
import { Code } from "@astrojs/starlight/components";
|
||||
import { Markdown } from "@astropub/md";
|
||||
import Modal from "./Modal.astro";
|
||||
|
||||
type Props = Plugin;
|
||||
|
||||
const { name, description, example, author } = Astro.props;
|
||||
|
||||
const trimmedCode = example
|
||||
.replace("```ts", "")
|
||||
.replace("```", "")
|
||||
.split("\n")
|
||||
.filter(Boolean)
|
||||
.join("\n");
|
||||
|
||||
const trimmedDescription = description.replace("[DEPRECATED]", "");
|
||||
const deprecated = description.includes("[DEPRECATED]");
|
||||
|
||||
const authors = new Intl.ListFormat("en", {
|
||||
style: "long",
|
||||
type: "conjunction",
|
||||
}).format(
|
||||
author.map((s) =>
|
||||
s
|
||||
.replace(/[\]<>@]/g, "")
|
||||
.split("[")[0]
|
||||
.trim(),
|
||||
),
|
||||
);
|
||||
---
|
||||
|
||||
<Modal button="View" icon="right-arrow" title={`${name} by ${authors}`}>
|
||||
{
|
||||
deprecated && (
|
||||
<div class="mb-4 p-2 rounded-md bg-[var(--sl-color-orange-low)] border border-[var(--sl-color-orange)] text-gray-900 dark:text-white">
|
||||
This plugin is deprecated and should not be used in new projects.
|
||||
</div>
|
||||
)
|
||||
}
|
||||
<div class="mb-4">
|
||||
<Markdown of={trimmedDescription} />
|
||||
</div>
|
||||
<Code lang="ts" title="src/commands/ping.ts" code={trimmedCode} />
|
||||
</Modal>
|
||||
@@ -1,88 +0,0 @@
|
||||
import React from 'react';
|
||||
import Modal from 'react-modal';
|
||||
import styles from "./index.module.css";
|
||||
import CodeBlock from "@theme/CodeBlock";
|
||||
import clsx from "clsx";
|
||||
import useTheme from "../../hooks/useTheme";
|
||||
|
||||
const light = {
|
||||
content: {
|
||||
top: '50%',
|
||||
left: '50%',
|
||||
right: 'auto',
|
||||
bottom: 'auto',
|
||||
marginRight: '-50%',
|
||||
transform: 'translate(-50%, -50%)',
|
||||
width: "70vw",
|
||||
height: "50vh",
|
||||
backgroundColor: "#fff",
|
||||
},
|
||||
};
|
||||
const dark = {
|
||||
content: {
|
||||
top: '50%',
|
||||
left: '50%',
|
||||
right: 'auto',
|
||||
bottom: 'auto',
|
||||
marginRight: '-50%',
|
||||
transform: 'translate(-50%, -50%)',
|
||||
width: "70vw",
|
||||
height: "50vh",
|
||||
backgroundColor: "#333",
|
||||
color: "#fff"
|
||||
},
|
||||
};
|
||||
|
||||
export default function PluginModal({ plugin }) {
|
||||
const [modalIsOpen, setIsOpen] = React.useState(false);
|
||||
const [theme] = useTheme();
|
||||
const [modalCSS, setModalCSS] = React.useState(theme === "dark" ? dark : light);
|
||||
function openModal() {
|
||||
setIsOpen(true);
|
||||
}
|
||||
function closeModal() {
|
||||
setIsOpen(false);
|
||||
}
|
||||
React.useEffect(() => {
|
||||
setModalCSS(theme === "dark" ? dark : light)
|
||||
}, [theme])
|
||||
return (
|
||||
<div>
|
||||
<button onClick={openModal}>Info</button>
|
||||
<Modal
|
||||
isOpen={modalIsOpen}
|
||||
onRequestClose={closeModal}
|
||||
style={modalCSS}
|
||||
contentLabel={plugin.name}
|
||||
>
|
||||
<h2>{plugin.name} by {parseAuthor(plugin.author)}</h2>
|
||||
<p>{plugin.description}</p>
|
||||
<CodeBlock
|
||||
language="ts"
|
||||
title="/src/commands/ping.ts"
|
||||
showLineNumbers
|
||||
>
|
||||
{plugin.example.replace('```ts', '').replace('```', '').trim()}
|
||||
</CodeBlock>
|
||||
<div className={styles.closeButton}>
|
||||
<button onClick={closeModal}>close</button>
|
||||
</div>
|
||||
</Modal>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function parseAuthor(aut) {
|
||||
const [interestingStuff,] = aut.toString().replace(/[\]<>@]/g, "").split("[")
|
||||
return interestingStuff.trim()
|
||||
}
|
||||
|
||||
/*
|
||||
- description
|
||||
- hash
|
||||
- name
|
||||
- author
|
||||
- link
|
||||
- example
|
||||
- version
|
||||
*/
|
||||
@@ -1,11 +0,0 @@
|
||||
.closeButton {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
padding: 0.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
[data-theme='dark'] .modal {
|
||||
background-color: var(--ifm-color-primary);
|
||||
}
|
||||
46
src/components/SponsorCard.astro
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
export interface Sponsor {
|
||||
id: string;
|
||||
name: string;
|
||||
roles: string[];
|
||||
isAdmin: boolean;
|
||||
isCore: boolean;
|
||||
isBacker: boolean;
|
||||
since: string;
|
||||
image: string;
|
||||
description: string | null;
|
||||
collectiveSlug: string;
|
||||
totalAmountDonated: number;
|
||||
type: string;
|
||||
publicMessage: string | null;
|
||||
isIncognito: boolean;
|
||||
__typename: string;
|
||||
}
|
||||
|
||||
type Props = Pick<
|
||||
Sponsor,
|
||||
"name" | "image" | "totalAmountDonated" | "isAdmin" | "publicMessage"
|
||||
>;
|
||||
|
||||
const { name, image, totalAmountDonated, isAdmin, publicMessage } = Astro.props;
|
||||
---
|
||||
|
||||
<div
|
||||
class="relative p-4 border border-gray-300 dark:border-gray-700 flex items-center flex-col not-content"
|
||||
>
|
||||
<div class="flex items-center flex-col text-center">
|
||||
<img class="w-16 h-16 rounded-full" src={image} alt={name} />
|
||||
{
|
||||
isAdmin && (
|
||||
<div class="px-2 py-1 mt-2 text-xs font-semibold bg-accent-600 dark:bg-accent-200 text-white dark:text-gray-900 rounded-full">
|
||||
Admin
|
||||
</div>
|
||||
)
|
||||
}
|
||||
<p class="font-semibold">{name}</p>
|
||||
</div>
|
||||
<p class="text-sm text-center mb-8">{publicMessage}</p>
|
||||
<p class="font-semibold text-center absolute bottom-2">
|
||||
${totalAmountDonated / 100}
|
||||
</p>
|
||||
</div>
|
||||
@@ -1,92 +0,0 @@
|
||||
import styles from './styles.module.css';
|
||||
import {useEffect, useState} from "react";
|
||||
|
||||
export default function Sponsors() {
|
||||
const [sponsors, setSponsors] = useState({})
|
||||
useEffect(() => {
|
||||
const asyncFunction = async () => {
|
||||
fetch("https://opencollective.com/api/graphql/v2", {
|
||||
body: JSON.stringify({
|
||||
"operationName": "BannerTopContributors",
|
||||
"variables": {
|
||||
"collectiveSlug": "sern"
|
||||
},
|
||||
"query": "query BannerTopContributors($collectiveSlug: String!) {\n account(slug: $collectiveSlug, throwIfMissing: false) {\n id\n currency\n slug\n ... on AccountWithContributions {\n contributors(limit: 150) {\n totalCount\n nodes {\n id\n name\n roles\n isAdmin\n isCore\n isBacker\n since\n image\n description\n collectiveSlug\n totalAmountDonated\n type\n publicMessage\n isIncognito\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n}"
|
||||
}),
|
||||
method: "POST",
|
||||
headers: {
|
||||
"content-type": "application/json"
|
||||
}
|
||||
}).then(async res => setSponsors(await res.json()))
|
||||
}
|
||||
asyncFunction()
|
||||
}, [])
|
||||
return sponsors.data ? (
|
||||
<div className={styles.sponsorLayout}>
|
||||
{sponsors.data?.account?.contributors?.nodes.filter(sp => sp.totalAmountDonated > 0).map((sponsor, index) => (
|
||||
<div key={index} className={styles.sponsorCard}>
|
||||
<a href={`https://opencollective.com/${sponsor.collectiveSlug}`}>
|
||||
<img src={sponsor.image} alt={sponsor.name}/>
|
||||
<h3>{sponsor.name}{sponsor.isAdmin && ' (admin)'}</h3>
|
||||
</a>
|
||||
<p>{sponsor.publicMessage}</p>
|
||||
<p className={styles.sponsorMoney}>${sponsor.totalAmountDonated / 100}</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
) : <LoadingIcon size={100}/>
|
||||
}
|
||||
|
||||
function LoadingIcon({ size }) {
|
||||
return (
|
||||
<svg xmlns="http://www.w3.org/2000/svg" className="icon icon-tabler icon-tabler-loader-2" width="44" height="44"
|
||||
viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||||
<path d="M12 3a9 9 0 1 0 9 9">
|
||||
<animateTransform attributeName="transform" type="rotate" from="0 12 12" to="360 12 12"
|
||||
dur="0.5s" repeatCount="indefinite"/>
|
||||
</path>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
/*
|
||||
type Response = {
|
||||
data: {
|
||||
account: Account;
|
||||
};
|
||||
};
|
||||
|
||||
type Account = {
|
||||
id: string;
|
||||
currency: string;
|
||||
slug: string;
|
||||
contributors: Contributors;
|
||||
__typename: string;
|
||||
};
|
||||
|
||||
type Contributors = {
|
||||
totalCount: number;
|
||||
nodes: Contributor[];
|
||||
__typename: string;
|
||||
};
|
||||
|
||||
type Contributor = {
|
||||
id: string;
|
||||
name: string;
|
||||
roles: string[];
|
||||
isAdmin: boolean;
|
||||
isCore: boolean;
|
||||
isBacker: boolean;
|
||||
since: string;
|
||||
image: string;
|
||||
description: string | null;
|
||||
collectiveSlug: string;
|
||||
totalAmountDonated: number;
|
||||
type: string;
|
||||
publicMessage: string | null;
|
||||
isIncognito: boolean;
|
||||
__typename: string;
|
||||
};
|
||||
*/
|
||||
@@ -1,42 +0,0 @@
|
||||
.sponsorLayout {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
margin: 0 auto;
|
||||
max-width: 1500px;
|
||||
}
|
||||
.sponsorCard {
|
||||
margin: 1rem;
|
||||
text-align: center;
|
||||
background: #deddda;
|
||||
border-radius: 15px;
|
||||
padding: 1rem;
|
||||
transition: transform 0.3s;
|
||||
width: 200px;
|
||||
white-space: break-spaces;
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
height: 350px;
|
||||
}
|
||||
.sponsorMoney {
|
||||
font-size: 1.5rem;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
margin-top: auto;
|
||||
}
|
||||
.sponsorCard img {
|
||||
width: 92px;
|
||||
height: 92px;
|
||||
aspect-ratio: 1/1;
|
||||
border-radius: 50%;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .sponsorCard {
|
||||
background: #282828;
|
||||
color: white;
|
||||
}
|
||||
39
src/components/ThemeSelect.astro
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
// Reference: https://github.com/HiDeoo/starlight-blog/blob/924b20ce0dd5f71eb2416fefed8a5134586893d8/packages/starlight-blog/overrides/ThemeSelect.astro#L10
|
||||
// Have to override Starlight ThemeSelect component to add custom links in the header.
|
||||
import type { Props } from "@astrojs/starlight/props";
|
||||
import StarlightThemeSelect from "starlight-blog/overrides/ThemeSelect.astro";
|
||||
---
|
||||
|
||||
<div>
|
||||
<a href="/guide/walkthrough/new-project">Docs</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="/plugins">Plugins</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="/sponsors">Sponsors</a>
|
||||
</div>
|
||||
<StarlightThemeSelect {...Astro.props}>
|
||||
<slot />
|
||||
</StarlightThemeSelect>
|
||||
|
||||
<style>
|
||||
div {
|
||||
border-inline-end: 1px solid var(--sl-color-gray-5);
|
||||
display: none;
|
||||
padding-inline-end: 1rem;
|
||||
}
|
||||
|
||||
@media (min-width: 50rem) {
|
||||
div {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--sl-color-text-accent);
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
7
src/content/config.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import { defineCollection } from "astro:content";
|
||||
import { docsSchema } from "@astrojs/starlight/schema";
|
||||
import { blogSchema } from "starlight-blog/schema";
|
||||
|
||||
export const collections = {
|
||||
docs: defineCollection({ schema: docsSchema({ extend: blogSchema() }) }),
|
||||
};
|
||||