-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathutils.js
More file actions
101 lines (92 loc) · 1.59 KB
/
utils.js
File metadata and controls
101 lines (92 loc) · 1.59 KB
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
export function getDefineCallForElement(cem, tagName) {
let result = undefined;
cem?.modules?.forEach(_module => {
_module?.exports?.forEach(ex => {
if (ex.kind === 'custom-element-definition' && ex.name === tagName) result = _module.path;
});
});
return result;
}
export function camelize(str) {
const arr = str.split('-');
const capital = arr.map((item, index) =>
index ? item.charAt(0).toUpperCase() + item.slice(1).toLowerCase() : item.toLowerCase(),
);
return capital.join('');
}
export function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
export const createEventName = event => `on${capitalizeFirstLetter(camelize(event.name))}`;
export const has = arr => Array.isArray(arr) && arr.length > 0;
export const RESERVED_WORDS = [
'children',
'localName',
'ref',
'style',
'className',
'abstract',
'arguments',
'await',
'boolean',
'break',
'byte',
'case',
'catch',
'char',
'class',
'const',
'continue',
'debugger',
'default',
'delete',
'do',
'double',
'else',
'enum',
'eval',
'export',
'extends',
'false',
'final',
'finally',
'float',
'for',
'function',
'goto',
'if',
'implements',
'import',
'in',
'instanceof',
'int',
'interface',
'let',
'long',
'native',
'new',
'null',
'package',
'private',
'protected',
'public',
'return',
'short',
'static',
'super',
'switch',
'synchronized',
'this',
'throw',
'throws',
'transient',
'true',
'try',
'typeof',
'var',
'void',
'volatile',
'while',
'with',
'yield',
];