@theotherwillembotha/node-red-plugincore 0.0.52 → 0.0.54

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 (40) hide show
  1. package/README.md +110 -0
  2. package/build/GenerateNodes.js +1 -0
  3. package/build/core/NodeConstructor.d.ts +1 -0
  4. package/build/core/NodeConstructor.d.ts.map +1 -1
  5. package/build/core/NodeConstructor.js +52 -14
  6. package/build/core/NodeGenerator.js +12 -10
  7. package/build/core/logger/node/ConsoleLoggerConfigNode.js +1 -0
  8. package/build/core/logger/node/LokiLoggerConfigNode.js +1 -0
  9. package/build/core/logger/node/RestLoggerConfigNode.js +1 -0
  10. package/build/core/logger/service/LoggerService.js +11 -1
  11. package/build/core/metrics/node/CounterMetricConfigNode.js +2 -0
  12. package/build/core/metrics/node/GaugeMetricConfigNode.js +2 -0
  13. package/build/core/metrics/node/MetricsConfigNode.js +1 -0
  14. package/build/core/metrics/node/TimerMetricConfigNode.js +2 -0
  15. package/build/core/metrics/service/MetricsService.js +24 -10
  16. package/build/core/other/service/SettingsService.js +2 -0
  17. package/build/core/tagging/service/NodeTypeService.js +2 -1
  18. package/build/core/ui/template/ScriptEditorTemplate.d.ts +5 -0
  19. package/build/core/ui/template/ScriptEditorTemplate.d.ts.map +1 -0
  20. package/build/core/ui/template/ScriptEditorTemplate.html +50 -0
  21. package/build/core/ui/template/ScriptEditorTemplate.js +11 -0
  22. package/build/core/webhook/node/WebhookServerConfigNode.js +1 -0
  23. package/build/core/webhook/service/ReverseProxyTypeService.js +2 -0
  24. package/build/core/webhook/service/WebhookServerService.js +4 -1
  25. package/build/index.d.ts +1 -0
  26. package/build/index.d.ts.map +1 -1
  27. package/build/index.js +1 -0
  28. package/build/resources/editorLanguageExtension.d.ts +1 -0
  29. package/build/resources/editorLanguageExtension.d.ts.map +1 -0
  30. package/build/resources/editorLanguageExtension.js +1190 -0
  31. package/package.json +4 -3
  32. package/resources/editorLanguageExtension.d.ts +1 -0
  33. package/resources/editorLanguageExtension.d.ts.map +1 -0
  34. package/resources/editorLanguageExtension.js +1190 -0
  35. package/src/GenerateNodes.ts +2 -1
  36. package/src/core/NodeConstructor.ts +4 -0
  37. package/src/core/ui/template/ScriptEditorTemplate.html +50 -0
  38. package/src/core/ui/template/ScriptEditorTemplate.ts +14 -0
  39. package/src/index.ts +1 -0
  40. package/src/resources/editorLanguageExtension.ts +1281 -0
@@ -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, LokiLoggerConfigNode, UIHelperTemplate } from "./index.js"
4
+ import { NodeGenerator, SettingsService, BasicTemplate, SettingsTemplate, TimerMetricTemplate, ConsoleLoggerConfigNode, RestLoggerConfigNode, LokiLoggerConfigNode, UIHelperTemplate, ScriptEditorTemplate } from "./index.js"
5
5
  import { WebhookServerConfigNode, WebhookServerService, WebhookTemplate, } from "./index.js"
6
6
 
7
7
  import {LoggerService, LoggerTemplate } from "./index.js";
@@ -27,6 +27,7 @@ new NodeGenerator("./src/core/")
27
27
  .registerTemplate(TimerMetricTemplate)
28
28
  .registerTemplate(WebhookTemplate)
29
29
  .registerTemplate(UIHelperTemplate)
30
+ .registerTemplate(ScriptEditorTemplate)
30
31
 
31
32
  // nodes
32
33
  .registerNode(DelegatedConfigReferenceNode)
@@ -568,6 +568,7 @@ export type DefaultTemplateType = {
568
568
  required:boolean;
569
569
  minInstances?:number;
570
570
  maxInstances?:number;
571
+ validate?:Function;
571
572
  }
572
573
 
573
574
  export class NodeBuilder {
@@ -715,6 +716,9 @@ export class NodeBuilder {
715
716
  case "string": {
716
717
  return `'${value}'`
717
718
  }
719
+ case "function": {
720
+ return (value as Function).toString();
721
+ }
718
722
  case "object": {
719
723
  if(Array.isArray(value)){
720
724
  return `[${(value as []).map(t => this.serializeProperty(t)).join(", ")}]`
@@ -0,0 +1,50 @@
1
+
2
+ <div template-section="onIncludeOnce">
3
+
4
+ <script src="resources/@theotherwillembotha/node-red-plugincore/editorLanguageExtension.js"></script>
5
+
6
+ <script type="text/javascript">
7
+
8
+ window.PluginCore = window.PluginCore || {};
9
+
10
+ /**
11
+ * PluginCore.createScriptEditor(elementId, template, initialValue)
12
+ *
13
+ * Creates a Monaco editor instance with TypeScript-aware diagnostics,
14
+ * completions, and hover info scoped to the provided type template.
15
+ *
16
+ * @param {string} elementId - DOM id of the container element.
17
+ * @param {string} template - TypeScript template string. Use `${script}`
18
+ * as the placeholder for the user's code.
19
+ * @param {string} initialValue - The starting content of the editor.
20
+ * @returns \{{ getValue(): string, dispose(): void \}}
21
+ */
22
+ PluginCore.createScriptEditor = function(elementId, template, initialValue) {
23
+ var editorInstance = null;
24
+ var currentValue = initialValue || '';
25
+
26
+ ScriptEditorLanguageManager.createLanguage(monaco, template).then(function(language) {
27
+ editorInstance = monaco.editor.create(document.getElementById(elementId), {
28
+ value: currentValue,
29
+ language: language.getName(),
30
+ automaticLayout: true,
31
+ wordBasedSuggestions: 'currentDocument',
32
+ });
33
+ });
34
+
35
+ return {
36
+ getValue: function() {
37
+ return editorInstance ? editorInstance.getValue() : currentValue;
38
+ },
39
+ dispose: function() {
40
+ if (editorInstance) {
41
+ editorInstance.dispose();
42
+ editorInstance = null;
43
+ }
44
+ }
45
+ };
46
+ };
47
+
48
+ </script>
49
+
50
+ </div>
@@ -0,0 +1,14 @@
1
+ import { Template, TemplateDescriptor } from "../../NodeConstructor"
2
+ import { SourceUtility } from "../../NodeGenerator";
3
+
4
+ export class ScriptEditorTemplate extends Template {
5
+
6
+ public static getTemplateDescriptor(): TemplateDescriptor {
7
+ return new TemplateDescriptor(
8
+ "script-editor",
9
+ ScriptEditorTemplate,
10
+ SourceUtility.getSourcePath("/build/", "/src/") + "ScriptEditorTemplate.html",
11
+ []
12
+ );
13
+ }
14
+ }
package/src/index.ts CHANGED
@@ -26,6 +26,7 @@ export * from "./core/tagging/NodeDescriptionDecorator";
26
26
 
27
27
  // UI
28
28
  export * from "./core/ui/template/UIHelperTemplate";
29
+ export * from "./core/ui/template/ScriptEditorTemplate";
29
30
 
30
31
  // OTHER
31
32
  export * from "./core/other/node/DelegatedConfigReferenceNode";