@theotherwillembotha/node-red-plugincore 0.1.0 → 0.2.0

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.
Files changed (134) hide show
  1. package/README.md +616 -220
  2. package/build/GenerateNodes.js +3 -6
  3. package/build/Nodes.html +3 -1504
  4. package/build/Nodes.js +5 -15
  5. package/build/Plugins.html +227 -0
  6. package/build/Plugins.js +18 -8
  7. package/build/core/NodeConstructor.d.ts +9 -16
  8. package/build/core/NodeConstructor.d.ts.map +1 -1
  9. package/build/core/NodeConstructor.js +109 -146
  10. package/build/core/NodeGenerator.d.ts.map +1 -1
  11. package/build/core/NodeGenerator.js +79 -28
  12. package/build/core/NodeManagerRuntime.d.ts +44 -0
  13. package/build/core/NodeManagerRuntime.d.ts.map +1 -0
  14. package/build/core/NodeManagerRuntime.js +140 -0
  15. package/build/core/Utils.d.ts.map +1 -1
  16. package/build/core/logger/service/LoggerService.d.ts +6 -5
  17. package/build/core/logger/service/LoggerService.d.ts.map +1 -1
  18. package/build/core/logger/service/LoggerService.js +51 -20
  19. package/build/core/logger/template/LoggerTemplate.d.ts.map +1 -1
  20. package/build/core/metrics/MetricsDecorator.d.ts +1 -2
  21. package/build/core/metrics/MetricsDecorator.d.ts.map +1 -1
  22. package/build/core/metrics/MetricsDecorator.js +89 -116
  23. package/build/core/metrics/node/CounterMetricConfigNode.d.ts.map +1 -1
  24. package/build/core/metrics/node/CounterMetricConfigNode.js +4 -5
  25. package/build/core/metrics/node/GaugeMetricConfigNode.d.ts.map +1 -1
  26. package/build/core/metrics/node/GaugeMetricConfigNode.js +5 -6
  27. package/build/core/metrics/node/MetricsConfigNode.d.ts +19 -9
  28. package/build/core/metrics/node/MetricsConfigNode.d.ts.map +1 -1
  29. package/build/core/metrics/node/MetricsConfigNode.js +14 -45
  30. package/build/core/metrics/node/TimerMetricConfigNode.d.ts.map +1 -1
  31. package/build/core/metrics/node/TimerMetricConfigNode.js +11 -17
  32. package/build/core/metrics/service/MetricsService.d.ts +110 -114
  33. package/build/core/metrics/service/MetricsService.d.ts.map +1 -1
  34. package/build/core/metrics/service/MetricsService.js +122 -339
  35. package/build/core/metrics/template/CounterMetricTemplate.d.ts.map +1 -1
  36. package/build/core/metrics/template/GaugeMetricTemplate.d.ts.map +1 -1
  37. package/build/core/metrics/template/MetricsTemplate.d.ts.map +1 -1
  38. package/build/core/metrics/template/MetricsTemplate.js +1 -2
  39. package/build/core/metrics/template/TimerMetricTemplate.d.ts.map +1 -1
  40. package/build/core/other/node/DelegatedConfigReferenceNode.d.ts +1 -1
  41. package/build/core/other/node/DelegatedConfigReferenceNode.d.ts.map +1 -1
  42. package/build/core/other/node/DelegatedConfigReferenceNode.js +1 -1
  43. package/build/core/other/service/InputService.d.ts.map +1 -1
  44. package/build/core/other/service/SettingsService.d.ts +1 -2
  45. package/build/core/other/service/SettingsService.d.ts.map +1 -1
  46. package/build/core/other/service/SettingsService.js +19 -5
  47. package/build/core/other/template/BasicTemplate.d.ts.map +1 -1
  48. package/build/core/other/template/SettingsTemplate.d.ts.map +1 -1
  49. package/build/core/state/node/InternalStateConfigNode.d.ts +16 -0
  50. package/build/core/state/node/InternalStateConfigNode.d.ts.map +1 -0
  51. package/build/core/state/node/InternalStateConfigNode.js +89 -0
  52. package/build/core/state/node/StateConfigNode.d.ts +24 -0
  53. package/build/core/state/node/StateConfigNode.d.ts.map +1 -0
  54. package/build/core/state/node/StateConfigNode.js +22 -0
  55. package/build/core/state/service/StateService.d.ts +34 -0
  56. package/build/core/state/service/StateService.d.ts.map +1 -0
  57. package/build/core/state/service/StateService.js +201 -0
  58. package/build/core/state/template/StateTemplate.d.ts +8 -0
  59. package/build/core/state/template/StateTemplate.d.ts.map +1 -0
  60. package/build/core/state/template/StateTemplate.js +11 -0
  61. package/build/core/tagging/ServiceDescriptionDecorator.d.ts +10 -0
  62. package/build/core/tagging/ServiceDescriptionDecorator.d.ts.map +1 -0
  63. package/build/core/tagging/ServiceDescriptionDecorator.js +10 -0
  64. package/build/core/tagging/service/NodeTypeService.d.ts +1 -2
  65. package/build/core/tagging/service/NodeTypeService.d.ts.map +1 -1
  66. package/build/core/tagging/service/NodeTypeService.js +19 -5
  67. package/build/core/ui/template/ScriptEditorTemplate.d.ts.map +1 -1
  68. package/build/core/ui/template/UIHelperTemplate.d.ts.map +1 -1
  69. package/build/core/webhook/node/WebhookServerConfigNode.d.ts.map +1 -1
  70. package/build/core/webhook/service/ReverseProxyTypeService.d.ts.map +1 -1
  71. package/build/core/webhook/service/WebhookServerService.d.ts +3 -4
  72. package/build/core/webhook/service/WebhookServerService.d.ts.map +1 -1
  73. package/build/core/webhook/service/WebhookServerService.js +48 -18
  74. package/build/core/webhook/template/WebhookTemplate.d.ts.map +1 -1
  75. package/build/index.d.ts +5 -2
  76. package/build/index.d.ts.map +1 -1
  77. package/build/index.js +6 -2
  78. package/build/runtime/NodeManagerRuntime.js +140 -0
  79. package/documentation/CounterMetricConfigNode.png +0 -0
  80. package/documentation/GaugeMetricConfigNode.png +0 -0
  81. package/documentation/LoggerTemplate.png +0 -0
  82. package/documentation/MetricsTemplate.png +0 -0
  83. package/documentation/StateTemplate.png +0 -0
  84. package/documentation/TimerMetricConfigNode_histogram.png +0 -0
  85. package/documentation/TimerMetricConfigNode_summary.png +0 -0
  86. package/documentation/WebhookServerConfigNode.png +0 -0
  87. package/documentation/WebhookTemplate.png +0 -0
  88. package/package.json +4 -10
  89. package/src/GenerateNodes.ts +7 -11
  90. package/src/core/NodeConstructor.ts +130 -186
  91. package/src/core/NodeGenerator.ts +88 -33
  92. package/src/core/NodeManagerRuntime.ts +179 -0
  93. package/src/core/logger/service/LoggerService.ts +39 -26
  94. package/src/core/logger/template/LoggerTemplate.html +11 -6
  95. package/src/core/metrics/MetricsDecorator.ts +140 -168
  96. package/src/core/metrics/node/CounterMetricConfigNode.ts +20 -20
  97. package/src/core/metrics/node/GaugeMetricConfigNode.ts +24 -25
  98. package/src/core/metrics/node/MetricsConfigNode.ts +29 -48
  99. package/src/core/metrics/node/TimerMetricConfigNode.ts +50 -59
  100. package/src/core/metrics/service/MetricsService.ts +214 -489
  101. package/src/core/metrics/template/CounterMetricTemplate.html +0 -1
  102. package/src/core/metrics/template/GaugeMetricTemplate.html +1 -1
  103. package/src/core/metrics/template/MetricsTemplate.html +132 -13
  104. package/src/core/metrics/template/MetricsTemplate.ts +3 -4
  105. package/src/core/other/node/DelegatedConfigReferenceNode.ts +1 -1
  106. package/src/core/other/service/SettingsService.ts +6 -10
  107. package/src/core/other/template/BasicTemplate.html +1 -1
  108. package/src/core/state/node/InternalStateConfigNode.html +77 -0
  109. package/src/core/state/node/InternalStateConfigNode.ts +102 -0
  110. package/src/core/state/node/StateConfigNode.ts +29 -0
  111. package/src/core/state/service/StateService.ts +180 -0
  112. package/src/core/state/template/StateTemplate.html +244 -0
  113. package/src/core/state/template/StateTemplate.ts +17 -0
  114. package/src/core/tagging/ServiceDescriptionDecorator.ts +23 -0
  115. package/src/core/tagging/service/NodeTypeService.ts +6 -11
  116. package/src/core/ui/template/UIHelperTemplate.html +41 -26
  117. package/src/core/webhook/service/WebhookServerService.ts +39 -23
  118. package/src/core/webhook/template/WebhookTemplate.html +28 -35
  119. package/src/index.ts +7 -2
  120. package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts +0 -20
  121. package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts.map +0 -1
  122. package/build/core/logger/node/ConsoleLoggerConfigNode.js +0 -62
  123. package/build/core/logger/node/RestLoggerConfigNode.d.ts +0 -40
  124. package/build/core/logger/node/RestLoggerConfigNode.d.ts.map +0 -1
  125. package/build/core/logger/node/RestLoggerConfigNode.js +0 -128
  126. package/documentation/ConsoleLoggerConfigNode.png +0 -0
  127. package/documentation/MetricsConfigNode.png +0 -0
  128. package/documentation/RestLoggerConfigNode.png +0 -0
  129. package/documentation/TimerMetricConfigNode.png +0 -0
  130. package/documentation/WebhookNode.png +0 -0
  131. package/src/core/logger/node/ConsoleLoggerConfigNode.html +0 -90
  132. package/src/core/logger/node/ConsoleLoggerConfigNode.ts +0 -71
  133. package/src/core/logger/node/RestLoggerConfigNode.html +0 -183
  134. package/src/core/logger/node/RestLoggerConfigNode.ts +0 -170
@@ -1,30 +1,27 @@
1
1
 
2
2
  import { Node } from "node-red";
3
- import { ConfigNode, ConfigNodeConfig, NodeDescriptor, NodeManager } from "../../NodeConstructor"
4
- import { MetricsContainer, MetricsService, BucketType, HistogramMetric, HistogramMetricConfig, SummaryMetricConfig, PercentileType, SummaryMetric} from "../service/MetricsService"
3
+ import { ConfigNode, ConfigNodeConfig, NodeManager } from "../../NodeConstructor"
4
+ import { MetricsContainer, MetricsService, BucketType, HistogramMetric, HistogramMetricConfig, SummaryMetricConfig, PercentileType, SummaryMetric, DoNothingMetricsContainer} from "../service/MetricsService"
5
5
  import { SourceUtility } from "../../NodeGenerator";
6
- import { MetricsConfigNode } from "./MetricsConfigNode";
7
6
  import { MetricsTemplate, MetricsTemplateConfig } from "../template/MetricsTemplate";
8
7
  import { MetricCollectorType } from "../MetricsDecorator";
9
8
  import { NodeDescription } from "../../tagging/NodeDescriptionDecorator";
10
9
 
11
-
12
-
13
10
  interface TimerMetricConfigNodeConfig extends ConfigNodeConfig, MetricsTemplateConfig {
14
- description:string,
11
+ description: string,
15
12
  metricType: MetricCollectorType,
16
13
 
17
14
  buckettype: BucketType,
18
- buckettype_manual_intervals:string,
19
- buckettype_linear_start:string,
20
- buckettype_linear_interval:string,
21
- buckettype_linear_count:string,
22
- buckettype_exponential_start:string,
23
- buckettype_exponential_factor:string,
24
- buckettype_exponential_count:string,
25
-
26
- percentiletype:PercentileType,
27
- percentiletype_manual_intervals:string,
15
+ buckettype_manual_intervals: string,
16
+ buckettype_linear_start: string,
17
+ buckettype_linear_interval: string,
18
+ buckettype_linear_count: string,
19
+ buckettype_exponential_start: string,
20
+ buckettype_exponential_factor: string,
21
+ buckettype_exponential_count: string,
22
+
23
+ percentiletype: PercentileType,
24
+ percentiletype_manual_intervals: string,
28
25
  }
29
26
 
30
27
  @NodeDescription({
@@ -34,85 +31,79 @@ interface TimerMetricConfigNodeConfig extends ConfigNodeConfig, MetricsTemplateC
34
31
  sourceFile:SourceUtility.getSourcePath("/build/", "/src/") + "TimerMetricConfigNode.html",
35
32
  package: "@theotherwillembotha/node-red-plugincore",
36
33
  templates: [
37
- { template: MetricsTemplate, config: {isConfigNode:true}}
34
+ { template: MetricsTemplate, config: { isConfigNode: true } }
38
35
  ],
39
- dependencies:[ MetricsConfigNode, MetricsService ],
36
+ dependencies:[ MetricsService ],
40
37
  tags: [ "Core", "Metric" ]
41
38
  })
42
39
  export class TimerMetricConfigNode extends ConfigNode<TimerMetricConfigNodeConfig> {
43
40
  private _metrics: MetricsContainer;
44
- private _timer!: HistogramMetric|SummaryMetric;
41
+ private _timer!: HistogramMetric | SummaryMetric;
45
42
 
46
43
  constructor(node: Node, config: TimerMetricConfigNodeConfig){
47
44
  super(node, config);
48
- let _this = this;
49
45
 
50
- this._metrics = (NodeManager.RED.nodes.getNode(config.metricsReference) as any).node().metrics();
46
+ const refNode = config.metricsEnabled && config.metricsReference ? NodeManager.RED.nodes.getNode(config.metricsReference) : null;
47
+ this._metrics = refNode ? (refNode as any).node().metrics() : new DoNothingMetricsContainer();
51
48
 
52
- let bucketConfig:any = {}
49
+ const bucketConfig: any = {};
53
50
 
54
- switch(config.buckettype){
55
- case BucketType.default:{
56
- // do nothing
57
- break;
58
- }
59
- case BucketType.manual:{
51
+ switch (config.buckettype) {
52
+ case BucketType.manual:
60
53
  bucketConfig.intervals = config.buckettype_manual_intervals.split(",").map(i => Number.parseFloat(i.trim()));
61
54
  break;
62
- }
63
- case BucketType.linear:{
64
- bucketConfig.start = config.buckettype_linear_start;
55
+ case BucketType.linear:
56
+ bucketConfig.start = config.buckettype_linear_start;
65
57
  bucketConfig.interval = config.buckettype_linear_interval;
66
- bucketConfig.count = config.buckettype_linear_count;
58
+ bucketConfig.count = config.buckettype_linear_count;
67
59
  break;
68
- }
69
- case BucketType.exponential:{
70
- bucketConfig.start = config.buckettype_exponential_start;
60
+ case BucketType.exponential:
61
+ bucketConfig.start = config.buckettype_exponential_start;
71
62
  bucketConfig.factor = config.buckettype_exponential_factor;
72
- bucketConfig.count = config.buckettype_exponential_count;
63
+ bucketConfig.count = config.buckettype_exponential_count;
64
+ break;
65
+ default:
73
66
  break;
74
- }
75
67
  }
76
68
 
77
- if(config.metricType === MetricCollectorType.histogram){
78
- let timerConfig:HistogramMetricConfig = {
79
- node:{
80
- id: this.id(),
69
+ if (config.metricType === MetricCollectorType.histogram) {
70
+ const timerConfig: HistogramMetricConfig = {
71
+ node: {
72
+ id: this.id(),
81
73
  name: this.name(),
82
74
  flow: this.flow(),
83
75
  type: this.type()
84
76
  },
85
- buckettype:config.buckettype,
86
- bucketconfig:bucketConfig,
87
- metricname:config.name,
88
- metricdescription:config.description
89
- }
90
-
77
+ buckettype: config.buckettype,
78
+ bucketconfig: bucketConfig,
79
+ metricname: config.name,
80
+ metricdescription: config.description
81
+ };
91
82
  this._timer = this._metrics.histogram(timerConfig);
92
83
  }
93
- if(config.metricType === MetricCollectorType.summary) {
94
- let timerConfig:SummaryMetricConfig = {
95
- node:{
96
- id: this.id(),
84
+
85
+ if (config.metricType === MetricCollectorType.summary) {
86
+ const timerConfig: SummaryMetricConfig = {
87
+ node: {
88
+ id: this.id(),
97
89
  name: this.name(),
98
90
  flow: this.flow(),
99
91
  type: this.type()
100
92
  },
101
- percentileType:config.percentiletype,
102
- percentileConfig:config.percentiletype_manual_intervals,
103
- metricname:config.name,
104
- metricdescription:config.description,
105
- }
106
-
93
+ percentileType: config.percentiletype,
94
+ percentileConfig: config.percentiletype_manual_intervals as any,
95
+ metricname: config.name,
96
+ metricdescription: config.description,
97
+ };
107
98
  this._timer = this._metrics.summary(timerConfig);
108
99
  }
109
100
  }
110
101
 
111
- public metrics():MetricsContainer {
102
+ public metrics(): MetricsContainer {
112
103
  return this._metrics;
113
104
  }
114
105
 
115
- public timer():HistogramMetric|SummaryMetric {
106
+ public timer(): HistogramMetric | SummaryMetric {
116
107
  return this._timer;
117
108
  }
118
109
  }