/
format.js
110 lines (84 loc) · 2.35 KB
/
format.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
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
102
103
104
105
106
107
108
109
110
'use strict';
const changeCase = require('change-case');
module.exports = class Format {
static toControllerName(name) {
name = changeCase.pascal(name);
name = name.replace(/Ctrl$/, 'Controller');
if (!name.match(/Controller$/)) {
name += 'Controller';
}
return name;
}
static toControllerVarName(name) {
return changeCase.camel(Format.toControllerName(name));
}
static toConstName(name) {
return changeCase.pascal(name);
}
static toServiceName(name) {
return changeCase.pascal(name)
.replace(/Service$/, '')
.replace(/Srv$/, '')
.replace(/Provider$/, '')
.replace(/Factory$/, '');
}
static toDirectiveName(name) {
return changeCase.camel(name)
.replace(/Directive$/, '')
.replace(/Drv$/, '');
}
static toDirectiveTagName(name) {
return changeCase.param(Format.toDirectiveName(name));
}
static toComponentName(name) {
return changeCase.camel(name)
.replace(/Component$/, '')
.replace(/Cmp$/, '');
}
static toComponentTagName(name) {
return changeCase.param(Format.toComponentName(name));
}
static toFilterName(name) {
return changeCase.camel(name)
.replace(/Filter$/, '');
}
static toFolderName(name) {
return changeCase.param(name);
}
static toStateName(name) {
return changeCase.camel(name);
}
static toJSFileName(name) {
const filename = changeCase.param(name)
.replace('-controller', '')
.replace('-directive', '')
.replace('-service', '')
.replace('-filter', '')
.replace('-model', '')
.replace('-spec', '.spec');
return `${filename}.js`;
}
static toHTMLFileName(name) {
return `${ changeCase.param(name) }.html`;
}
static toSCSSFileName(name) {
return `${ changeCase.param(name) }.scss`;
}
static toPartialName(name) {
return `_${ changeCase.param(name) }.html`;
}
static toPartialControllerName(name) {
return `_${ changeCase.param(name) }.js`;
}
static toPartialControllerSpecName(name) {
return `_${ changeCase.param(name) }.spec.js`;
}
static parentPath(parents) {
parents = parents.map((parent) => Format.toFolderName(parent)).join('/');
if (parents) { parents += '/'; }
return parents;
}
static parentState(parents) {
return parents.map((parent) => Format.toFolderName(parent)).join('.');
}
};