@mirta/globals 0.2.5 → 0.2.8

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
@@ -17,6 +17,7 @@ declare interface GlobalsMirta {
17
17
  readonly 'readConfig': false
18
18
  readonly 'trackMqtt': false
19
19
  readonly 'publish': false
20
+ readonly 'StorableObject': false
20
21
  readonly 'PersistentStorage': false
21
22
  readonly 'Notify': false
22
23
  }
package/eslint/index.js CHANGED
@@ -17,6 +17,7 @@ export default {
17
17
  'readConfig': 'readonly',
18
18
  'trackMqtt': 'readonly',
19
19
  'publish': 'readonly',
20
+ 'StorableObject': 'readonly',
20
21
  'PersistentStorage': 'readonly',
21
22
  'Notify': 'readonly',
22
23
  }
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.2.5",
4
+ "version": "0.2.8",
5
5
  "license": "Unlicense",
6
6
  "keywords": [
7
7
  "mirta",
@@ -31,8 +31,5 @@
31
31
  },
32
32
  "bugs": {
33
33
  "url": "https://github.com/wb-mirta/core/issues"
34
- },
35
- "publishConfig": {
36
- "access": "public"
37
34
  }
38
35
  }
@@ -197,7 +197,18 @@ declare namespace WbRules {
197
197
 
198
198
  setMin(min: number): void
199
199
 
200
- setError(order: number): void
200
+ setPrecision(precision: number): void
201
+
202
+ /**
203
+ * Позволяет указать на наличие ошибки уровня контрола.
204
+ * Применимо только к виртуальным устройствам.
205
+ *
206
+ * @param message Текст ошибки.
207
+ *
208
+ **/
209
+ setError(message: string): void
210
+
211
+ setOrder(order: number): void
201
212
 
202
213
  setValue(value: MqttValue | ControlValueOptions): void
203
214
 
@@ -221,6 +232,13 @@ declare namespace WbRules {
221
232
 
222
233
  getMin(): number
223
234
 
235
+ getPrecision(): number
236
+
237
+ /**
238
+ * Возвращает текст ошибки,
239
+ * а при её отсутствии - пустую строку.
240
+ *
241
+ **/
224
242
  getError(): string
225
243
 
226
244
  getOrder(): number
@@ -385,6 +403,22 @@ declare namespace WbRules {
385
403
  controlsList(): Control[]
386
404
 
387
405
  isVirtual(): boolean
406
+
407
+ /**
408
+ * Позволяет указать на наличие ошибки уровня устройства.
409
+ * Применимо только к виртуальным устройствам.
410
+ *
411
+ * @param message Текст ошибки.
412
+ *
413
+ **/
414
+ setError(message: string): void
415
+
416
+ /**
417
+ * Возвращает текст ошибки,
418
+ * а при её отсутствии - пустую строку.
419
+ *
420
+ **/
421
+ getError(): string
388
422
  }
389
423
 
390
424
  type ControlOptionsTree = Record<string, ControlOptions>
@@ -645,6 +679,52 @@ declare function publish(
645
679
  retain?: boolean
646
680
  ): void
647
681
 
682
+ /**
683
+ * Проксирует исходный объект, обеспечивая автоматическую синхронизацию
684
+ * изменений в его свойствах со связанным хранилищем {@link PersistentStorage}.
685
+ *
686
+ * Важно: отслеживание изменений поддерживается только для возвращаемого функцией объекта.
687
+ * Исходный объект не получит никакой дополнительной функциональности.
688
+ *
689
+ * @template TObject Тип исходного объекта. Обычно выводится автоматически (type inference), но при необходимости его можно задать явно.
690
+ *
691
+ * @param source Исходный объект, который будет проксирован.
692
+ *
693
+ * @example
694
+ *
695
+ * ```ts
696
+ * // Оборачивание объекта в прокси.
697
+ * const user = StorableObject({ id: 1, name: 'Alice' })
698
+ *
699
+ * // Подключение к энергонезависимому хранилищу.
700
+ * const storage = new PersistentStorage('users', { global: true })
701
+ * storage['user'] = user
702
+ *
703
+ * // Объект автоматически отслеживает изменения и передаёт их в хранилище.
704
+ * user.name = 'Bob'
705
+ *
706
+ * ```
707
+ * @example
708
+ *
709
+ * ```ts
710
+ * interface User {
711
+ * id: number,
712
+ * name: string
713
+ * }
714
+ *
715
+ * // Подключение к энергонезависимому хранилищу.
716
+ * const storage = new PersistentStorage('users', { global: true })
717
+ *
718
+ * // Извлечение объекта.
719
+ * const retrievedUser = storage['user'] as User
720
+ *
721
+ * // Изменения опять будут автоматически передаваться в хранилище.
722
+ * retrievedUser.name = 'Charlie'
723
+ *
724
+ * ```
725
+ */
726
+ declare function StorableObject<TObject>(source: TObject): TObject
727
+
648
728
  declare class PersistentStorage {
649
729
  constructor(name: string, options: WbRules.StorageOptions)
650
730
  }