Page cover

EventEmitter

Send events to listener files in functions/

Register an Event Emitter

import {EventEmitter} from '@splitscript.js/core'
const emitter = new Emitter(
    // folder under `projectroot/functions/` for events to be sent)
    folderName: string,
    // name of this package (should export Events for intellisense)
    packageName: string,
    // possible events (used in the CLI for creating listeners) 
    validEvents: string[]
);

Example

import {EventEmitter} from '@splitscript.js/core'
const emitter = new Emitter(
    'discord', // listeners will be created in projectroot/functions/discord/
    '@splitscript.js/discord', // types will be imported from '@splitscript.js/discord'.Events
    ['message/create', 'message\delete', 'interaction_create', 'channel.create'] // These will be split by /, \, _, or . So creating a message.create listener will create a file in projectroot/functions/discord/message/create/
);
mymodule/index.ts
export * as Events from './events'
mymodule/events.ts
// type names should be in PascalCase
// e.g event message/create
export type MessageCreate = {
     id: string;
     channel_id: string;
     content: string;
}

Send an event

Example

Get listener files

Returns Promise<Listener[]>

type Listener

Last updated

Was this helpful?