/
StringTransformDynamicValue.js
72 lines (66 loc) · 2.02 KB
/
StringTransformDynamicValue.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
var upperFn = function(s) {
return s.toUpperCase();
}
var lowerFn = function(s) {
return s.toLowerCase();
}
var titleFn = function(s) {
return s.split(' ').map(w => w.substr(0,1).toUpperCase() + w.substr(1).toLowerCase()).join(' ');
}
var camelFn = function(s) {
return s.split(/\s/).map(w => w.substr(0,1).toUpperCase() + w.substr(1).toLowerCase()).join('');
}
var snakeFn = function(s) {
return s.split(/\s+/).map(w => w.toLowerCase()).join('_');
}
var trainFn = function(s) {
return s.split(/\s+/).map(w => w.toLowerCase()).join('-');
}
var StringTransformDynamicValue = function () {
this.title = function (context) {
return "Transform";
};
this.text = function (context) {
return this.input || null;
};
this.evaluate = function (context) {
var input = this.input;
var transform = this.transform;
if (transform == 'upper') {
return upperFn(input);
}
else if (transform == 'lower') {
return lowerFn(input);
}
else if (transform == 'title') {
return titleFn(input);
}
else if (transform == 'camel') {
return camelFn(input);
}
else if (transform == 'snake') {
return snakeFn(input);
}
else if (transform == 'train') {
return trainFn(input);
}
return input;
};
};
StringTransformDynamicValue.identifier = "com.luckymarmot.PawExtensions.StringTransformDynamicValue";
StringTransformDynamicValue.title = "String Transform Dynamic Value";
StringTransformDynamicValue.inputs = [
InputField("input", "Input", "String"),
InputField("transform", "Transform", "Select", {
"choices": {
"upper": "Upper Case",
"lower": "Lower Case",
"title": "Title Case",
"camel": "Camel Case",
"snake": "Snake Case",
"train": "Train Case"
},
persisted: true
})
];
registerDynamicValueClass(StringTransformDynamicValue);