-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
utils.js
56 lines (51 loc) · 1.55 KB
/
utils.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
// Generated by CoffeeScript 1.5.0
(function() {
var deepExtend, getParentFolderName, path,
__slice = [].slice,
__hasProp = {}.hasOwnProperty,
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
path = require('path');
module.exports.uniqueId = function(length) {
var id;
if (length == null) {
length = 8;
}
id = "";
while (id.length < length) {
id += Math.random().toString(36).substr(2);
}
return id.substr(0, length);
};
module.exports.deepExtend = deepExtend = function() {
var extenders, key, object, other, val, _i, _len;
object = arguments[0], extenders = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
if (object == null) {
return {};
}
for (_i = 0, _len = extenders.length; _i < _len; _i++) {
other = extenders[_i];
for (key in other) {
if (!__hasProp.call(other, key)) continue;
val = other[key];
if (object[key] == null) {
object[key] = val;
} else {
object[key] = deepExtend(object[key], val);
}
}
}
return object;
};
module.exports.getParentFolderName = getParentFolderName = function(pathname, exclude) {
var basename;
if (exclude == null) {
exclude = [];
}
basename = path.basename(pathname);
if (__indexOf.call(exclude, basename) >= 0) {
return getParentFolderName(path.dirname(pathname));
} else {
return basename;
}
};
}).call(this);