diff --git a/packages/@stimulus/core/src/context.ts b/packages/@stimulus/core/src/context.ts index 740f8a13..631a9a19 100644 --- a/packages/@stimulus/core/src/context.ts +++ b/packages/@stimulus/core/src/context.ts @@ -70,6 +70,13 @@ export class Context implements ErrorHandler { return this.element.parentElement } + dispatch(eventName: String, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) { + const type = prefix ? `${prefix}:${eventName}` : eventName + const event = new CustomEvent(type, { detail, bubbles, cancelable }) + target.dispatchEvent(event) + return event + } + // Error handling handleError(error: Error, message: string, detail: object = {}) {