@theotherwillembotha/node-red-plugincore 0.0.54 → 0.0.55
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/README.md +5 -8
- package/build/GenerateNodes.js +0 -1
- package/build/Nodes.html +0 -141
- package/build/Nodes.js +0 -2
- package/build/Plugins.js +2 -2
- package/build/core/NodeConstructor.js +15 -50
- package/build/core/NodeGenerator.js +8 -10
- package/build/core/logger/LoggerDecorator.d.ts.map +1 -1
- package/build/core/logger/LoggerDecorator.js +34 -38
- package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts +11 -7
- package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts.map +1 -1
- package/build/core/logger/node/ConsoleLoggerConfigNode.js +24 -10
- package/build/core/logger/node/RestLoggerConfigNode.d.ts +22 -6
- package/build/core/logger/node/RestLoggerConfigNode.d.ts.map +1 -1
- package/build/core/logger/node/RestLoggerConfigNode.js +93 -23
- package/build/core/logger/service/LoggerService.d.ts +59 -68
- package/build/core/logger/service/LoggerService.d.ts.map +1 -1
- package/build/core/logger/service/LoggerService.js +76 -165
- package/build/core/logger/template/LoggerTemplate.d.ts +9 -1
- package/build/core/logger/template/LoggerTemplate.d.ts.map +1 -1
- package/build/core/metrics/node/CounterMetricConfigNode.js +0 -2
- package/build/core/metrics/node/GaugeMetricConfigNode.js +0 -2
- package/build/core/metrics/node/MetricsConfigNode.js +0 -1
- package/build/core/metrics/node/TimerMetricConfigNode.js +0 -2
- package/build/core/metrics/service/MetricsService.js +10 -24
- package/build/core/other/service/SettingsService.js +0 -2
- package/build/core/tagging/service/NodeTypeService.js +1 -2
- package/build/core/webhook/WebhookDecorator.d.ts.map +1 -1
- package/build/core/webhook/WebhookDecorator.js +4 -4
- package/build/core/webhook/node/WebhookServerConfigNode.js +0 -1
- package/build/core/webhook/service/ReverseProxyTypeService.d.ts +0 -2
- package/build/core/webhook/service/ReverseProxyTypeService.d.ts.map +1 -1
- package/build/core/webhook/service/ReverseProxyTypeService.js +1 -6
- package/build/core/webhook/service/WebhookServerService.d.ts +1 -1
- package/build/core/webhook/service/WebhookServerService.d.ts.map +1 -1
- package/build/core/webhook/service/WebhookServerService.js +6 -9
- package/build/core/webhook/template/WebhookTemplate.d.ts +1 -1
- package/build/core/webhook/template/WebhookTemplate.d.ts.map +1 -1
- package/build/index.d.ts +1 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -2
- package/build/resources/editorLanguageExtension.js +1 -2
- package/package.json +5 -3
- package/resources/editorLanguageExtension.js +1 -2
- package/src/GenerateNodes.ts +2 -2
- package/src/core/NodeConstructor.ts +1 -1
- package/src/core/NodeGenerator.ts +2 -2
- package/src/core/logger/LoggerDecorator.ts +56 -53
- package/src/core/logger/node/ConsoleLoggerConfigNode.ts +39 -14
- package/src/core/logger/node/RestLoggerConfigNode.ts +128 -25
- package/src/core/logger/service/LoggerService.ts +103 -239
- package/src/core/logger/template/LoggerTemplate.ts +11 -1
- package/src/core/webhook/WebhookDecorator.ts +1 -3
- package/src/core/webhook/service/ReverseProxyTypeService.ts +0 -4
- package/src/core/webhook/service/WebhookServerService.ts +1 -1
- package/src/core/webhook/template/WebhookTemplate.ts +1 -1
- package/src/index.ts +2 -2
- package/build/core/logger/node/LokiLoggerConfigNode.d.ts +0 -20
- package/build/core/logger/node/LokiLoggerConfigNode.d.ts.map +0 -1
- package/build/core/logger/node/LokiLoggerConfigNode.html +0 -117
- package/build/core/logger/node/LokiLoggerConfigNode.js +0 -53
- package/build/core/logger/service/LoggerServiceTypes.d.ts +0 -24
- package/build/core/logger/service/LoggerServiceTypes.d.ts.map +0 -1
- package/build/core/logger/service/LoggerServiceTypes.js +0 -30
- package/documentation/LokiLoggerConfigNode.png +0 -0
- package/src/core/logger/node/LokiLoggerConfigNode.html +0 -117
- package/src/core/logger/node/LokiLoggerConfigNode.ts +0 -58
- package/src/core/logger/service/LoggerServiceTypes.ts +0 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoggerTemplate.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/template/LoggerTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"LoggerTemplate.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/template/LoggerTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGpF,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC5D,UAAU,EAAC,OAAO,CAAC;IACnB,MAAM,EAAC,MAAM,CAAC;IACd,0BAA0B,EAAC,OAAO,CAAC;IACnC,mBAAmB,EAAC,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,EAAE,EAAC,MAAM,CAAC;IACV,IAAI,EAAC,MAAM,CAAC;IACZ,IAAI,EAAC,MAAM,CAAC;IACZ,IAAI,EAAC,MAAM,CAAC;IACZ,QAAQ,EAAC,MAAM,CAAC;IAChB,KAAK,EAAC,MAAM,CAAC;CAChB,CAAA;AAED,qBAAa,cAAe,SAAQ,QAAQ;IAGxC,MAAM,CAAC,qBAAqB,IAAI,kBAAkB;CAQrD"}
|
|
@@ -17,8 +17,6 @@ const MetricsConfigNode_1 = require("./MetricsConfigNode");
|
|
|
17
17
|
const MetricsTemplate_1 = require("../template/MetricsTemplate");
|
|
18
18
|
const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
|
|
19
19
|
let CounterMetricConfigNode = class CounterMetricConfigNode extends NodeConstructor_1.ConfigNode {
|
|
20
|
-
_metrics;
|
|
21
|
-
_counter;
|
|
22
20
|
constructor(node, config) {
|
|
23
21
|
super(node, config);
|
|
24
22
|
let _this = this;
|
|
@@ -17,8 +17,6 @@ const MetricsConfigNode_1 = require("./MetricsConfigNode");
|
|
|
17
17
|
const MetricsTemplate_1 = require("../template/MetricsTemplate");
|
|
18
18
|
const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
|
|
19
19
|
let GaugeMetricConfigNode = class GaugeMetricConfigNode extends NodeConstructor_1.ConfigNode {
|
|
20
|
-
_metrics;
|
|
21
|
-
_gauge;
|
|
22
20
|
constructor(node, config) {
|
|
23
21
|
super(node, config);
|
|
24
22
|
let _this = this;
|
|
@@ -19,7 +19,6 @@ const WebhookServerService_1 = require("../../webhook/service/WebhookServerServi
|
|
|
19
19
|
const prom_client_1 = require("prom-client");
|
|
20
20
|
const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
|
|
21
21
|
let MetricsConfigNode = class MetricsConfigNode extends NodeConstructor_1.ConfigNode {
|
|
22
|
-
_metrics;
|
|
23
22
|
constructor(node, config) {
|
|
24
23
|
super(node, config);
|
|
25
24
|
let _this = this;
|
|
@@ -18,8 +18,6 @@ const MetricsTemplate_1 = require("../template/MetricsTemplate");
|
|
|
18
18
|
const MetricsDecorator_1 = require("../MetricsDecorator");
|
|
19
19
|
const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
|
|
20
20
|
let TimerMetricConfigNode = class TimerMetricConfigNode extends NodeConstructor_1.ConfigNode {
|
|
21
|
-
_metrics;
|
|
22
|
-
_timer;
|
|
23
21
|
constructor(node, config) {
|
|
24
22
|
super(node, config);
|
|
25
23
|
let _this = this;
|
|
@@ -41,8 +41,6 @@ const NodeConstructor_1 = require("../../NodeConstructor");
|
|
|
41
41
|
const prom_client_1 = __importStar(require("prom-client"));
|
|
42
42
|
const deep_equal_1 = __importDefault(require("deep-equal"));
|
|
43
43
|
class Metric {
|
|
44
|
-
_config;
|
|
45
|
-
_labels;
|
|
46
44
|
constructor(config) {
|
|
47
45
|
this._config = config;
|
|
48
46
|
this._labels = { flow: config.node.flow, type: config.node.type, name: config.node.name, id: config.node.id, metric: config.metricname };
|
|
@@ -56,11 +54,9 @@ class Metric {
|
|
|
56
54
|
}
|
|
57
55
|
exports.Metric = Metric;
|
|
58
56
|
class CounterMetric extends Metric {
|
|
59
|
-
counter;
|
|
60
|
-
internalCounter;
|
|
61
|
-
subscribers = {};
|
|
62
57
|
constructor(id, config, registry) {
|
|
63
58
|
super(config);
|
|
59
|
+
this.subscribers = {};
|
|
64
60
|
this.counter = new prom_client_1.Counter({
|
|
65
61
|
name: id,
|
|
66
62
|
help: (config.metricdescription) ? config.metricdescription : config.metricname,
|
|
@@ -90,11 +86,10 @@ class CounterMetric extends Metric {
|
|
|
90
86
|
}
|
|
91
87
|
exports.CounterMetric = CounterMetric;
|
|
92
88
|
class GaugeMetric extends Metric {
|
|
93
|
-
collector = 0;
|
|
94
|
-
gauge;
|
|
95
|
-
subscribers = {};
|
|
96
89
|
constructor(id, config, registry) {
|
|
97
90
|
super(config);
|
|
91
|
+
this.collector = 0;
|
|
92
|
+
this.subscribers = {};
|
|
98
93
|
let _this = this;
|
|
99
94
|
this.gauge = new prom_client_1.default.Gauge({
|
|
100
95
|
name: id,
|
|
@@ -142,10 +137,9 @@ var BucketType;
|
|
|
142
137
|
BucketType["exponential"] = "exponential";
|
|
143
138
|
})(BucketType || (exports.BucketType = BucketType = {}));
|
|
144
139
|
class HistogramMetric extends Metric {
|
|
145
|
-
histogram;
|
|
146
|
-
subscribers = {};
|
|
147
140
|
constructor(id, config, registry) {
|
|
148
141
|
super(config);
|
|
142
|
+
this.subscribers = {};
|
|
149
143
|
// Build the Histogram Config.
|
|
150
144
|
let histogramConfig = {
|
|
151
145
|
name: id,
|
|
@@ -188,8 +182,6 @@ class HistogramMetric extends Metric {
|
|
|
188
182
|
}
|
|
189
183
|
exports.HistogramMetric = HistogramMetric;
|
|
190
184
|
class HistogramState {
|
|
191
|
-
_values;
|
|
192
|
-
_average;
|
|
193
185
|
constructor(values) {
|
|
194
186
|
this._values = values;
|
|
195
187
|
let sum = this._values.find(value => value.metricName?.endsWith("_sum"))?.value;
|
|
@@ -201,8 +193,6 @@ class HistogramState {
|
|
|
201
193
|
}
|
|
202
194
|
}
|
|
203
195
|
class SummaryState {
|
|
204
|
-
_values;
|
|
205
|
-
_average;
|
|
206
196
|
constructor(values) {
|
|
207
197
|
this._values = values;
|
|
208
198
|
let sum = this._values.find(value => value.metricName?.endsWith("_sum"))?.value;
|
|
@@ -219,10 +209,9 @@ var PercentileType;
|
|
|
219
209
|
PercentileType["manual"] = "manual";
|
|
220
210
|
})(PercentileType || (exports.PercentileType = PercentileType = {}));
|
|
221
211
|
class SummaryMetric extends Metric {
|
|
222
|
-
summary;
|
|
223
|
-
subscribers = {};
|
|
224
212
|
constructor(id, config, registry) {
|
|
225
213
|
super(config);
|
|
214
|
+
this.subscribers = {};
|
|
226
215
|
let summaryConfig = {
|
|
227
216
|
name: id,
|
|
228
217
|
help: (config.metricdescription) ? config.metricdescription : config.metricname,
|
|
@@ -257,13 +246,11 @@ class SummaryMetric extends Metric {
|
|
|
257
246
|
}
|
|
258
247
|
exports.SummaryMetric = SummaryMetric;
|
|
259
248
|
class MetricsContainer {
|
|
260
|
-
_config;
|
|
261
|
-
_registry;
|
|
262
|
-
counters = {};
|
|
263
|
-
histograms = {};
|
|
264
|
-
gauges = {};
|
|
265
|
-
summaries = {};
|
|
266
249
|
constructor(config) {
|
|
250
|
+
this.counters = {};
|
|
251
|
+
this.histograms = {};
|
|
252
|
+
this.gauges = {};
|
|
253
|
+
this.summaries = {};
|
|
267
254
|
this._config = config;
|
|
268
255
|
// create a registry with the config.
|
|
269
256
|
this._registry = new prom_client_1.default.Registry();
|
|
@@ -341,8 +328,7 @@ class MetricsContainer {
|
|
|
341
328
|
}
|
|
342
329
|
exports.MetricsContainer = MetricsContainer;
|
|
343
330
|
class MetricsService extends NodeConstructor_1.BaseService {
|
|
344
|
-
static metrics = {};
|
|
345
|
-
red;
|
|
331
|
+
static { this.metrics = {}; }
|
|
346
332
|
constructor() {
|
|
347
333
|
super("MetricsService");
|
|
348
334
|
}
|
|
@@ -3,10 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.NodeTypeService = void 0;
|
|
4
4
|
const NodeConstructor_1 = require("../../NodeConstructor");
|
|
5
5
|
class NodeTypeService extends NodeConstructor_1.BaseService {
|
|
6
|
-
red;
|
|
7
|
-
nodeTypes = {};
|
|
8
6
|
constructor() {
|
|
9
7
|
super("nodetypes");
|
|
8
|
+
this.nodeTypes = {};
|
|
10
9
|
}
|
|
11
10
|
init(red) {
|
|
12
11
|
this.red = red;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookDecorator.d.ts","sourceRoot":"","sources":["../../../src/core/webhook/WebhookDecorator.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"WebhookDecorator.d.ts","sourceRoot":"","sources":["../../../src/core/webhook/WebhookDecorator.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,OAAO,KAkDD,CAAC;AAGb,OAAO,EACH,OAAO,EACV,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Webhook = void 0;
|
|
4
|
-
const
|
|
4
|
+
const LoggerService_1 = require("../logger/service/LoggerService");
|
|
5
5
|
const NodeConstructor_1 = require("../NodeConstructor");
|
|
6
6
|
const Webhook = (0, NodeConstructor_1.createPostConstructDecorator)('Webhook')
|
|
7
7
|
.withInitLogic(async (instance, propertyKey, webhookconfig) => {
|
|
@@ -9,9 +9,9 @@ const Webhook = (0, NodeConstructor_1.createPostConstructDecorator)('Webhook')
|
|
|
9
9
|
let node = instance;
|
|
10
10
|
let nodeConfig = node.config();
|
|
11
11
|
// create the authentication.
|
|
12
|
-
let authentication = (nodeConfig.webhookAuth ===
|
|
13
|
-
(nodeConfig.webhookAuth ===
|
|
14
|
-
{ type:
|
|
12
|
+
let authentication = (nodeConfig.webhookAuth === LoggerService_1.RestAuthType.basic) ? { type: LoggerService_1.RestAuthType.basic, username: nodeConfig.webhookAuth_basic_username, password: nodeConfig.webhookAuth_basic_password } :
|
|
13
|
+
(nodeConfig.webhookAuth === LoggerService_1.RestAuthType.apikey) ? { type: LoggerService_1.RestAuthType.apikey, mechanism: nodeConfig.webhookAuth_apikey_mechanism, key: nodeConfig.webhookAuth_apikey_key, value: nodeConfig.webhookAuth_apikey_value } :
|
|
14
|
+
{ type: LoggerService_1.RestAuthType.none };
|
|
15
15
|
// register a callback listener to the webserver.
|
|
16
16
|
let endpointConfig = {
|
|
17
17
|
path: nodeConfig.webhookPath,
|
|
@@ -15,7 +15,6 @@ const NodeGenerator_1 = require("../../NodeGenerator");
|
|
|
15
15
|
const WebhookServerService_1 = require("../service/WebhookServerService");
|
|
16
16
|
const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
|
|
17
17
|
let WebhookServerConfigNode = class WebhookServerConfigNode extends NodeConstructor_1.ConfigNode {
|
|
18
|
-
_server;
|
|
19
18
|
constructor(node, config) {
|
|
20
19
|
super(node, config);
|
|
21
20
|
let _this = this;
|
|
@@ -9,8 +9,6 @@ export interface ProxyManagerClient {
|
|
|
9
9
|
updateHost(data: Partial<HostEntry>): Promise<void>;
|
|
10
10
|
getHosts(): Promise<Partial<HostEntry>[]>;
|
|
11
11
|
}
|
|
12
|
-
export declare abstract class ReverseProxyClient {
|
|
13
|
-
}
|
|
14
12
|
export type HostEntry = {
|
|
15
13
|
id: number;
|
|
16
14
|
domainNames: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReverseProxyTypeService.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/service/ReverseProxyTypeService.ts"],"names":[],"mappings":"AAGA,8BAAsB,gBAAgB;IAElC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;gBAEV,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM;IAK3B,EAAE,IAAG,MAAM;IAGX,IAAI,IAAG,MAAM;CAGvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;CAC5C;AAED,
|
|
1
|
+
{"version":3,"file":"ReverseProxyTypeService.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/service/ReverseProxyTypeService.ts"],"names":[],"mappings":"AAGA,8BAAsB,gBAAgB;IAElC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;gBAEV,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM;IAK3B,EAAE,IAAG,MAAM;IAGX,IAAI,IAAG,MAAM;CAGvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,EAAE,EAAC,MAAM,CAAC;IACV,WAAW,EAAC,MAAM,EAAE,CAAC;IACrB,MAAM,EAAC,UAAU,CAAC;IAClB,WAAW,EAAC,MAAM,CAAC;IACnB,WAAW,EAAC,MAAM,CAAC;IACnB,UAAU,EAAC,MAAM,CAAC;IAClB,WAAW,EAAC,OAAO,CAAC;IACpB,mBAAmB,EAAC,OAAO,CAAC;IAC5B,gBAAgB,EAAC,OAAO,CAAC;CAC5B,CAAA;AAED,oBAAY,UAAU;IAClB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HTTPScheme = exports.
|
|
3
|
+
exports.HTTPScheme = exports.ReverseProxyType = void 0;
|
|
4
4
|
class ReverseProxyType {
|
|
5
|
-
_id;
|
|
6
|
-
_name;
|
|
7
5
|
constructor(id, name) {
|
|
8
6
|
this._id = id;
|
|
9
7
|
this._name = name;
|
|
@@ -16,9 +14,6 @@ class ReverseProxyType {
|
|
|
16
14
|
}
|
|
17
15
|
}
|
|
18
16
|
exports.ReverseProxyType = ReverseProxyType;
|
|
19
|
-
class ReverseProxyClient {
|
|
20
|
-
}
|
|
21
|
-
exports.ReverseProxyClient = ReverseProxyClient;
|
|
22
17
|
var HTTPScheme;
|
|
23
18
|
(function (HTTPScheme) {
|
|
24
19
|
HTTPScheme["HTTP"] = "http";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseService, FlowDeployment, ServiceDescriptor } from "../../NodeConstructor";
|
|
2
2
|
import { NodeAPI, NodeAPISettingsWithData } from "node-red";
|
|
3
3
|
import { Request, Response } from "express";
|
|
4
|
-
import { ApiKeyMechanismType, RestAuthType } from "../../logger/service/
|
|
4
|
+
import { ApiKeyMechanismType, RestAuthType } from "../../logger/service/LoggerService";
|
|
5
5
|
export declare enum EndpointMethodType {
|
|
6
6
|
GET = "GET",
|
|
7
7
|
POST = "POST"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookServerService.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/service/WebhookServerService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAgB,EAAU,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WebhookServerService.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/service/WebhookServerService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAgB,EAAU,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIvF,oBAAY,kBAAkB;IAC1B,GAAG,QAAQ;IACX,IAAI,SAAS;CAChB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAC,YAAY,CAAC,IAAI,CAAC;CAC1B,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC,IAAI,EAAC,YAAY,CAAC,KAAK,CAAA;IACvB,QAAQ,EAAC,MAAM,CAAC;IAChB,QAAQ,EAAC,MAAM,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,IAAI,EAAC,YAAY,CAAC,MAAM,CAAC;IACzB,SAAS,EAAC,mBAAmB,CAAC;IAC9B,GAAG,EAAC,MAAM,CAAC;IACX,KAAK,EAAC,MAAM,CAAC;CAChB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAC,kBAAkB,EAAE,CAAC;IAC7B,cAAc,EAAE,sBAAsB,GAAG,yBAAyB,GAAG,0BAA0B,CAAC;CACnG,CAAA;AAED,qBAAa,aAAa;IAEtB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,SAAS,CAAS;gBAEP,MAAM,EAAC,mBAAmB;IAQtC,MAAM,CAAC,QAAQ,EAAC,cAAc,EAAE,QAAQ,EAAC,CAAC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,QAAQ,KAAK,GAAG;IA+CpF,MAAM,CAAC,aAAa,EAAC,cAAc;IAsBnC,MAAM,IAAG,mBAAmB;CAGtC;AAED,MAAM,MAAO,mBAAmB,GAAG;IAC/B,EAAE,EAAC,MAAM,CAAA;IACT,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAC,MAAM,CAAC;IACpB,YAAY,EAAC,MAAM,CAAC;CACvB,CAAA;AAED,qBAAa,oBAAqB,SAAQ,WAAW;IAEjD,OAAO,CAAC,MAAM,CAAC,cAAc,CAAmC;;IAMzD,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;WAyCvD,GAAG,CAAE,MAAM,EAAC,mBAAmB,GAAG,aAAa;WAS7C,oBAAoB,IAAG,iBAAiB;CAU3D"}
|
|
@@ -8,7 +8,7 @@ const NodeConstructor_1 = require("../../NodeConstructor");
|
|
|
8
8
|
const WebhookServerConfigNode_1 = require("../node/WebhookServerConfigNode");
|
|
9
9
|
const WebhookTemplate_1 = require("../template/WebhookTemplate");
|
|
10
10
|
const express_1 = __importDefault(require("express"));
|
|
11
|
-
const
|
|
11
|
+
const LoggerService_1 = require("../../logger/service/LoggerService");
|
|
12
12
|
var bodyParser = require('body-parser');
|
|
13
13
|
var EndpointMethodType;
|
|
14
14
|
(function (EndpointMethodType) {
|
|
@@ -16,9 +16,6 @@ var EndpointMethodType;
|
|
|
16
16
|
EndpointMethodType["POST"] = "POST";
|
|
17
17
|
})(EndpointMethodType || (exports.EndpointMethodType = EndpointMethodType = {}));
|
|
18
18
|
class WebhookServer {
|
|
19
|
-
_config;
|
|
20
|
-
_app;
|
|
21
|
-
_listener;
|
|
22
19
|
constructor(config) {
|
|
23
20
|
this._config = config;
|
|
24
21
|
this._app = (0, express_1.default)();
|
|
@@ -27,19 +24,19 @@ class WebhookServer {
|
|
|
27
24
|
}
|
|
28
25
|
attach(endpoint, callback) {
|
|
29
26
|
let authenticator;
|
|
30
|
-
if (endpoint.authentication.type ===
|
|
27
|
+
if (endpoint.authentication.type === LoggerService_1.RestAuthType.none) {
|
|
31
28
|
authenticator = (request, response) => Promise.resolve(true);
|
|
32
29
|
}
|
|
33
|
-
if (endpoint.authentication.type ===
|
|
30
|
+
if (endpoint.authentication.type === LoggerService_1.RestAuthType.basic) {
|
|
34
31
|
let header = "Basic " + Buffer.from(`${endpoint.authentication.username}:${endpoint.authentication.password}`).toString("base64");
|
|
35
32
|
authenticator = (request, response) => {
|
|
36
33
|
return Promise.resolve(header === request.headers.authorization);
|
|
37
34
|
};
|
|
38
35
|
}
|
|
39
|
-
if (endpoint.authentication.type ===
|
|
36
|
+
if (endpoint.authentication.type === LoggerService_1.RestAuthType.apikey) {
|
|
40
37
|
let auth = endpoint.authentication;
|
|
41
38
|
authenticator = (request, response) => {
|
|
42
|
-
if (auth.mechanism ===
|
|
39
|
+
if (auth.mechanism === LoggerService_1.ApiKeyMechanismType.header) {
|
|
43
40
|
return Promise.resolve(request.headers[auth.key] === auth.value);
|
|
44
41
|
}
|
|
45
42
|
console.log("No APIKEY Authentication Handler Implementation for Type: " + auth.mechanism);
|
|
@@ -90,7 +87,7 @@ class WebhookServer {
|
|
|
90
87
|
}
|
|
91
88
|
exports.WebhookServer = WebhookServer;
|
|
92
89
|
class WebhookServerService extends NodeConstructor_1.BaseService {
|
|
93
|
-
static webhookServers = {};
|
|
90
|
+
static { this.webhookServers = {}; }
|
|
94
91
|
constructor() {
|
|
95
92
|
super("wehbookserver");
|
|
96
93
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseNodeConfig, Template, TemplateDescriptor } from "../../NodeConstructor";
|
|
2
|
-
import {
|
|
2
|
+
import { RestAuthType, ApiKeyMechanismType } from "../../logger/service/LoggerService";
|
|
3
3
|
export interface WebhookTemplateConfig extends BaseNodeConfig {
|
|
4
4
|
webhook: string;
|
|
5
5
|
webhookPath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookTemplate.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/template/WebhookTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGpF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"WebhookTemplate.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/template/WebhookTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGpF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEvF,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IACzD,OAAO,EAAC,MAAM,CAAC;IACf,WAAW,EAAC,MAAM,CAAC;IACnB,WAAW,EAAC,YAAY,CAAC;IACzB,0BAA0B,EAAC,MAAM,CAAC;IAClC,0BAA0B,EAAC,MAAM,CAAC;IAClC,4BAA4B,EAAC,mBAAmB,CAAC;IACjD,sBAAsB,EAAC,MAAM,CAAC;IAC9B,wBAAwB,EAAC,MAAM,CAAC;IAEhC,sBAAsB,EAAC,OAAO,CAAC;IAC/B,0BAA0B,EAAC,sBAAsB,EAAE,CAAC;CACvD;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,KAAK,EAAC,MAAM,CAAC;IACb,UAAU,EAAC,MAAM,CAAA;CACpB,CAAA;AAED,qBAAa,eAAgB,SAAQ,QAAQ;IAEzC,MAAM,CAAC,qBAAqB,IAAI,kBAAkB;CAMrD"}
|
package/build/index.d.ts
CHANGED
|
@@ -2,10 +2,9 @@ export * from "./core/Utils";
|
|
|
2
2
|
export * from "./core/NodeGenerator";
|
|
3
3
|
export * from "./core/NodeConstructor";
|
|
4
4
|
export * from "./core/logger/service/LoggerService";
|
|
5
|
-
export * from "./core/logger/template/LoggerTemplate";
|
|
6
5
|
export * from "./core/logger/node/ConsoleLoggerConfigNode";
|
|
7
6
|
export * from "./core/logger/node/RestLoggerConfigNode";
|
|
8
|
-
export * from "./core/logger/
|
|
7
|
+
export * from "./core/logger/template/LoggerTemplate";
|
|
9
8
|
export * from "./core/metrics/service/MetricsService";
|
|
10
9
|
export * from "./core/metrics/template/MetricsTemplate";
|
|
11
10
|
export * from "./core/metrics/template/CounterMetricTemplate";
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AAItD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,gDAAgD,CAAC;AAG/D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -19,10 +19,9 @@ __exportStar(require("./core/NodeGenerator"), exports);
|
|
|
19
19
|
__exportStar(require("./core/NodeConstructor"), exports);
|
|
20
20
|
// LOGGER
|
|
21
21
|
__exportStar(require("./core/logger/service/LoggerService"), exports);
|
|
22
|
-
__exportStar(require("./core/logger/template/LoggerTemplate"), exports);
|
|
23
22
|
__exportStar(require("./core/logger/node/ConsoleLoggerConfigNode"), exports);
|
|
24
23
|
__exportStar(require("./core/logger/node/RestLoggerConfigNode"), exports);
|
|
25
|
-
__exportStar(require("./core/logger/
|
|
24
|
+
__exportStar(require("./core/logger/template/LoggerTemplate"), exports);
|
|
26
25
|
// METRICS
|
|
27
26
|
__exportStar(require("./core/metrics/service/MetricsService"), exports);
|
|
28
27
|
__exportStar(require("./core/metrics/template/MetricsTemplate"), exports);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
if (window.ScriptEditorLanguageManager === undefined) {
|
|
3
3
|
class ScriptEditorLanguageManager {
|
|
4
|
-
static counter = 0;
|
|
4
|
+
static { this.counter = 0; }
|
|
5
5
|
static async createLanguage(monaco, template) {
|
|
6
6
|
// generate a language name.
|
|
7
7
|
let langName = "js_variant_" + ScriptEditorLanguageManager.counter;
|
|
@@ -327,7 +327,6 @@ if (window.ScriptEditorLanguageManager === undefined) {
|
|
|
327
327
|
}
|
|
328
328
|
}
|
|
329
329
|
class ScriptEditorLanguage {
|
|
330
|
-
name;
|
|
331
330
|
constructor(name) {
|
|
332
331
|
this.name = name;
|
|
333
332
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theotherwillembotha/node-red-plugincore",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.55",
|
|
4
4
|
"description": "A core framework for building production-grade Node-RED plugins, with built-in support for structured logging, metrics, and webhook ingestion.",
|
|
5
5
|
"author": "Willem Botha (@theotherwillembotha)",
|
|
6
6
|
"license": "ISC",
|
|
@@ -40,6 +40,9 @@
|
|
|
40
40
|
"README.md"
|
|
41
41
|
],
|
|
42
42
|
"homepage": "https://github.com/theotherwillembotha/nodered_plugincore#readme",
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
},
|
|
43
46
|
"engines": {
|
|
44
47
|
"node": ">=18",
|
|
45
48
|
"nodered": ">=4.0.0"
|
|
@@ -65,8 +68,7 @@
|
|
|
65
68
|
"prom-client": "^15.1.3",
|
|
66
69
|
"reflect-metadata": "^0.2.2",
|
|
67
70
|
"whatwg-url": "^16.0.1",
|
|
68
|
-
"winston": "^3.17.0"
|
|
69
|
-
"winston-loki": "^6.1.3"
|
|
71
|
+
"winston": "^3.17.0"
|
|
70
72
|
},
|
|
71
73
|
"node-red": {
|
|
72
74
|
"version": ">=4.0.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
if (window.ScriptEditorLanguageManager === undefined) {
|
|
3
3
|
class ScriptEditorLanguageManager {
|
|
4
|
-
static counter = 0;
|
|
4
|
+
static { this.counter = 0; }
|
|
5
5
|
static async createLanguage(monaco, template) {
|
|
6
6
|
// generate a language name.
|
|
7
7
|
let langName = "js_variant_" + ScriptEditorLanguageManager.counter;
|
|
@@ -327,7 +327,6 @@ if (window.ScriptEditorLanguageManager === undefined) {
|
|
|
327
327
|
}
|
|
328
328
|
}
|
|
329
329
|
class ScriptEditorLanguage {
|
|
330
|
-
name;
|
|
331
330
|
constructor(name) {
|
|
332
331
|
this.name = name;
|
|
333
332
|
}
|
package/src/GenerateNodes.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { DelegatedConfigReferenceNode } from "./core/other/node/DelegatedConfigReferenceNode.js";
|
|
3
3
|
import { NodeTypeService } from "./core/tagging/service/NodeTypeService.js";
|
|
4
|
-
import { NodeGenerator, SettingsService, BasicTemplate, SettingsTemplate, TimerMetricTemplate, ConsoleLoggerConfigNode, RestLoggerConfigNode,
|
|
4
|
+
import { NodeGenerator, SettingsService, BasicTemplate, SettingsTemplate, TimerMetricTemplate, ConsoleLoggerConfigNode, RestLoggerConfigNode, UIHelperTemplate, ScriptEditorTemplate } from "./index.js"
|
|
5
5
|
import { WebhookServerConfigNode, WebhookServerService, WebhookTemplate, } from "./index.js"
|
|
6
6
|
|
|
7
7
|
import {LoggerService, LoggerTemplate } from "./index.js";
|
|
@@ -33,7 +33,7 @@ new NodeGenerator("./src/core/")
|
|
|
33
33
|
.registerNode(DelegatedConfigReferenceNode)
|
|
34
34
|
.registerNode(ConsoleLoggerConfigNode)
|
|
35
35
|
.registerNode(RestLoggerConfigNode)
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
.registerNode(MetricsConfigNode)
|
|
38
38
|
.registerNode(CounterMetricConfigNode)
|
|
39
39
|
.registerNode(GaugeMetricConfigNode)
|
|
@@ -432,7 +432,7 @@ export class NodeManager{
|
|
|
432
432
|
}
|
|
433
433
|
|
|
434
434
|
let nodeConstructor = function(this: any, config: BaseNodeConfig | NodeDef){
|
|
435
|
-
console.log("constructing node", typeName);
|
|
435
|
+
//console.log("constructing node", typeName);
|
|
436
436
|
|
|
437
437
|
try{
|
|
438
438
|
// instantiate the node.
|
|
@@ -211,7 +211,7 @@ module.exports = function (RED) {
|
|
|
211
211
|
RED.events.on('runtime-event', async (event) => {
|
|
212
212
|
// startup deployment.
|
|
213
213
|
if ("runtime-deploy" === event?.id && startupDeployment) {
|
|
214
|
-
console.log("STARTUP DEPLOYMENT");
|
|
214
|
+
//console.log("STARTUP DEPLOYMENT");
|
|
215
215
|
startupDeployment = false;
|
|
216
216
|
const flows = await runtime.flows.getFlows({});
|
|
217
217
|
await plugin.instance.onDeploy(flows);
|
|
@@ -219,7 +219,7 @@ module.exports = function (RED) {
|
|
|
219
219
|
|
|
220
220
|
// stopping flows on redeployment.
|
|
221
221
|
if ("runtime-state" === event?.id && event?.payload?.state === "stop" && event?.payload?.deploy) {
|
|
222
|
-
console.log("REDEPLOY!");
|
|
222
|
+
//console.log("REDEPLOY!");
|
|
223
223
|
const flows = await runtime.flows.getFlows({});
|
|
224
224
|
await plugin.instance.onDeploy(flows);
|
|
225
225
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { BaseNode, NodeManager } from "../NodeConstructor";
|
|
2
|
-
import { Log,
|
|
3
|
-
import { LoggerTemplateConfig } from "./template/LoggerTemplate";
|
|
4
|
-
|
|
2
|
+
import { AbstractLogger, Log, BaseLoggerConfig, DoNothingAppender, LoggerConfigNode, LoggerConfigNodeConfig } from "./service/LoggerService";
|
|
3
|
+
import { LoggerTemplateConfig, LoggerTemplateNodeConfig } from "./template/LoggerTemplate";
|
|
5
4
|
|
|
6
5
|
export function Logger(debug?:string):Function {
|
|
7
6
|
|
|
@@ -10,41 +9,43 @@ export function Logger(debug?:string):Function {
|
|
|
10
9
|
// if the type is a string, then its probably defined in the local (core) module.
|
|
11
10
|
if(typeof propertyKey === "string"){
|
|
12
11
|
const valueSymbol = Symbol(`_${String(propertyKey)}_value`);
|
|
12
|
+
|
|
13
|
+
//console.log("BINDING:", "target", target, "propertyKey", propertyKey );
|
|
13
14
|
|
|
14
15
|
Object.defineProperty(target, propertyKey, {
|
|
15
16
|
get: function() {
|
|
17
|
+
|
|
18
|
+
//console.log("setting logger on node " + this.name() + " (localized)");
|
|
16
19
|
|
|
17
20
|
if(!this[valueSymbol]){
|
|
18
|
-
let node = this as BaseNode<LoggerTemplateConfig>;
|
|
19
|
-
//console.log("setting logger on node " + node.name() + " (localized)");
|
|
20
|
-
let config = node.config();
|
|
21
|
-
let logger;
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
let
|
|
22
|
+
try{
|
|
23
|
+
let node = this as BaseNode<LoggerTemplateNodeConfig>;
|
|
24
|
+
let config = node.config();
|
|
25
|
+
|
|
26
|
+
if(!config.logEnabled){
|
|
27
|
+
return this[valueSymbol] = DoNothingAppender.get();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// get the logger config node.
|
|
31
|
+
let loggerConfigNode:LoggerConfigNode<LoggerConfigNodeConfig, AbstractLogger<BaseLoggerConfig>> =(NodeManager.RED.nodes.getNode(config.logger) as any).node();
|
|
32
|
+
|
|
33
|
+
let loggerTemplateConfig:LoggerTemplateConfig = {
|
|
25
34
|
id:config.id,
|
|
26
35
|
flow:node.flow(),
|
|
27
36
|
type:node.type(),
|
|
28
37
|
name:node.name(),
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
template:config.logTemplateOverride
|
|
38
|
+
level:loggerConfigNode.config().level,
|
|
39
|
+
template: (config.logTemplateOverrideEnabled) ? config.logTemplateOverride : loggerConfigNode.config().template,
|
|
32
40
|
};
|
|
33
|
-
|
|
41
|
+
|
|
34
42
|
// get a reference to the loggerService.
|
|
35
|
-
|
|
36
|
-
logger = (NodeManager.RED.nodes.getNode(config.logger) as any).node().registerLogger(registration) as Log;
|
|
37
|
-
}
|
|
38
|
-
catch(e){
|
|
39
|
-
console.log("failed getting logger ", config.logger, e);
|
|
40
|
-
logger = { log(){} };
|
|
41
|
-
}
|
|
43
|
+
return this[valueSymbol] = loggerConfigNode.registerTemplate(loggerTemplateConfig);
|
|
42
44
|
}
|
|
43
|
-
|
|
44
|
-
logger
|
|
45
|
+
catch(e){
|
|
46
|
+
console.log(`failed getting logger "${this?.config()?.logger}"`, e);
|
|
47
|
+
return this[valueSymbol] = DoNothingAppender.get();
|
|
45
48
|
}
|
|
46
|
-
|
|
47
|
-
this[valueSymbol] = logger;
|
|
48
49
|
}
|
|
49
50
|
return this[valueSymbol];
|
|
50
51
|
},
|
|
@@ -55,43 +56,45 @@ export function Logger(debug?:string):Function {
|
|
|
55
56
|
}
|
|
56
57
|
else{
|
|
57
58
|
let property = propertyKey as any;
|
|
58
|
-
|
|
59
|
-
property.addInitializer(function(this:BaseNode<
|
|
60
|
-
let node = this as BaseNode<
|
|
59
|
+
|
|
60
|
+
property.addInitializer(function(this:BaseNode<LoggerTemplateNodeConfig>){
|
|
61
|
+
let node = this as BaseNode<LoggerTemplateNodeConfig>
|
|
61
62
|
const valueSymbol = Symbol(`_${String(property.name)}_value`);
|
|
63
|
+
|
|
64
|
+
//console.log("ADDING INITIALIZER:", "node", node, "property.name", property.name );
|
|
65
|
+
|
|
62
66
|
Object.defineProperty(node, property.name, {
|
|
63
67
|
get: function() {
|
|
68
|
+
|
|
69
|
+
//console.log("setting logger on node " + node.name()+ " (externalized)");
|
|
64
70
|
|
|
65
71
|
if(!this[valueSymbol]){
|
|
66
|
-
|
|
72
|
+
try{
|
|
67
73
|
let config = node.config();
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
let registration:LoggerRegistration = {
|
|
72
|
-
id:config.id,
|
|
73
|
-
flow:node.flow(),
|
|
74
|
-
type:node.type(),
|
|
75
|
-
name:node.name(),
|
|
76
|
-
enabled:config.logEnabled,
|
|
77
|
-
override:config.logTemplateOverrideEnabled,
|
|
78
|
-
template:config.logTemplateOverride
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
// get a reference to the loggerService.
|
|
82
|
-
try{
|
|
83
|
-
logger = (NodeManager.RED.nodes.getNode(config.logger) as any).node().registerLogger(registration) as Log;
|
|
84
|
-
}
|
|
85
|
-
catch(e){
|
|
86
|
-
console.log("failed getting logger ", config.logger, e);
|
|
87
|
-
logger = { log(){} };
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else{
|
|
91
|
-
logger = { log(){} };
|
|
74
|
+
|
|
75
|
+
if(!config.logEnabled){
|
|
76
|
+
return this[valueSymbol] = DoNothingAppender.get();
|
|
92
77
|
}
|
|
93
78
|
|
|
94
|
-
|
|
79
|
+
// get the logger config node.
|
|
80
|
+
let loggerConfigNode:LoggerConfigNode<LoggerConfigNodeConfig, AbstractLogger<BaseLoggerConfig>> =(NodeManager.RED.nodes.getNode(config.logger) as any).node();
|
|
81
|
+
|
|
82
|
+
let loggerTemplateConfig:LoggerTemplateConfig = {
|
|
83
|
+
id:config.id,
|
|
84
|
+
flow:node.flow(),
|
|
85
|
+
type:node.type(),
|
|
86
|
+
name:node.name(),
|
|
87
|
+
level: loggerConfigNode?.config().level ?? 'info',
|
|
88
|
+
template: (config.logTemplateOverrideEnabled) ? config.logTemplateOverride : (loggerConfigNode?.config().template ?? 'message:{{msg}}'),
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// get a reference to the loggerService.
|
|
92
|
+
return this[valueSymbol] = loggerConfigNode.registerTemplate(loggerTemplateConfig);
|
|
93
|
+
}
|
|
94
|
+
catch(e){
|
|
95
|
+
console.log("failed getting logger ", e);
|
|
96
|
+
return this[valueSymbol] = DoNothingAppender.get();
|
|
97
|
+
}
|
|
95
98
|
}
|
|
96
99
|
return this[valueSymbol];
|
|
97
100
|
},
|