UNPKG

1.52 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.setPath = setPath;
7exports.defaults = defaults;
8exports.extend = extend;
9exports.removeLngFromUrl = removeLngFromUrl;
10function setPath(object, path, newValue) {
11 var stack = void 0;
12 if (typeof path !== 'string') stack = [].concat(path);
13 if (typeof path === 'string') stack = path.split('.');
14
15 while (stack.length > 1) {
16 var _key = stack.shift();
17 if (_key.indexOf('###') > -1) _key = _key.replace(/###/g, '.');
18 if (!object[_key]) object[_key] = {};
19 object = object[_key];
20 }
21
22 var key = stack.shift();
23 if (key.indexOf('###') > -1) key = key.replace(/###/g, '.');
24 object[key] = newValue;
25}
26
27var arr = [];
28var each = arr.forEach;
29var slice = arr.slice;
30
31function defaults(obj) {
32 each.call(slice.call(arguments, 1), function (source) {
33 if (source) {
34 for (var prop in source) {
35 if (obj[prop] === undefined) obj[prop] = source[prop];
36 }
37 }
38 });
39 return obj;
40}
41
42function extend(obj) {
43 each.call(slice.call(arguments, 1), function (source) {
44 if (source) {
45 for (var prop in source) {
46 obj[prop] = source[prop];
47 }
48 }
49 });
50 return obj;
51}
52
53function removeLngFromUrl(url, lookupFromPathIndex) {
54 var first = '';
55 var pos = lookupFromPathIndex;
56
57 if (url[0] === '/') {
58 pos++;
59 first = '/';
60 }
61
62 // Build new url
63 var parts = url.split('/');
64 parts.splice(pos, 1);
65 url = parts.join('/');
66 if (url[0] !== '/') url = first + url;
67
68 return url;
69}
\No newline at end of file