-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
59 lines (50 loc) · 1.26 KB
/
index.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
const Chance = require('chance');
const chance = new Chance();
module.exports = ({
root = false,
dir = false,
relative = false,
name = false,
dotfile = false,
ext = false,
base = false
} = {}) => {
const pathObject = {
base: '',
dir: '',
ext: '',
name: '',
root: ''
};
if (root) {
pathObject.root = '/';
}
if (dir) {
const path = chance.n(chance.word, chance.d6()).join('/');
if (root) {
pathObject.dir = pathObject.root + path;
} else if (relative) {
pathObject.dir = `../${path}`;
} else {
pathObject.dir = path;
}
}
if (name) {
pathObject.name = dotfile ? `.${chance.word()}` : chance.word();
}
if (ext) {
pathObject.ext = `.${chance.word()}`;
}
if (base) {
if (pathObject.name && pathObject.ext) {
pathObject.base = pathObject.name + pathObject.ext;
} else if (pathObject.name) {
pathObject.base = pathObject.name;
} else if (pathObject.ext) {
pathObject.base = pathObject.ext;
} else {
pathObject.base = `${chance.word()}.${chance.word()}`;
}
}
return pathObject;
};