From cee6eec14bdc26509ad6a1b75b5b62efa15aeb1a Mon Sep 17 00:00:00 2001 From: Florian Hotze Date: Sun, 28 Dec 2025 22:39:11 +0100 Subject: [PATCH] [rules] Rule Builder: Properly declare type of `then(...)` function Signed-off-by: Florian Hotze --- src/rules/condition-builder.js | 13 ++++--- src/rules/trigger-builder.js | 9 +++-- types/rules/condition-builder.d.ts | 17 ++++++---- types/rules/condition-builder.d.ts.map | 2 +- types/rules/trigger-builder.d.ts | 47 +++++++------------------- types/rules/trigger-builder.d.ts.map | 2 +- 6 files changed, 42 insertions(+), 48 deletions(-) diff --git a/src/rules/condition-builder.js b/src/rules/condition-builder.js index dedd523e2..6588426ea 100644 --- a/src/rules/condition-builder.js +++ b/src/rules/condition-builder.js @@ -1,6 +1,11 @@ const operations = require('./operation-builder'); const items = require('../items/items'); +/** + * @typedef { import("./rules").RuleCallback } RuleCallback + * @private + */ + /** * Condition that wraps a function to determine whether if passes * @@ -23,7 +28,7 @@ class ConditionBuilder { /** * Move to the rule operations * - * @param {*} [fn] the optional function to execute + * @param {RuleCallback} [fn] the optional callback function to execute when the rule is run * @returns {operations.OperationBuilder} */ then (fn) { @@ -57,9 +62,9 @@ class ConditionConf { } /** - * @param {*} [fn] an optional function - * @returns {operations.OperationBuilder} - */ + * @param {RuleCallback} [fn] the optional callback function to execute when the rule is run + * @returns {operations.OperationBuilder} + */ then (fn) { return this.conditionBuilder._then(this, fn); } diff --git a/src/rules/trigger-builder.js b/src/rules/trigger-builder.js index 718367990..3b9a8adfd 100644 --- a/src/rules/trigger-builder.js +++ b/src/rules/trigger-builder.js @@ -7,6 +7,11 @@ const conditions = require('./condition-builder'); * @private */ +/** + * @typedef { import("./rules").RuleCallback } RuleCallback + * @private + */ + /** * @callback ConditionCallback The callback function to determine if the condition is met. * @returns {boolean} true if the condition is met, otherwise false @@ -150,7 +155,7 @@ class TriggerConf { /** * Move to the rule operations * - * @param {*} [fn] the optional function to execute + * @param {RuleCallback} [fn] the optional callback function to execute when the rule is run * @returns {operations.OperationBuilder} */ then (fn) { @@ -160,7 +165,7 @@ class TriggerConf { /** * Move to the rule condition * - * @param {ConditionCallback} [fn] the optional function to execute + * @param {ConditionCallback} [fn] the optional function to check for conditions when the rule is triggered * @returns {conditions.ConditionBuilder} */ if (fn) { diff --git a/types/rules/condition-builder.d.ts b/types/rules/condition-builder.d.ts index 2ddba9c7e..449991f45 100644 --- a/types/rules/condition-builder.d.ts +++ b/types/rules/condition-builder.d.ts @@ -1,3 +1,4 @@ +export type RuleCallback = import("./rules").RuleCallback; /** * Condition that wraps a function to determine whether if passes * @@ -61,6 +62,10 @@ export class ItemStateConditionConf extends ConditionConf { /** @private */ private check; } +/** + * @typedef { import("./rules").RuleCallback } RuleCallback + * @private + */ /** * Condition that wraps a function to determine whether if passes * @@ -77,10 +82,10 @@ export class ConditionBuilder { /** * Move to the rule operations * - * @param {*} [fn] the optional function to execute + * @param {RuleCallback} [fn] the optional callback function to execute when the rule is run * @returns {operations.OperationBuilder} */ - then(fn?: any): operations.OperationBuilder; + then(fn?: RuleCallback): operations.OperationBuilder; /** * Condition of an item in determining whether to process rule. * @@ -98,10 +103,10 @@ declare class ConditionConf { /** @private */ private conditionBuilder; /** - * @param {*} [fn] an optional function - * @returns {operations.OperationBuilder} - */ - then(fn?: any): operations.OperationBuilder; + * @param {RuleCallback} [fn] the optional callback function to execute when the rule is run + * @returns {operations.OperationBuilder} + */ + then(fn?: RuleCallback): operations.OperationBuilder; } import operations = require("./operation-builder"); export {}; diff --git a/types/rules/condition-builder.d.ts.map b/types/rules/condition-builder.d.ts.map index 5dd01597b..50b534619 100644 --- a/types/rules/condition-builder.d.ts.map +++ b/types/rules/condition-builder.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"condition-builder.d.ts","sourceRoot":"","sources":["../../src/rules/condition-builder.js"],"names":[],"mappings":"AAmEA;;;;;GAKG;AACH;IACE;;;;SAIK;IACL,4CAIC;IAFC,eAAe;IACf,WAAY;IAGd;;;;;;SAMK;IACL,cAEC;CACF;AAED;;;;;GAKG;AACH;IACE,kDAIC;IAFC,eAAe;IACf,kBAAyB;IAG3B;;;;;QAKI;IACJ,UAHY,MAAM,GACL,sBAAsB,CAKlC;IAFC,yBAAqB;IAIvB;;;;OAIG;IACH,QAFY,sBAAsB,CAKjC;IAED;;;;OAIG;IACH,SAFY,sBAAsB,CAKjC;IAED;;;;SAIK;IACL,cAHiB,GAAG,KACN,sBAAsB,CAKnC;IAED,eAAe;IACf,cAMC;CACF;AA5JD;;;;GAIG;AACH;IACE,mCAKC;IAJC,eAAe;IACf,iBAAuB;IACvB,eAAe;IACf,YAAa;IAGf,eAAe;IACf,cAGC;IAED;;;;;OAKG;IACH,gBAFa,WAAW,gBAAgB,CASvC;IAED;;;;;QAKI;IACJ,sBAHY,MAAM,GACJ,sBAAsB,CAKnC;IAFC,kCAA2D;CAG9D;AAED;;GAEG;AACH;IACE,mCAGC;IAFC,eAAe;IACf,yBAAwC;IAG1C;;;QAGI;IACJ,gBAFc,WAAW,gBAAgB,CAIxC;CACF"} \ No newline at end of file +{"version":3,"file":"condition-builder.d.ts","sourceRoot":"","sources":["../../src/rules/condition-builder.js"],"names":[],"mappings":"2BAIc,OAAO,SAAS,EAAE,YAAY;AAoE5C;;;;;GAKG;AACH;IACE;;;;SAIK;IACL,4CAIC;IAFC,eAAe;IACf,WAAY;IAGd;;;;;;SAMK;IACL,cAEC;CACF;AAED;;;;;GAKG;AACH;IACE,kDAIC;IAFC,eAAe;IACf,kBAAyB;IAG3B;;;;;QAKI;IACJ,UAHY,MAAM,GACL,sBAAsB,CAKlC;IAFC,yBAAqB;IAIvB;;;;OAIG;IACH,QAFY,sBAAsB,CAKjC;IAED;;;;OAIG;IACH,SAFY,sBAAsB,CAKjC;IAED;;;;SAIK;IACL,cAHiB,GAAG,KACN,sBAAsB,CAKnC;IAED,eAAe;IACf,cAMC;CACF;AAjKD;;;GAGG;AAEH;;;;GAIG;AACH;IACE,mCAKC;IAJC,eAAe;IACf,iBAAuB;IACvB,eAAe;IACf,YAAa;IAGf,eAAe;IACf,cAGC;IAED;;;;;OAKG;IACH,UAHW,YAAY,GACV,WAAW,gBAAgB,CASvC;IAED;;;;;QAKI;IACJ,sBAHY,MAAM,GACJ,sBAAsB,CAKnC;IAFC,kCAA2D;CAG9D;AAED;;GAEG;AACH;IACE,mCAGC;IAFC,eAAe;IACf,yBAAwC;IAG1C;;;OAGG;IACH,UAHW,YAAY,GACV,WAAW,gBAAgB,CAIvC;CACF"} \ No newline at end of file diff --git a/types/rules/trigger-builder.d.ts b/types/rules/trigger-builder.d.ts index 8774ca973..4ac13b074 100644 --- a/types/rules/trigger-builder.d.ts +++ b/types/rules/trigger-builder.d.ts @@ -3,7 +3,6 @@ export type Item = { persistence: import("../items/item-persistence"); semantics: import("../items/item-semantics"); readonly type: string; - /** @private */ readonly groupType: string; readonly name: string; readonly label: string; @@ -11,12 +10,7 @@ export type Item = { readonly numericState: number; readonly quantityState: import("../quantity").Quantity; readonly boolState: boolean; - readonly rawState: HostState; /** - * Item state changed from - * - * @param {string} value - * @returns {ItemTriggerConfig} - */ + readonly rawState: HostState; readonly previousState: string; readonly previousNumericState: number; readonly previousQuantityState: import("../quantity").Quantity; @@ -33,46 +27,26 @@ export type Item = { rawMetadata: any; readonly value: string; readonly configuration: any; - toString(): any; /** - * Specifies a time schedule for the rule to fire. - * - * @param {string} time the time expression (in `HH:mm`) defining the triggering schedule - * @returns {TimeOfDayTriggerConfig} the trigger config - */ + toString(): any; } | { namespace: { rawMetadata: any; readonly value: string; readonly configuration: any; - toString(): any; /** - * Specifies a time schedule for the rule to fire. - * - * @param {string} time the time expression (in `HH:mm`) defining the triggering schedule - * @returns {TimeOfDayTriggerConfig} the trigger config - */ + toString(): any; }; }; replaceMetadata(namespace: string, value: string, configuration?: any): { rawMetadata: any; readonly value: string; readonly configuration: any; - toString(): any; /** - * Specifies a time schedule for the rule to fire. - * - * @param {string} time the time expression (in `HH:mm`) defining the triggering schedule - * @returns {TimeOfDayTriggerConfig} the trigger config - */ + toString(): any; }; removeMetadata(namespace?: string): { rawMetadata: any; readonly value: string; readonly configuration: any; - toString(): any; /** - * Specifies a time schedule for the rule to fire. - * - * @param {string} time the time expression (in `HH:mm`) defining the triggering schedule - * @returns {TimeOfDayTriggerConfig} the trigger config - */ + toString(): any; }; sendCommand(value: any, expire?: JSJoda.Duration, onExpire?: any): void; sendCommandIfDifferent(value: any): boolean; @@ -90,6 +64,7 @@ export type Item = { removeTags(...tagNames: string[]): void; toString(): any; }; +export type RuleCallback = import("./rules").RuleCallback; /** * The callback function to determine if the condition is met. */ @@ -330,6 +305,10 @@ export class SystemTriggerConfig extends TriggerConf { * @typedef { import("../items/items").Item } Item * @private */ +/** + * @typedef { import("./rules").RuleCallback } RuleCallback + * @private + */ /** * @callback ConditionCallback The callback function to determine if the condition is met. * @returns {boolean} true if the condition is met, otherwise false @@ -426,14 +405,14 @@ declare class TriggerConf { /** * Move to the rule operations * - * @param {*} [fn] the optional function to execute + * @param {RuleCallback} [fn] the optional callback function to execute when the rule is run * @returns {operations.OperationBuilder} */ - then(fn?: any): operations.OperationBuilder; + then(fn?: RuleCallback): operations.OperationBuilder; /** * Move to the rule condition * - * @param {ConditionCallback} [fn] the optional function to execute + * @param {ConditionCallback} [fn] the optional function to check for conditions when the rule is triggered * @returns {conditions.ConditionBuilder} */ if(fn?: ConditionCallback): conditions.ConditionBuilder; diff --git a/types/rules/trigger-builder.d.ts.map b/types/rules/trigger-builder.d.ts.map index 5354db2f9..03324947d 100644 --- a/types/rules/trigger-builder.d.ts.map +++ b/types/rules/trigger-builder.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"trigger-builder.d.ts","sourceRoot":"","sources":["../../src/rules/trigger-builder.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"trigger-builder.d.ts","sourceRoot":"","sources":["../../src/rules/trigger-builder.js"],"names":[],"mappings":"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"} \ No newline at end of file