diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index b9c9e24cc..a97628bc4 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -820,6 +820,22 @@ export class Pattern { ); } + addTrigger(onTrigger) { + return this.withHap((hap) => + hap.setContext({ + ...hap.context, + onTrigger: (...args) => { + if (hap.context.onTrigger) { + hap.context.onTrigger(...args); + } + onTrigger(...args); + }, + // this flag causes the default output to be ignored + dominantTrigger: true, + }), + ); + } + log(func = (_, hap) => `[hap] ${hap.showWhole(true)}`, getData = (_, hap) => ({ hap })) { return this.onTrigger((...args) => { logger(func(...args), undefined, getData(...args));