nv-facutil-def-bw-attr 1.0.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.
- package/index.js +83 -0
- package/package.json +14 -0
package/index.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
const {translate} = require("nv-bool-true-false-undef").trans;
|
|
2
|
+
|
|
3
|
+
const attr_to_accessor_name = (attr)=> {
|
|
4
|
+
let arr = attr.split("-");
|
|
5
|
+
if(arr.length === 1) {return attr}
|
|
6
|
+
let s = arr[0];
|
|
7
|
+
for(let i=1;i<arr.length;++i) {
|
|
8
|
+
s+=arr[i][0].toUpperCase()+arr[i].slice(1)
|
|
9
|
+
}
|
|
10
|
+
return s;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const def_bool_accessor = (self,attr)=>{
|
|
14
|
+
let accessor_name = attr_to_accessor_name(attr);
|
|
15
|
+
Object.defineProperty(self,accessor_name,{
|
|
16
|
+
get:()=>{
|
|
17
|
+
let v = translate(self.getAttribute(attr));
|
|
18
|
+
if(v===true) {
|
|
19
|
+
return true;
|
|
20
|
+
} else {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
set:(val)=>{
|
|
25
|
+
let v = translate(val);
|
|
26
|
+
if(v===true) {
|
|
27
|
+
self.setAttribute(attr,"true");
|
|
28
|
+
} else {
|
|
29
|
+
self.setAttribute(attr,"false");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const def_str_accessor = (self,attr)=>{
|
|
36
|
+
let accessor_name = attr_to_accessor_name(attr);
|
|
37
|
+
Object.defineProperty(self,accessor_name,{
|
|
38
|
+
get:()=>{
|
|
39
|
+
let v = self.getAttribute(attr);
|
|
40
|
+
if(v===undefined || v===null || v === "undefined" || v==="null") {
|
|
41
|
+
return v??self?.defaults?.[accessor_name];
|
|
42
|
+
} else {
|
|
43
|
+
return String(v);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
set:(v)=>{
|
|
47
|
+
if(v===undefined || v===null || v === "undefined" || v==="null") {
|
|
48
|
+
self.setAttribute(attr,self?.defaults?.[accessor_name])
|
|
49
|
+
} else {
|
|
50
|
+
self.setAttribute(attr,String(val))
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const def_json_accessor = (self,attr)=>{
|
|
57
|
+
let accessor_name = attr_to_accessor_name(attr);
|
|
58
|
+
Object.defineProperty(self,accessor_name,{
|
|
59
|
+
get:()=>{
|
|
60
|
+
let v = self.getAttribute(attr);
|
|
61
|
+
if(v===undefined || v===null || v === "undefined" || v==="null") {
|
|
62
|
+
return v??self?.defaults?.[accessor_name];
|
|
63
|
+
} else {
|
|
64
|
+
return JSON.parse(v);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
set:(v)=>{
|
|
68
|
+
if(v===undefined || v===null || v === "undefined" || v==="null") {
|
|
69
|
+
self.setAttribute(attr,self?.defaults?.[accessor_name])
|
|
70
|
+
} else {
|
|
71
|
+
self.setAttribute(attr,JSON.stringify(v));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
module.exports = {
|
|
79
|
+
attr_to_accessor_name,
|
|
80
|
+
def_bool_accessor,
|
|
81
|
+
def_str_accessor,
|
|
82
|
+
def_json_accessor
|
|
83
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nv-facutil-def-bw-attr",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"author": "",
|
|
9
|
+
"license": "ISC",
|
|
10
|
+
"description": "",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"nv-bool-true-false-undef": "^1.0.0"
|
|
13
|
+
}
|
|
14
|
+
}
|