@mirta/globals 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/eslint/index.d.ts CHANGED
@@ -2,6 +2,7 @@ declare interface GlobalsMirta {
2
2
  readonly '__DEV__': false
3
3
  readonly '__TEST__': false
4
4
  readonly 'log': false
5
+ readonly 'debug': false
5
6
  readonly 'dev': false
6
7
  readonly 'cron': false
7
8
  readonly 'timers': false
package/eslint/index.js CHANGED
@@ -2,6 +2,7 @@ export default {
2
2
  '__DEV__': 'readonly',
3
3
  '__TEST__': 'readonly',
4
4
  'log': 'readonly',
5
+ 'debug': 'readonly',
5
6
  'dev': 'readonly',
6
7
  'cron': 'readonly',
7
8
  'timers': 'readonly',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mirta/globals",
3
3
  "description": "Complete set of types for wb-rule development in TypeScript",
4
- "version": "0.3.1",
4
+ "version": "0.3.2",
5
5
  "license": "Unlicense",
6
6
  "keywords": [
7
7
  "mirta",
@@ -16,6 +16,7 @@
16
16
  * // }
17
17
  * ```
18
18
  * @since 0.0.4
19
+ *
19
20
  **/
20
21
  declare type Expand<T> = { [K in keyof T]: T[K] } & {}
21
22
 
@@ -25,47 +26,114 @@ declare namespace WbRules {
25
26
  /** Расширение для поддержки module.static */
26
27
  type ModuleStatic = Record<string, unknown>
27
28
 
28
- type LogFunc = (
29
- message: string | undefined, ...args: (string | number | boolean)[]
30
- ) => void
29
+ /**
30
+ * Набор методов для логирования.
31
+ *
32
+ * @since 0.3.2
33
+ *
34
+ **/
35
+ interface LogMethods {
31
36
 
32
- interface Log {
33
37
  /**
34
38
  * Запись в лог информационного сообщения, полезного в долгосрочной перспективе.
35
- * @param message
36
- * @param args
37
- */
38
- (message: string | undefined, ...args: (string | number | boolean)[]): void
39
+ * Используется форматированный вывод.
40
+ *
41
+ * @param format Форматируемый шаблон сообщения.
42
+ * @param args Параметры для заполнения формата.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * log.info('Свет в комнате включён на {} мин.', 30)
47
+ * ```
48
+ **/
49
+ info(format: string, ...args: unknown[]): void
39
50
 
40
51
  /**
41
- * Запись в лог сообщения, полезного при отладке в процессе разработки и не представляющего ценности в долгосрочной перспективе.
42
- * @param message
43
- * @param args
44
- */
45
- debug(message: unknown, ...args: (string | number | boolean)[]): void
52
+ * Запись в лог произвольного значения, полезного в долгосрочной перспективе.
53
+ * @param value Значение для записи в лог.
54
+ *
55
+ **/
56
+ info(value: unknown): void
46
57
 
47
58
  /**
48
- * Запись в лог информационного сообщения, полезного в долгосрочной перспективе.
49
- * @param message
50
- * @param args
51
- */
52
- info(message: string | undefined, ...args: (string | number | boolean)[]): void
59
+ * Запись в лог сообщения, полезного при отладке и не имеющего долгосрочной ценности.
60
+ *
61
+ * @param format Форматируемый шаблон сообщения.
62
+ * @param args Параметры для заполнения формата.
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * log.debug('Значение сенсора "{}": температура {} °C, влажность {} %', 'bathroom', 25, 40)
67
+ **/
68
+ debug(format: string, ...args: unknown[]): void
53
69
 
54
70
  /**
55
- * Запись ненормального или неожиданного события в потоке приложения, но не прекращение выполнения.
56
- * @param message
57
- * @param args
58
- */
59
- warning(message: string | undefined, ...args: (string | number | boolean)[]): void
71
+ * Запись в лог произвольного значения, полезного при отладке и не имеющего долгосрочной ценности.
72
+ *
73
+ * @param value Значение для записи в лог.
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * log.debug(JSON.stringify({ location: 'bathroom', temperature: 25, humidity: 40 }))
78
+ * ```
79
+ **/
80
+ debug(value: unknown): void
60
81
 
61
82
  /**
62
- * Запись события остановки выполнения из-за сбоя текущего действия.
63
- * @param message
64
- * @param args
65
- */
66
- error(message: string | undefined, ...args: (string | number | boolean)[]): void
83
+ * Запись в лог предупреждения о ненормальном или неожиданном событии,
84
+ * не приводящем к остановке программы.
85
+ *
86
+ * Используется форматированный вывод.
87
+ *
88
+ * @param format Форматируемый шаблон сообщения.
89
+ * @param args Параметры для заполнения формата.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * log.warning('Движение в охраняемой зоне: {}', 'hallway_sensor_1')
94
+ * ```
95
+ **/
96
+ warning(format: string, ...args: unknown[]): void
97
+
98
+ /**
99
+ * Запись в лог предупреждения о ненормальном или неожиданном значении,
100
+ * не приводящем к остановке программы.
101
+ *
102
+ * @param value Значение для записи в лог.
103
+ *
104
+ **/
105
+ warning(value: unknown): void
106
+
107
+ /**
108
+ * Запись в лог критического события, приведшего к сбою и остановке выполнения.
109
+ * Используется форматированный вывод.
110
+ *
111
+ * @param format Форматируемый шаблон сообщения.
112
+ * @param args Параметры для заполнения формата.
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * log.error('Перегев тёплого пола: {} °C, выключение', 30)
117
+ * ```
118
+ **/
119
+ error(format: string, ...args: unknown[]): void
120
+
121
+ /**
122
+ * Запись в лог критического значения, приведшего к сбою и остановке выполнения.
123
+ *
124
+ * @param value Значение для записи в лог.
125
+ *
126
+ **/
127
+ error(value: unknown): void
67
128
  }
68
129
 
130
+ /** @deprecated since version 0.3.2 */
131
+ type LogFunc = (format: string, ...args: unknown[]) => void
132
+
133
+ type Log = LogMethods['info'] & LogMethods
134
+
135
+ type Debug = LogMethods['debug']
136
+
69
137
  interface CronEntry {
70
138
  spec: string
71
139
  }
@@ -384,6 +452,62 @@ declare namespace WbRules {
384
452
  order?: number
385
453
  }>
386
454
 
455
+ /**
456
+ * Опции контрола типа `text`.
457
+ *
458
+ * @since 0.3.2
459
+ *
460
+ **/
461
+ type TextControlOptions = Extract<ControlOptions, { type: 'text' }>
462
+
463
+ /**
464
+ * Опции контрола типа `value`.
465
+ *
466
+ * @since 0.3.2
467
+ *
468
+ **/
469
+ type ValueControlOptions = Extract<ControlOptions, { type: 'value' }>
470
+
471
+ /**
472
+ * Опции контрола типа `range`.
473
+ *
474
+ * @since 0.3.2
475
+ *
476
+ **/
477
+ type RangeControlOptions = Extract<ControlOptions, { type: 'range' }>
478
+
479
+ /**
480
+ * Опции контрола типа `switch`.
481
+ *
482
+ * @since 0.3.2
483
+ *
484
+ **/
485
+ type SwitchControlOptions = Extract<ControlOptions, { type: 'switch' }>
486
+
487
+ /**
488
+ * Опции контрола типа `pushbutton`.
489
+ *
490
+ * @since 0.3.2
491
+ *
492
+ **/
493
+ type PushButtonControlOptions = Extract<ControlOptions, { type: 'pushbutton' }>
494
+
495
+ /**
496
+ * Опции контрола типа `rgb`.
497
+ *
498
+ * @since 0.3.2
499
+ *
500
+ **/
501
+ type RgbControlOptions = Extract<ControlOptions, { type: 'rgb' }>
502
+
503
+ /**
504
+ * Опции контрола типа `alarm`.
505
+ *
506
+ * @since 0.3.2
507
+ *
508
+ **/
509
+ type AlarmControlOptions = Extract<ControlOptions, { type: 'alarm' }>
510
+
387
511
  /**
388
512
  * Интерфейс устройства
389
513
  */
@@ -495,6 +619,14 @@ declare var __filename: string
495
619
  /** Используется для вывода сообщений в журнал контроллера и отладочную консоль. */
496
620
  declare var log: WbRules.Log
497
621
 
622
+ /**
623
+ * Используется для вывода отладочных сообщений в журнал контроллера и отладочную консоль.
624
+ *
625
+ * @since 0.3.2
626
+ *
627
+ **/
628
+ declare var debug: WbRules.Debug
629
+
498
630
  /** Объект доступа к MQTT-топикам устройства. */
499
631
  declare var dev: WbRules.Dev
500
632
 
@@ -730,28 +862,40 @@ declare class PersistentStorage {
730
862
  }
731
863
 
732
864
  /**
733
- * Класс оповещения
734
- * @abstract
735
- */
865
+ * Класс оповещения.
866
+ *
867
+ **/
736
868
  declare abstract class Notify {
737
869
  /**
738
- * Отправляет почту указанному адресату
739
- * @static
740
- * @param to адресат
741
- * @param subject тема
742
- * @param text содержимое
743
- * @memberof Notify
744
- */
870
+ * Отправляет электронное письмо указанному адресату.
871
+ *
872
+ * @param to Адресат.
873
+ * @param subject Тема письма.
874
+ * @param text Текст письма.
875
+ *
876
+ **/
745
877
  static sendEmail(to: string, subject: string, text: string): void
746
878
 
747
879
  /**
748
880
  * Отправляет SMS на указанный номер
749
881
  * Для отправки SMS используется ModemManager, а если он не установлен, то gammu.
750
- * @static
751
- * @param to номер адресата
752
- * @param text содержимое
753
- * @param command используя команду
754
- * @memberof Notify
755
- */
882
+ *
883
+ * @param to Номер адресата.
884
+ * @param text Текст сообщения.
885
+ * @param command Используя команду.
886
+ *
887
+ **/
756
888
  static sendSMS(to: string, text: string, command?: string): void
889
+
890
+ /**
891
+ * Отправляет сообщение в указанный чат или канал Telegram.
892
+ *
893
+ * @param token Токен вашего бота Telegram.
894
+ * @param chatId Уникальный идентификатор целевого чата или username целевого канала (в формате `@channelusername`).
895
+ * @param text Текст сообщения.
896
+ *
897
+ * @since 0.3.2
898
+ *
899
+ **/
900
+ static sendTelegramMessage(token: string, chatId: string, text: string): void
757
901
  }