node-red-contrib-prib-functions 0.18.0 → 0.20.4

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 (87) hide show
  1. package/.github/workflows/codeql-analysis.yml +3 -3
  2. package/.github/workflows/npmpublish.yml +6 -6
  3. package/.vs/VSWorkspaceState.json +7 -0
  4. package/.vs/node-red-contrib-prib-functions/v17/.wsuo +0 -0
  5. package/README.md +22 -19
  6. package/arima/index.js +18 -0
  7. package/dataAnalysis/arrayAllRowsSwap.js +15 -0
  8. package/dataAnalysis/arrayCompareToPrecision.js +34 -0
  9. package/dataAnalysis/arrayDifference.js +14 -0
  10. package/dataAnalysis/arrayDifferenceSeasonal.js +15 -0
  11. package/dataAnalysis/arrayDifferenceSeasonalSecondOrder.js +20 -0
  12. package/dataAnalysis/arrayDifferenceSecondOrder.js +14 -0
  13. package/dataAnalysis/arrayForEachRange.js +38 -0
  14. package/dataAnalysis/arrayOverlay.js +13 -0
  15. package/dataAnalysis/arrayProduct.js +11 -0
  16. package/dataAnalysis/arrayRandom.js +14 -0
  17. package/dataAnalysis/arrayReduceRange.js +11 -0
  18. package/dataAnalysis/arrayScale.js +11 -0
  19. package/dataAnalysis/arraySum.js +11 -0
  20. package/dataAnalysis/arraySumSquared.js +11 -0
  21. package/dataAnalysis/arraySwap.js +11 -0
  22. package/dataAnalysis/dataAnalysis.html +31 -14
  23. package/dataAnalysis/dataAnalysis.js +10 -1
  24. package/dataAnalysis/generateMatrixFunction.js +89 -0
  25. package/dataAnalysis/generateVectorFunction.js +25 -0
  26. package/dataAnalysis/pca.js +546 -0
  27. package/dataAnalysis/svd.js +239 -0
  28. package/documentation/loadInjector.png +0 -0
  29. package/echart/echart.html +68 -0
  30. package/echart/echart.js +85 -0
  31. package/echart/icons/chart-671.png +0 -0
  32. package/echart/lib/echarts.js +95886 -0
  33. package/lib/Chart.js +177 -0
  34. package/lib/Column.js +99 -0
  35. package/lib/GraphDB.js +14 -0
  36. package/lib/Table.js +185 -0
  37. package/lib/objectExtensions.js +361 -0
  38. package/matrix/matrix.js +50 -50
  39. package/matrix/matrixNode.html +144 -154
  40. package/matrix/matrixNode.js +26 -9
  41. package/monitor/BarGauge.js +8 -0
  42. package/monitor/Dataset.js +29 -0
  43. package/monitor/DialGauge.js +109 -0
  44. package/monitor/DialNeedle.js +36 -0
  45. package/monitor/Format.js +74 -0
  46. package/monitor/centerElement.js +14 -0
  47. package/monitor/compareElements.js +95 -0
  48. package/monitor/defs.js +23 -0
  49. package/monitor/extensions.js +906 -0
  50. package/monitor/functions.js +36 -0
  51. package/monitor/json2xml.js +103 -0
  52. package/monitor/monitorSystem.html +198 -0
  53. package/monitor/monitorSystem.js +322 -0
  54. package/monitor/svgHTML.js +179 -0
  55. package/monitor/svgObjects.js +64 -0
  56. package/package.json +31 -8
  57. package/test/00-objectExtensions.js +94 -0
  58. package/test/01-base.js +88 -0
  59. package/test/04-tables.js +33 -0
  60. package/test/data/.config.nodes.json +608 -0
  61. package/test/data/.config.nodes.json.backup +608 -0
  62. package/test/data/.config.runtime.json +4 -0
  63. package/test/data/.config.runtime.json.backup +3 -0
  64. package/test/data/.config.users.json +21 -0
  65. package/test/data/.config.users.json.backup +21 -0
  66. package/test/data/.flow.json.backup +3433 -0
  67. package/test/data/float32vector10.npy +0 -0
  68. package/test/data/flow.json +3433 -0
  69. package/test/data/int2matrix2x3.npy +0 -0
  70. package/test/data/package-lock.json +158 -0
  71. package/test/data/package.json +11 -0
  72. package/test/data/settings.js +544 -0
  73. package/test/dataAnalysisExtensions.js +472 -0
  74. package/test/dataAnalysisPCA.js +54 -0
  75. package/test/dataAnalysisSVD.js +31 -0
  76. package/test/euclideanDistance.js +2 -2
  77. package/test/matrix/02base.js +36 -0
  78. package/test/transformNumPy.js +132 -0
  79. package/testing/data/countries.csv +250 -0
  80. package/testing/hostAvailable.html +0 -2
  81. package/testing/load-injector.html +76 -21
  82. package/testing/load-injector.js +35 -54
  83. package/testing/test.js +1 -0
  84. package/transform/NumPy.js +303 -0
  85. package/transform/transform.html +73 -19
  86. package/transform/transform.js +144 -8
  87. package/documentation/LoadInjector.JPG +0 -0
@@ -0,0 +1,132 @@
1
+ const assert=require('assert')
2
+ const helper = require("node-red-node-test-helper")
3
+ const NumPy = require("../transform/NumPy.js")
4
+ const transformNode = require("../transform/transform.js");
5
+ const fs = require('fs')
6
+ const path = require('path')
7
+ const filePath = path.join(__dirname, "data/float32vector10.npy")
8
+ const npyFloat32V10 = fs.readFileSync(filePath)
9
+ const npyInt2matrix2x3 = fs.readFileSync(path.join(__dirname, "data/int2matrix2x3.npy"))
10
+ const int2matrix2x3={"dataType":"int64","fortran_order":false,"shape":[1,2,3],"version":1.0,"dataVector":new BigInt64Array([1n,2n,3n,4n,5n,6n])}
11
+ if(!Buffer.prototype.toBufferArray)
12
+ Buffer.prototype.toBufferArray = function() {return this.buffer.slice(this.byteOffset, this.byteOffset + this.byteLength)}
13
+
14
+ const float32V10 = new Float32Array([
15
+ 86, 46, 10, 148, 133,
16
+ 86, 103, 118, 62, 49
17
+ ])
18
+ const NumPyJSON={
19
+ "dataType":"float32",
20
+ "fortran_order":false,
21
+ version:1.0,
22
+ "shape":[10],
23
+ "dataVector":{"0":86,"1":46,"2":10,"3":148,"4":133,"5":86,"6":103,"7":118,"8":62,"9":49}
24
+ }
25
+ helper.init(require.resolve('node-red'));
26
+
27
+ const npy2JSONNode={
28
+ id : "npy2JSON",
29
+ type : "transform",
30
+ name : "npy to JSON",
31
+ actionSource: "npy",
32
+ actionTarget: "JSON",
33
+ sourceProperty:"msg.payload",
34
+ targetProperty:"msg.payload",
35
+ topicProperty:"'test topic'"
36
+ };
37
+ const JSON2npyNode={
38
+ id : "npy2JSON",
39
+ type : "transform",
40
+ name : "JSON to npy",
41
+ actionSource: "JSON",
42
+ actionTarget: "npy",
43
+ sourceProperty:"msg.payload",
44
+ targetProperty:"msg.payload",
45
+ topicProperty:"'test topic'"
46
+ };
47
+ function getAndTestNodeProperties(o) {
48
+ const n = helper.getNode(o.id);
49
+ for(let p in o) n.should.have.property(p, o[p]);
50
+ return n;
51
+ }
52
+ function testFlow(done,node,data,result) {
53
+ const flow = [
54
+ Object.assign(node,{wires : [ [ "outHelper" ],["errorHelper"] ]}),
55
+ {id :"outHelper", type : "helper"},
56
+ {id :"errorHelper", type : "helper"}
57
+ ];
58
+ helper.load(transformNode, flow, function() {
59
+ const n=getAndTestNodeProperties(node);
60
+ const outHelper = helper.getNode("outHelper");
61
+ const errorHelper = helper.getNode("errorHelper");
62
+ outHelper.on("input", function(msg) {
63
+ console.log("outHelper "+JSON.stringify(msg.payload));
64
+ if(JSON.stringify(msg.payload)==JSON.stringify(result)) {
65
+ done();
66
+ } else {
67
+ console.log("mismatch expected: "+JSON.stringify(result) +" returned: "+JSON.stringify(msg.payload));
68
+ done("mismatch");
69
+ }
70
+ });
71
+ errorHelper.on("input", function(msg) {
72
+ console.log("errorHelper "+JSON.stringify(msg));
73
+ done("error check log output");
74
+ });
75
+ n.receive({
76
+ topic:"test",
77
+ payload : data
78
+ });
79
+ });
80
+ }
81
+
82
+ describe('NumPy', function() {
83
+ it("parse npyFloat10",(done)=>{
84
+ const tensor=new NumPy(npyFloat32V10)
85
+ assert.deepStrictEqual(tensor.dataType,'float32')
86
+ assert.deepStrictEqual(tensor.shape,[10])
87
+ assert.deepStrictEqual(tensor.fortran_order,false)
88
+ assert.deepStrictEqual(tensor.dataVector,float32V10)
89
+ done()
90
+ });
91
+ it("parse npyInt2matrix2x3",(done)=>{
92
+ const tensor=new NumPy(npyInt2matrix2x3)
93
+ assert.deepStrictEqual(tensor.toSerializable(),int2matrix2x3)
94
+ done()
95
+ });
96
+ it("parse int2matrix2x3",(done)=>{
97
+ const tensor=new NumPy(int2matrix2x3)
98
+ assert.deepStrictEqual(tensor.toSerializable(),int2matrix2x3)
99
+ console.log({label:"toString",result:tensor.toString()})
100
+ const npy=tensor.toNpy()
101
+ done();
102
+ });
103
+ /*
104
+ it("toNpy float32V10",(done)=>{
105
+ const tensor=new NumPy(NumPyJSON)
106
+ assert.deepStrictEqual(tensor.toNpy(),npyFloat32V10.toBufferArray())
107
+ done();
108
+ });
109
+
110
+ it("toNpy int2matrix2x3",(done)=>{
111
+ const tensor=new NumPy(int2matrix2x3)
112
+ assert.deepStrictEqual(tensor.toNpy(),npyInt2matrix2x3.toBufferArray())
113
+ done();
114
+ });
115
+ */
116
+ });
117
+
118
+ describe('transform numpy', function() {
119
+ beforeEach(function(done) {
120
+ helper.startServer(done);
121
+ });
122
+ afterEach(function(done) {
123
+ helper.unload();
124
+ helper.stopServer(done);
125
+ });
126
+ it('npy to Array', function(done) {
127
+ testFlow(done,JSON2npyNode,int2matrix2x3,npyInt2matrix2x3);
128
+ });
129
+ it('npy to JSON', function(done) {
130
+ testFlow(done,npy2JSONNode,npyInt2matrix2x3,int2matrix2x3);
131
+ });
132
+ });
@@ -0,0 +1,250 @@
1
+ name,alpha-2,alpha-3,country-code,iso_3166-2,region,sub-region,intermediate-region,region-code,sub-region-code,intermediate-region-code
2
+ Afghanistan,AF,AFG,004,ISO 3166-2:AF,Asia,Southern Asia,"",142,034,""
3
+ Åland Islands,AX,ALA,248,ISO 3166-2:AX,Europe,Northern Europe,"",150,154,""
4
+ Albania,AL,ALB,008,ISO 3166-2:AL,Europe,Southern Europe,"",150,039,""
5
+ Algeria,DZ,DZA,012,ISO 3166-2:DZ,Africa,Northern Africa,"",002,015,""
6
+ American Samoa,AS,ASM,016,ISO 3166-2:AS,Oceania,Polynesia,"",009,061,""
7
+ Andorra,AD,AND,020,ISO 3166-2:AD,Europe,Southern Europe,"",150,039,""
8
+ Angola,AO,AGO,024,ISO 3166-2:AO,Africa,Sub-Saharan Africa,Middle Africa,002,202,017
9
+ Anguilla,AI,AIA,660,ISO 3166-2:AI,Americas,Latin America and the Caribbean,Caribbean,019,419,029
10
+ Antarctica,AQ,ATA,010,ISO 3166-2:AQ,"","","","","",""
11
+ Antigua and Barbuda,AG,ATG,028,ISO 3166-2:AG,Americas,Latin America and the Caribbean,Caribbean,019,419,029
12
+ Argentina,AR,ARG,032,ISO 3166-2:AR,Americas,Latin America and the Caribbean,South America,019,419,005
13
+ Armenia,AM,ARM,051,ISO 3166-2:AM,Asia,Western Asia,"",142,145,""
14
+ Aruba,AW,ABW,533,ISO 3166-2:AW,Americas,Latin America and the Caribbean,Caribbean,019,419,029
15
+ Australia,AU,AUS,036,ISO 3166-2:AU,Oceania,Australia and New Zealand,"",009,053,""
16
+ Austria,AT,AUT,040,ISO 3166-2:AT,Europe,Western Europe,"",150,155,""
17
+ Azerbaijan,AZ,AZE,031,ISO 3166-2:AZ,Asia,Western Asia,"",142,145,""
18
+ Bahamas,BS,BHS,044,ISO 3166-2:BS,Americas,Latin America and the Caribbean,Caribbean,019,419,029
19
+ Bahrain,BH,BHR,048,ISO 3166-2:BH,Asia,Western Asia,"",142,145,""
20
+ Bangladesh,BD,BGD,050,ISO 3166-2:BD,Asia,Southern Asia,"",142,034,""
21
+ Barbados,BB,BRB,052,ISO 3166-2:BB,Americas,Latin America and the Caribbean,Caribbean,019,419,029
22
+ Belarus,BY,BLR,112,ISO 3166-2:BY,Europe,Eastern Europe,"",150,151,""
23
+ Belgium,BE,BEL,056,ISO 3166-2:BE,Europe,Western Europe,"",150,155,""
24
+ Belize,BZ,BLZ,084,ISO 3166-2:BZ,Americas,Latin America and the Caribbean,Central America,019,419,013
25
+ Benin,BJ,BEN,204,ISO 3166-2:BJ,Africa,Sub-Saharan Africa,Western Africa,002,202,011
26
+ Bermuda,BM,BMU,060,ISO 3166-2:BM,Americas,Northern America,"",019,021,""
27
+ Bhutan,BT,BTN,064,ISO 3166-2:BT,Asia,Southern Asia,"",142,034,""
28
+ Bolivia (Plurinational State of),BO,BOL,068,ISO 3166-2:BO,Americas,Latin America and the Caribbean,South America,019,419,005
29
+ "Bonaire, Sint Eustatius and Saba",BQ,BES,535,ISO 3166-2:BQ,Americas,Latin America and the Caribbean,Caribbean,019,419,029
30
+ Bosnia and Herzegovina,BA,BIH,070,ISO 3166-2:BA,Europe,Southern Europe,"",150,039,""
31
+ Botswana,BW,BWA,072,ISO 3166-2:BW,Africa,Sub-Saharan Africa,Southern Africa,002,202,018
32
+ Bouvet Island,BV,BVT,074,ISO 3166-2:BV,Americas,Latin America and the Caribbean,South America,019,419,005
33
+ Brazil,BR,BRA,076,ISO 3166-2:BR,Americas,Latin America and the Caribbean,South America,019,419,005
34
+ British Indian Ocean Territory,IO,IOT,086,ISO 3166-2:IO,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
35
+ Brunei Darussalam,BN,BRN,096,ISO 3166-2:BN,Asia,South-eastern Asia,"",142,035,""
36
+ Bulgaria,BG,BGR,100,ISO 3166-2:BG,Europe,Eastern Europe,"",150,151,""
37
+ Burkina Faso,BF,BFA,854,ISO 3166-2:BF,Africa,Sub-Saharan Africa,Western Africa,002,202,011
38
+ Burundi,BI,BDI,108,ISO 3166-2:BI,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
39
+ Cabo Verde,CV,CPV,132,ISO 3166-2:CV,Africa,Sub-Saharan Africa,Western Africa,002,202,011
40
+ Cambodia,KH,KHM,116,ISO 3166-2:KH,Asia,South-eastern Asia,"",142,035,""
41
+ Cameroon,CM,CMR,120,ISO 3166-2:CM,Africa,Sub-Saharan Africa,Middle Africa,002,202,017
42
+ Canada,CA,CAN,124,ISO 3166-2:CA,Americas,Northern America,"",019,021,""
43
+ Cayman Islands,KY,CYM,136,ISO 3166-2:KY,Americas,Latin America and the Caribbean,Caribbean,019,419,029
44
+ Central African Republic,CF,CAF,140,ISO 3166-2:CF,Africa,Sub-Saharan Africa,Middle Africa,002,202,017
45
+ Chad,TD,TCD,148,ISO 3166-2:TD,Africa,Sub-Saharan Africa,Middle Africa,002,202,017
46
+ Chile,CL,CHL,152,ISO 3166-2:CL,Americas,Latin America and the Caribbean,South America,019,419,005
47
+ China,CN,CHN,156,ISO 3166-2:CN,Asia,Eastern Asia,"",142,030,""
48
+ Christmas Island,CX,CXR,162,ISO 3166-2:CX,Oceania,Australia and New Zealand,"",009,053,""
49
+ Cocos (Keeling) Islands,CC,CCK,166,ISO 3166-2:CC,Oceania,Australia and New Zealand,"",009,053,""
50
+ Colombia,CO,COL,170,ISO 3166-2:CO,Americas,Latin America and the Caribbean,South America,019,419,005
51
+ Comoros,KM,COM,174,ISO 3166-2:KM,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
52
+ Congo,CG,COG,178,ISO 3166-2:CG,Africa,Sub-Saharan Africa,Middle Africa,002,202,017
53
+ "Congo, Democratic Republic of the",CD,COD,180,ISO 3166-2:CD,Africa,Sub-Saharan Africa,Middle Africa,002,202,017
54
+ Cook Islands,CK,COK,184,ISO 3166-2:CK,Oceania,Polynesia,"",009,061,""
55
+ Costa Rica,CR,CRI,188,ISO 3166-2:CR,Americas,Latin America and the Caribbean,Central America,019,419,013
56
+ Côte d'Ivoire,CI,CIV,384,ISO 3166-2:CI,Africa,Sub-Saharan Africa,Western Africa,002,202,011
57
+ Croatia,HR,HRV,191,ISO 3166-2:HR,Europe,Southern Europe,"",150,039,""
58
+ Cuba,CU,CUB,192,ISO 3166-2:CU,Americas,Latin America and the Caribbean,Caribbean,019,419,029
59
+ Curaçao,CW,CUW,531,ISO 3166-2:CW,Americas,Latin America and the Caribbean,Caribbean,019,419,029
60
+ Cyprus,CY,CYP,196,ISO 3166-2:CY,Asia,Western Asia,"",142,145,""
61
+ Czechia,CZ,CZE,203,ISO 3166-2:CZ,Europe,Eastern Europe,"",150,151,""
62
+ Denmark,DK,DNK,208,ISO 3166-2:DK,Europe,Northern Europe,"",150,154,""
63
+ Djibouti,DJ,DJI,262,ISO 3166-2:DJ,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
64
+ Dominica,DM,DMA,212,ISO 3166-2:DM,Americas,Latin America and the Caribbean,Caribbean,019,419,029
65
+ Dominican Republic,DO,DOM,214,ISO 3166-2:DO,Americas,Latin America and the Caribbean,Caribbean,019,419,029
66
+ Ecuador,EC,ECU,218,ISO 3166-2:EC,Americas,Latin America and the Caribbean,South America,019,419,005
67
+ Egypt,EG,EGY,818,ISO 3166-2:EG,Africa,Northern Africa,"",002,015,""
68
+ El Salvador,SV,SLV,222,ISO 3166-2:SV,Americas,Latin America and the Caribbean,Central America,019,419,013
69
+ Equatorial Guinea,GQ,GNQ,226,ISO 3166-2:GQ,Africa,Sub-Saharan Africa,Middle Africa,002,202,017
70
+ Eritrea,ER,ERI,232,ISO 3166-2:ER,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
71
+ Estonia,EE,EST,233,ISO 3166-2:EE,Europe,Northern Europe,"",150,154,""
72
+ Eswatini,SZ,SWZ,748,ISO 3166-2:SZ,Africa,Sub-Saharan Africa,Southern Africa,002,202,018
73
+ Ethiopia,ET,ETH,231,ISO 3166-2:ET,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
74
+ Falkland Islands (Malvinas),FK,FLK,238,ISO 3166-2:FK,Americas,Latin America and the Caribbean,South America,019,419,005
75
+ Faroe Islands,FO,FRO,234,ISO 3166-2:FO,Europe,Northern Europe,"",150,154,""
76
+ Fiji,FJ,FJI,242,ISO 3166-2:FJ,Oceania,Melanesia,"",009,054,""
77
+ Finland,FI,FIN,246,ISO 3166-2:FI,Europe,Northern Europe,"",150,154,""
78
+ France,FR,FRA,250,ISO 3166-2:FR,Europe,Western Europe,"",150,155,""
79
+ French Guiana,GF,GUF,254,ISO 3166-2:GF,Americas,Latin America and the Caribbean,South America,019,419,005
80
+ French Polynesia,PF,PYF,258,ISO 3166-2:PF,Oceania,Polynesia,"",009,061,""
81
+ French Southern Territories,TF,ATF,260,ISO 3166-2:TF,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
82
+ Gabon,GA,GAB,266,ISO 3166-2:GA,Africa,Sub-Saharan Africa,Middle Africa,002,202,017
83
+ Gambia,GM,GMB,270,ISO 3166-2:GM,Africa,Sub-Saharan Africa,Western Africa,002,202,011
84
+ Georgia,GE,GEO,268,ISO 3166-2:GE,Asia,Western Asia,"",142,145,""
85
+ Germany,DE,DEU,276,ISO 3166-2:DE,Europe,Western Europe,"",150,155,""
86
+ Ghana,GH,GHA,288,ISO 3166-2:GH,Africa,Sub-Saharan Africa,Western Africa,002,202,011
87
+ Gibraltar,GI,GIB,292,ISO 3166-2:GI,Europe,Southern Europe,"",150,039,""
88
+ Greece,GR,GRC,300,ISO 3166-2:GR,Europe,Southern Europe,"",150,039,""
89
+ Greenland,GL,GRL,304,ISO 3166-2:GL,Americas,Northern America,"",019,021,""
90
+ Grenada,GD,GRD,308,ISO 3166-2:GD,Americas,Latin America and the Caribbean,Caribbean,019,419,029
91
+ Guadeloupe,GP,GLP,312,ISO 3166-2:GP,Americas,Latin America and the Caribbean,Caribbean,019,419,029
92
+ Guam,GU,GUM,316,ISO 3166-2:GU,Oceania,Micronesia,"",009,057,""
93
+ Guatemala,GT,GTM,320,ISO 3166-2:GT,Americas,Latin America and the Caribbean,Central America,019,419,013
94
+ Guernsey,GG,GGY,831,ISO 3166-2:GG,Europe,Northern Europe,Channel Islands,150,154,830
95
+ Guinea,GN,GIN,324,ISO 3166-2:GN,Africa,Sub-Saharan Africa,Western Africa,002,202,011
96
+ Guinea-Bissau,GW,GNB,624,ISO 3166-2:GW,Africa,Sub-Saharan Africa,Western Africa,002,202,011
97
+ Guyana,GY,GUY,328,ISO 3166-2:GY,Americas,Latin America and the Caribbean,South America,019,419,005
98
+ Haiti,HT,HTI,332,ISO 3166-2:HT,Americas,Latin America and the Caribbean,Caribbean,019,419,029
99
+ Heard Island and McDonald Islands,HM,HMD,334,ISO 3166-2:HM,Oceania,Australia and New Zealand,"",009,053,""
100
+ Holy See,VA,VAT,336,ISO 3166-2:VA,Europe,Southern Europe,"",150,039,""
101
+ Honduras,HN,HND,340,ISO 3166-2:HN,Americas,Latin America and the Caribbean,Central America,019,419,013
102
+ Hong Kong,HK,HKG,344,ISO 3166-2:HK,Asia,Eastern Asia,"",142,030,""
103
+ Hungary,HU,HUN,348,ISO 3166-2:HU,Europe,Eastern Europe,"",150,151,""
104
+ Iceland,IS,ISL,352,ISO 3166-2:IS,Europe,Northern Europe,"",150,154,""
105
+ India,IN,IND,356,ISO 3166-2:IN,Asia,Southern Asia,"",142,034,""
106
+ Indonesia,ID,IDN,360,ISO 3166-2:ID,Asia,South-eastern Asia,"",142,035,""
107
+ Iran (Islamic Republic of),IR,IRN,364,ISO 3166-2:IR,Asia,Southern Asia,"",142,034,""
108
+ Iraq,IQ,IRQ,368,ISO 3166-2:IQ,Asia,Western Asia,"",142,145,""
109
+ Ireland,IE,IRL,372,ISO 3166-2:IE,Europe,Northern Europe,"",150,154,""
110
+ Isle of Man,IM,IMN,833,ISO 3166-2:IM,Europe,Northern Europe,"",150,154,""
111
+ Israel,IL,ISR,376,ISO 3166-2:IL,Asia,Western Asia,"",142,145,""
112
+ Italy,IT,ITA,380,ISO 3166-2:IT,Europe,Southern Europe,"",150,039,""
113
+ Jamaica,JM,JAM,388,ISO 3166-2:JM,Americas,Latin America and the Caribbean,Caribbean,019,419,029
114
+ Japan,JP,JPN,392,ISO 3166-2:JP,Asia,Eastern Asia,"",142,030,""
115
+ Jersey,JE,JEY,832,ISO 3166-2:JE,Europe,Northern Europe,Channel Islands,150,154,830
116
+ Jordan,JO,JOR,400,ISO 3166-2:JO,Asia,Western Asia,"",142,145,""
117
+ Kazakhstan,KZ,KAZ,398,ISO 3166-2:KZ,Asia,Central Asia,"",142,143,""
118
+ Kenya,KE,KEN,404,ISO 3166-2:KE,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
119
+ Kiribati,KI,KIR,296,ISO 3166-2:KI,Oceania,Micronesia,"",009,057,""
120
+ Korea (Democratic People's Republic of),KP,PRK,408,ISO 3166-2:KP,Asia,Eastern Asia,"",142,030,""
121
+ "Korea, Republic of",KR,KOR,410,ISO 3166-2:KR,Asia,Eastern Asia,"",142,030,""
122
+ Kuwait,KW,KWT,414,ISO 3166-2:KW,Asia,Western Asia,"",142,145,""
123
+ Kyrgyzstan,KG,KGZ,417,ISO 3166-2:KG,Asia,Central Asia,"",142,143,""
124
+ Lao People's Democratic Republic,LA,LAO,418,ISO 3166-2:LA,Asia,South-eastern Asia,"",142,035,""
125
+ Latvia,LV,LVA,428,ISO 3166-2:LV,Europe,Northern Europe,"",150,154,""
126
+ Lebanon,LB,LBN,422,ISO 3166-2:LB,Asia,Western Asia,"",142,145,""
127
+ Lesotho,LS,LSO,426,ISO 3166-2:LS,Africa,Sub-Saharan Africa,Southern Africa,002,202,018
128
+ Liberia,LR,LBR,430,ISO 3166-2:LR,Africa,Sub-Saharan Africa,Western Africa,002,202,011
129
+ Libya,LY,LBY,434,ISO 3166-2:LY,Africa,Northern Africa,"",002,015,""
130
+ Liechtenstein,LI,LIE,438,ISO 3166-2:LI,Europe,Western Europe,"",150,155,""
131
+ Lithuania,LT,LTU,440,ISO 3166-2:LT,Europe,Northern Europe,"",150,154,""
132
+ Luxembourg,LU,LUX,442,ISO 3166-2:LU,Europe,Western Europe,"",150,155,""
133
+ Macao,MO,MAC,446,ISO 3166-2:MO,Asia,Eastern Asia,"",142,030,""
134
+ Madagascar,MG,MDG,450,ISO 3166-2:MG,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
135
+ Malawi,MW,MWI,454,ISO 3166-2:MW,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
136
+ Malaysia,MY,MYS,458,ISO 3166-2:MY,Asia,South-eastern Asia,"",142,035,""
137
+ Maldives,MV,MDV,462,ISO 3166-2:MV,Asia,Southern Asia,"",142,034,""
138
+ Mali,ML,MLI,466,ISO 3166-2:ML,Africa,Sub-Saharan Africa,Western Africa,002,202,011
139
+ Malta,MT,MLT,470,ISO 3166-2:MT,Europe,Southern Europe,"",150,039,""
140
+ Marshall Islands,MH,MHL,584,ISO 3166-2:MH,Oceania,Micronesia,"",009,057,""
141
+ Martinique,MQ,MTQ,474,ISO 3166-2:MQ,Americas,Latin America and the Caribbean,Caribbean,019,419,029
142
+ Mauritania,MR,MRT,478,ISO 3166-2:MR,Africa,Sub-Saharan Africa,Western Africa,002,202,011
143
+ Mauritius,MU,MUS,480,ISO 3166-2:MU,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
144
+ Mayotte,YT,MYT,175,ISO 3166-2:YT,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
145
+ Mexico,MX,MEX,484,ISO 3166-2:MX,Americas,Latin America and the Caribbean,Central America,019,419,013
146
+ Micronesia (Federated States of),FM,FSM,583,ISO 3166-2:FM,Oceania,Micronesia,"",009,057,""
147
+ "Moldova, Republic of",MD,MDA,498,ISO 3166-2:MD,Europe,Eastern Europe,"",150,151,""
148
+ Monaco,MC,MCO,492,ISO 3166-2:MC,Europe,Western Europe,"",150,155,""
149
+ Mongolia,MN,MNG,496,ISO 3166-2:MN,Asia,Eastern Asia,"",142,030,""
150
+ Montenegro,ME,MNE,499,ISO 3166-2:ME,Europe,Southern Europe,"",150,039,""
151
+ Montserrat,MS,MSR,500,ISO 3166-2:MS,Americas,Latin America and the Caribbean,Caribbean,019,419,029
152
+ Morocco,MA,MAR,504,ISO 3166-2:MA,Africa,Northern Africa,"",002,015,""
153
+ Mozambique,MZ,MOZ,508,ISO 3166-2:MZ,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
154
+ Myanmar,MM,MMR,104,ISO 3166-2:MM,Asia,South-eastern Asia,"",142,035,""
155
+ Namibia,NA,NAM,516,ISO 3166-2:NA,Africa,Sub-Saharan Africa,Southern Africa,002,202,018
156
+ Nauru,NR,NRU,520,ISO 3166-2:NR,Oceania,Micronesia,"",009,057,""
157
+ Nepal,NP,NPL,524,ISO 3166-2:NP,Asia,Southern Asia,"",142,034,""
158
+ Netherlands,NL,NLD,528,ISO 3166-2:NL,Europe,Western Europe,"",150,155,""
159
+ New Caledonia,NC,NCL,540,ISO 3166-2:NC,Oceania,Melanesia,"",009,054,""
160
+ New Zealand,NZ,NZL,554,ISO 3166-2:NZ,Oceania,Australia and New Zealand,"",009,053,""
161
+ Nicaragua,NI,NIC,558,ISO 3166-2:NI,Americas,Latin America and the Caribbean,Central America,019,419,013
162
+ Niger,NE,NER,562,ISO 3166-2:NE,Africa,Sub-Saharan Africa,Western Africa,002,202,011
163
+ Nigeria,NG,NGA,566,ISO 3166-2:NG,Africa,Sub-Saharan Africa,Western Africa,002,202,011
164
+ Niue,NU,NIU,570,ISO 3166-2:NU,Oceania,Polynesia,"",009,061,""
165
+ Norfolk Island,NF,NFK,574,ISO 3166-2:NF,Oceania,Australia and New Zealand,"",009,053,""
166
+ North Macedonia,MK,MKD,807,ISO 3166-2:MK,Europe,Southern Europe,"",150,039,""
167
+ Northern Mariana Islands,MP,MNP,580,ISO 3166-2:MP,Oceania,Micronesia,"",009,057,""
168
+ Norway,NO,NOR,578,ISO 3166-2:NO,Europe,Northern Europe,"",150,154,""
169
+ Oman,OM,OMN,512,ISO 3166-2:OM,Asia,Western Asia,"",142,145,""
170
+ Pakistan,PK,PAK,586,ISO 3166-2:PK,Asia,Southern Asia,"",142,034,""
171
+ Palau,PW,PLW,585,ISO 3166-2:PW,Oceania,Micronesia,"",009,057,""
172
+ "Palestine, State of",PS,PSE,275,ISO 3166-2:PS,Asia,Western Asia,"",142,145,""
173
+ Panama,PA,PAN,591,ISO 3166-2:PA,Americas,Latin America and the Caribbean,Central America,019,419,013
174
+ Papua New Guinea,PG,PNG,598,ISO 3166-2:PG,Oceania,Melanesia,"",009,054,""
175
+ Paraguay,PY,PRY,600,ISO 3166-2:PY,Americas,Latin America and the Caribbean,South America,019,419,005
176
+ Peru,PE,PER,604,ISO 3166-2:PE,Americas,Latin America and the Caribbean,South America,019,419,005
177
+ Philippines,PH,PHL,608,ISO 3166-2:PH,Asia,South-eastern Asia,"",142,035,""
178
+ Pitcairn,PN,PCN,612,ISO 3166-2:PN,Oceania,Polynesia,"",009,061,""
179
+ Poland,PL,POL,616,ISO 3166-2:PL,Europe,Eastern Europe,"",150,151,""
180
+ Portugal,PT,PRT,620,ISO 3166-2:PT,Europe,Southern Europe,"",150,039,""
181
+ Puerto Rico,PR,PRI,630,ISO 3166-2:PR,Americas,Latin America and the Caribbean,Caribbean,019,419,029
182
+ Qatar,QA,QAT,634,ISO 3166-2:QA,Asia,Western Asia,"",142,145,""
183
+ Réunion,RE,REU,638,ISO 3166-2:RE,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
184
+ Romania,RO,ROU,642,ISO 3166-2:RO,Europe,Eastern Europe,"",150,151,""
185
+ Russian Federation,RU,RUS,643,ISO 3166-2:RU,Europe,Eastern Europe,"",150,151,""
186
+ Rwanda,RW,RWA,646,ISO 3166-2:RW,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
187
+ Saint Barthélemy,BL,BLM,652,ISO 3166-2:BL,Americas,Latin America and the Caribbean,Caribbean,019,419,029
188
+ "Saint Helena, Ascension and Tristan da Cunha",SH,SHN,654,ISO 3166-2:SH,Africa,Sub-Saharan Africa,Western Africa,002,202,011
189
+ Saint Kitts and Nevis,KN,KNA,659,ISO 3166-2:KN,Americas,Latin America and the Caribbean,Caribbean,019,419,029
190
+ Saint Lucia,LC,LCA,662,ISO 3166-2:LC,Americas,Latin America and the Caribbean,Caribbean,019,419,029
191
+ Saint Martin (French part),MF,MAF,663,ISO 3166-2:MF,Americas,Latin America and the Caribbean,Caribbean,019,419,029
192
+ Saint Pierre and Miquelon,PM,SPM,666,ISO 3166-2:PM,Americas,Northern America,"",019,021,""
193
+ Saint Vincent and the Grenadines,VC,VCT,670,ISO 3166-2:VC,Americas,Latin America and the Caribbean,Caribbean,019,419,029
194
+ Samoa,WS,WSM,882,ISO 3166-2:WS,Oceania,Polynesia,"",009,061,""
195
+ San Marino,SM,SMR,674,ISO 3166-2:SM,Europe,Southern Europe,"",150,039,""
196
+ Sao Tome and Principe,ST,STP,678,ISO 3166-2:ST,Africa,Sub-Saharan Africa,Middle Africa,002,202,017
197
+ Saudi Arabia,SA,SAU,682,ISO 3166-2:SA,Asia,Western Asia,"",142,145,""
198
+ Senegal,SN,SEN,686,ISO 3166-2:SN,Africa,Sub-Saharan Africa,Western Africa,002,202,011
199
+ Serbia,RS,SRB,688,ISO 3166-2:RS,Europe,Southern Europe,"",150,039,""
200
+ Seychelles,SC,SYC,690,ISO 3166-2:SC,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
201
+ Sierra Leone,SL,SLE,694,ISO 3166-2:SL,Africa,Sub-Saharan Africa,Western Africa,002,202,011
202
+ Singapore,SG,SGP,702,ISO 3166-2:SG,Asia,South-eastern Asia,"",142,035,""
203
+ Sint Maarten (Dutch part),SX,SXM,534,ISO 3166-2:SX,Americas,Latin America and the Caribbean,Caribbean,019,419,029
204
+ Slovakia,SK,SVK,703,ISO 3166-2:SK,Europe,Eastern Europe,"",150,151,""
205
+ Slovenia,SI,SVN,705,ISO 3166-2:SI,Europe,Southern Europe,"",150,039,""
206
+ Solomon Islands,SB,SLB,090,ISO 3166-2:SB,Oceania,Melanesia,"",009,054,""
207
+ Somalia,SO,SOM,706,ISO 3166-2:SO,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
208
+ South Africa,ZA,ZAF,710,ISO 3166-2:ZA,Africa,Sub-Saharan Africa,Southern Africa,002,202,018
209
+ South Georgia and the South Sandwich Islands,GS,SGS,239,ISO 3166-2:GS,Americas,Latin America and the Caribbean,South America,019,419,005
210
+ South Sudan,SS,SSD,728,ISO 3166-2:SS,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
211
+ Spain,ES,ESP,724,ISO 3166-2:ES,Europe,Southern Europe,"",150,039,""
212
+ Sri Lanka,LK,LKA,144,ISO 3166-2:LK,Asia,Southern Asia,"",142,034,""
213
+ Sudan,SD,SDN,729,ISO 3166-2:SD,Africa,Northern Africa,"",002,015,""
214
+ Suriname,SR,SUR,740,ISO 3166-2:SR,Americas,Latin America and the Caribbean,South America,019,419,005
215
+ Svalbard and Jan Mayen,SJ,SJM,744,ISO 3166-2:SJ,Europe,Northern Europe,"",150,154,""
216
+ Sweden,SE,SWE,752,ISO 3166-2:SE,Europe,Northern Europe,"",150,154,""
217
+ Switzerland,CH,CHE,756,ISO 3166-2:CH,Europe,Western Europe,"",150,155,""
218
+ Syrian Arab Republic,SY,SYR,760,ISO 3166-2:SY,Asia,Western Asia,"",142,145,""
219
+ "Taiwan, Province of China",TW,TWN,158,ISO 3166-2:TW,Asia,Eastern Asia,"",142,030,""
220
+ Tajikistan,TJ,TJK,762,ISO 3166-2:TJ,Asia,Central Asia,"",142,143,""
221
+ "Tanzania, United Republic of",TZ,TZA,834,ISO 3166-2:TZ,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
222
+ Thailand,TH,THA,764,ISO 3166-2:TH,Asia,South-eastern Asia,"",142,035,""
223
+ Timor-Leste,TL,TLS,626,ISO 3166-2:TL,Asia,South-eastern Asia,"",142,035,""
224
+ Togo,TG,TGO,768,ISO 3166-2:TG,Africa,Sub-Saharan Africa,Western Africa,002,202,011
225
+ Tokelau,TK,TKL,772,ISO 3166-2:TK,Oceania,Polynesia,"",009,061,""
226
+ Tonga,TO,TON,776,ISO 3166-2:TO,Oceania,Polynesia,"",009,061,""
227
+ Trinidad and Tobago,TT,TTO,780,ISO 3166-2:TT,Americas,Latin America and the Caribbean,Caribbean,019,419,029
228
+ Tunisia,TN,TUN,788,ISO 3166-2:TN,Africa,Northern Africa,"",002,015,""
229
+ Turkey,TR,TUR,792,ISO 3166-2:TR,Asia,Western Asia,"",142,145,""
230
+ Turkmenistan,TM,TKM,795,ISO 3166-2:TM,Asia,Central Asia,"",142,143,""
231
+ Turks and Caicos Islands,TC,TCA,796,ISO 3166-2:TC,Americas,Latin America and the Caribbean,Caribbean,019,419,029
232
+ Tuvalu,TV,TUV,798,ISO 3166-2:TV,Oceania,Polynesia,"",009,061,""
233
+ Uganda,UG,UGA,800,ISO 3166-2:UG,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
234
+ Ukraine,UA,UKR,804,ISO 3166-2:UA,Europe,Eastern Europe,"",150,151,""
235
+ United Arab Emirates,AE,ARE,784,ISO 3166-2:AE,Asia,Western Asia,"",142,145,""
236
+ United Kingdom of Great Britain and Northern Ireland,GB,GBR,826,ISO 3166-2:GB,Europe,Northern Europe,"",150,154,""
237
+ United States of America,US,USA,840,ISO 3166-2:US,Americas,Northern America,"",019,021,""
238
+ United States Minor Outlying Islands,UM,UMI,581,ISO 3166-2:UM,Oceania,Micronesia,"",009,057,""
239
+ Uruguay,UY,URY,858,ISO 3166-2:UY,Americas,Latin America and the Caribbean,South America,019,419,005
240
+ Uzbekistan,UZ,UZB,860,ISO 3166-2:UZ,Asia,Central Asia,"",142,143,""
241
+ Vanuatu,VU,VUT,548,ISO 3166-2:VU,Oceania,Melanesia,"",009,054,""
242
+ Venezuela (Bolivarian Republic of),VE,VEN,862,ISO 3166-2:VE,Americas,Latin America and the Caribbean,South America,019,419,005
243
+ Viet Nam,VN,VNM,704,ISO 3166-2:VN,Asia,South-eastern Asia,"",142,035,""
244
+ Virgin Islands (British),VG,VGB,092,ISO 3166-2:VG,Americas,Latin America and the Caribbean,Caribbean,019,419,029
245
+ Virgin Islands (U.S.),VI,VIR,850,ISO 3166-2:VI,Americas,Latin America and the Caribbean,Caribbean,019,419,029
246
+ Wallis and Futuna,WF,WLF,876,ISO 3166-2:WF,Oceania,Polynesia,"",009,061,""
247
+ Western Sahara,EH,ESH,732,ISO 3166-2:EH,Africa,Northern Africa,"",002,015,""
248
+ Yemen,YE,YEM,887,ISO 3166-2:YE,Asia,Western Asia,"",142,145,""
249
+ Zambia,ZM,ZMB,894,ISO 3166-2:ZM,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
250
+ Zimbabwe,ZW,ZWE,716,ISO 3166-2:ZW,Africa,Sub-Saharan Africa,Eastern Africa,002,202,014
@@ -26,8 +26,6 @@
26
26
  },
27
27
  oneditresize: function() {
28
28
  },
29
- resizeRule : function(file,newWidth) {
30
- },
31
29
  button: {
32
30
  enabled: function() {
33
31
  return !this.changed;
@@ -1,5 +1,37 @@
1
-
2
1
  <script type="text/javascript">
2
+ const pribDataTypes={
3
+ genid:{value:"genid",label:"Generated ID",icon:"fa fa-key",hasValue:false},
4
+ genData:{value:"genData",label:"Generate Data",icon:"fa fa-pencil-square",hasValue:true,
5
+ validate: function(v){return true;},
6
+ expand: function() {
7
+ const node=this;
8
+ RED.editor.editText({
9
+ mode: "handlebars",
10
+ width: "Infinity",
11
+ focus: true,
12
+ value: this.value(),
13
+ complete: function(v) {
14
+ node.value(v);
15
+ }
16
+ })
17
+ }
18
+ },
19
+ genDataJSON:{value:"genDataJSON",label:"Generate JSON",icon:"fa fa-pencil-square-o",hasValue:true,
20
+ validate: function(v){return true;},
21
+ expand: function() {
22
+ const node=this;
23
+ RED.editor.editText({
24
+ mode: "handlebars",
25
+ width: "Infinity",
26
+ focus: true,
27
+ value: this.value(),
28
+ complete: function(v) {
29
+ node.value(v);
30
+ }
31
+ })
32
+ }
33
+ }
34
+ };
3
35
  /*globals RED */
4
36
  RED.nodes.registerType('Load Injector', {
5
37
  category: 'testing',
@@ -10,7 +42,9 @@
10
42
  thinktimemax: {value:10000, required:true}, // 10 seconds
11
43
  runtime: {value:60, required:true}, // 60 seconds
12
44
  payload: {value:"", validate: RED.validators.typedInput("payloadType")},
13
- payloadType: {value:"date"}
45
+ payloadType: {value:"date"},
46
+ topic: {value:"", validate: RED.validators.typedInput("topicType")},
47
+ topicType: {value:"date"}
14
48
  },
15
49
  inputs:1,
16
50
  inputLabels: "",
@@ -24,28 +58,49 @@
24
58
  return "node_label_italic";
25
59
  },
26
60
  oneditprepare: function() {
27
- if (this.payloadType === null) {
28
- if (this.payload === "") {
29
- this.payloadType = "date";
30
- } else {
31
- this.payloadType = "str";
32
- }
33
- } else if (this.payloadType === 'string' || this.payloadType === 'none') {
34
- this.payloadType = "str";
35
- }
36
- $("#node-input-payloadType").val(this.payloadType);
61
+ this.editors={};
62
+ $("#node-input-payloadType").val(this.payloadType||"str");
37
63
  $("#node-input-payload").typedInput({
38
64
  default: 'str',
39
65
  typeField: $("#node-input-payloadType"),
40
- types:['flow','global','str','num','bool','json','bin','date','env']
66
+ types:['date',
67
+ pribDataTypes.genid,
68
+ 'str','num','bool','json','jsonata',
69
+ pribDataTypes.genData,
70
+ pribDataTypes.genDataJSON,
71
+ 'bin','flow','global','env']
72
+ });
73
+ $("#node-input-topicType").val(this.topicType||"str");
74
+ $("#node-input-topic").typedInput({
75
+ default: 'str',
76
+ typeField: $("#node-input-topicType"),
77
+ types:['date',
78
+ pribDataTypes.genid,
79
+ 'str','num','bool','json','jsonata',
80
+ pribDataTypes.genData,
81
+ pribDataTypes.genDataJSON,
82
+ 'bin','flow','global','env']
41
83
  });
42
84
  },
43
- oneditsave: function() {
44
- },
85
+ oneditsave: function() {
86
+ const node=this;
87
+ Object.keys(node.editors).forEach(property=>{
88
+ const editor=node.editors[property];
89
+ node[property]=editor.getValue();
90
+ editor.destroy();
91
+ delete editor;
92
+ })
93
+ },
94
+ oneditcancel: function() {
95
+ const node=this;
96
+ Object.keys(node.editors).forEach(property=>{
97
+ const editor=node.editors[property];
98
+ editor.destroy();
99
+ delete editor;
100
+ });
101
+ },
45
102
  oneditresize: function() {
46
103
  },
47
- resizeRule : function(file,newWidth) {
48
- },
49
104
  button: {
50
105
  enabled: function() {
51
106
  return !this.changed;
@@ -103,14 +158,15 @@
103
158
  </div>
104
159
 
105
160
  <div class="form-row">
106
- <label for="node-input-payload"><i class="fa fa-envelope"></i> Payload Type</label>
107
- <input type="text" id="node-input-payload" style="width:70%">
161
+ <label for="node-input-payload"><i class="fa fa-envelope"></i> Payload</label>
162
+ <input type="text" id="node-input-payload">
108
163
  <input type="hidden" id="node-input-payloadType">
109
164
  </div>
110
165
 
111
166
  <div class="form-row">
112
167
  <label for="node-input-topic"><i class="fa fa-tasks"></i> Topic</span></label>
113
168
  <input type="text" id="node-input-topic">
169
+ <input type="hidden" id="node-input-topicType">
114
170
  </div>
115
171
 
116
172
  </script>
@@ -119,5 +175,4 @@
119
175
  <p>Injects messages for a period of time based on varied time time.
120
176
  Simulate random arrival of messages and can be set to reflect think time of a user by setting min and maximum boundaries.
121
177
  </p>
122
- </script>
123
-
178
+ </script>
@@ -1,7 +1,6 @@
1
- const nodeLabel="Load Injector";
2
- const Logger = require("node-red-contrib-logger");
3
- const logger = new Logger(nodeLabel);
4
- logger.sendInfo("Copyright 2020 Jaroslav Peter Prib");
1
+ const logger = new (require("node-red-contrib-logger"))("Load Injector");
2
+ logger.sendInfo("Copyright 2022 Jaroslav Peter Prib");
3
+ const noderedBase=require("node-red-contrib-noderedbase");
5
4
 
6
5
  function thinkTimeTime() {
7
6
  return this.thinktimemin+Math.floor(Math.random()*this.thinkRange);
@@ -43,19 +42,27 @@ module.exports = function (RED) {
43
42
  function LoadInjectorNode(n) {
44
43
  RED.nodes.createNode(this, n);
45
44
  const node=Object.assign(this,n);
46
- this.thinktimemin=Number(this.thinktimemin);
47
- this.thinktimemax=Number(this.thinktimemax);
48
- if(this.thinktimemax<this.thinktimemin) {
49
- this.thinktimemin=this.thinktimemax;
50
- node.error("Minimum think time "+his.thinktimemin+" set down to max "+this.thinktimemax);
51
- }
52
- this.thinkRange=node.thinktimemax-node.thinktimemin+1;
53
- if(this.thinkRange<0) {
54
- this.thinkRange=0;
55
- }
56
- node.status({fill:"red",shape:"ring",text:"Not started"});
45
+ node._base=new noderedBase(RED,node);
46
+ try{
47
+ this._base.setSource("payload").setSource("topic");
48
+ this.thinktimemin=Number(this.thinktimemin);
49
+ this.thinktimemax=Number(this.thinktimemax);
50
+ if(this.thinktimemax<this.thinktimemin) {
51
+ this.thinktimemin=this.thinktimemax;
52
+ node.error("Minimum think time "+his.thinktimemin+" set down to max "+this.thinktimemax);
53
+ }
54
+ this.thinkRange=node.thinktimemax-node.thinktimemin+1;
55
+ if(this.thinkRange<0) {
56
+ this.thinkRange=0;
57
+ }
58
+ node.status({fill:"red",shape:"ring",text:"Not started"});
59
+ } catch(ex) {
60
+ node._base.error(ex,"Invalid setup "+ex.message);
61
+ return;
62
+ }
57
63
  node.on("input", function(msg) {
58
- switch(msg.topic) {
64
+ try{
65
+ switch(msg.topic) {
59
66
  case "loadinjector.stop":
60
67
  runtimeStop.apply(node);
61
68
  node.send();
@@ -64,34 +71,15 @@ module.exports = function (RED) {
64
71
  runtimeStart.apply(node);
65
72
  node.send();
66
73
  return;
67
- }
68
- msg.topic = node.topic;
69
- if (node.payloadType !== 'flow' && node.payloadType !== 'global') {
70
- try {
71
- if ( (node.payloadType === null && this.payload === "") || node.payloadType === "date") {
72
- msg.payload = Date.now();
73
- } else if (node.payloadType === null) {
74
- msg.payload = node.payload;
75
- } else if (node.payloadType === 'none') {
76
- msg.payload = "";
77
- } else {
78
- msg.payload = RED.util.evaluateNodeProperty(node.payload,node.payloadType,node,msg);
79
- }
80
- node.send(msg);
81
- msg = null;
82
- } catch(err) {
83
- node.error(err,msg);
84
- }
85
- } else {
86
- RED.util.evaluateNodeProperty(node.payload,node.payloadType,node,msg, function(err,res) {
87
- if (err) {
88
- node.error(err,msg);
89
- } else {
90
- msg.payload = res;
91
- node.send(msg);
92
- }
93
- });
94
- }
74
+ }
75
+ msg.topic=node.getTopic(msg);
76
+ msg.payload=node.getPayload(msg);
77
+ node.send(msg);
78
+ } catch(ex) {
79
+ msg.error=ex.message;
80
+ node.send([null,msg]);
81
+ if(logger.active) logger.send({label:"msg error",node:node.id,exception:ex.message,stack:ex.stack});
82
+ }
95
83
  });
96
84
  }
97
85
 
@@ -99,7 +87,7 @@ module.exports = function (RED) {
99
87
  runtimeStop.apply(this);
100
88
  };
101
89
 
102
- // RED.httpAdmin.post("/loadinjector/:id", RED.auth.needsPermission("inject.write"), function(req,res) {
90
+ // RED.httpAdmin.post("/loadinjector/:id", RED.auth.needsPermission("inject.write"), function(req,res) {
103
91
  RED.httpAdmin.get("/loadinjector/:id", function(req,res) {
104
92
  const node = RED.nodes.getNode(req.params.id);
105
93
  if (node && node.type==="Load Injector") {
@@ -120,14 +108,7 @@ module.exports = function (RED) {
120
108
  var reason2="request to start/stop load injector failed for id:" +req.params.id;
121
109
  node.error(reason2);
122
110
  res.status(404).send(reason2);
123
- // res.sendStatus(404);
124
111
  }
125
112
  });
126
-
127
- RED.nodes.registerType(nodeLabel,LoadInjectorNode);
128
-
129
- };
130
-
131
-
132
-
133
-
113
+ RED.nodes.registerType(logger.label,LoadInjectorNode);
114
+ };