all files / lib/utils/ lang.js

90.16% Statements 55/61
76.67% Branches 23/30
100% Functions 7/7
91.49% Lines 43/47
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                            109×   44×   20×     10× 10× 10× 10×   10×   10×   10×         28×   28×       28×       28×   28×   28×   28×   28×                          
"use strict";
 
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.clone = clone;
exports.extend = extend;
exports.insertBefore = insertBefore;
exports.insertAfter = insertAfter;
 
var _extendShallow = require("extend-shallow");
 
var _extendShallow2 = _interopRequireDefault(_extendShallow);
 
var _lodash = require("lodash.clonedeep");
 
var _lodash2 = _interopRequireDefault(_lodash);
 
var _isPlainObject = require("is-plain-object");
 
var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
 
var _arrayDiffer = require("array-differ");
 
var _arrayDiffer2 = _interopRequireDefault(_arrayDiffer);
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
function _toConsumableArray(arr) { Eif (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
 
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; Iif (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
 
function clone(obj) {
    return (0, _lodash2.default)(obj);
}
 
function extend(source, ext) {
    var srcOrder = source._order;
    var extOrder = ext._order;
    var props = _objectWithoutProperties(ext, ["_order"]);
    var extKeys = Object.keys(props);
 
    var newTokens = (0, _arrayDiffer2.default)(extKeys, srcOrder);
 
    var def = clone(source);
 
    return (0, _extendShallow2.default)(def, ext, {
        _order: srcOrder.concat(newTokens)
    });
}
 
function insertBefore(source, before, insert) {
    var _source$_order;
 
    Iif (!(0, _isPlainObject2.default)(source) || !source.hasOwnProperty("_order") || !Array.isArray(source._order)) {
        throw new Error("Source does not have required property '_order' as an array.");
    }
 
    Iif (!(0, _isPlainObject2.default)(insert) || !insert.hasOwnProperty("_order") || !Array.isArray(insert._order)) {
        throw new Error("insert does not have required property '_order' as an array");
    }
 
    source._order = (0, _arrayDiffer2.default)(source._order, Object.keys(insert));
 
    var index = source._order.indexOf(before);
 
    (_source$_order = source._order).splice.apply(_source$_order, [index, 0].concat(_toConsumableArray(insert._order)));
 
    delete insert._order;
 
    return (0, _extendShallow2.default)(source, insert);
}
 
function insertAfter(source, after, insert) {
    var _source$_order2;
 
    Iif (!(0, _isPlainObject2.default)(source) || !source.hasOwnProperty("_order") || !Array.isArray(source._order)) {
        throw new Error("Source does not have required property '_order' as an array.");
    }
 
    Iif (!(0, _isPlainObject2.default)(insert) || !insert.hasOwnProperty("_order") || !Array.isArray(insert._order)) {
        throw new Error("insert does not have required property '_order' as an array");
    }
 
    var index = source._order.indexOf(after);
 
    (_source$_order2 = source._order).splice.apply(_source$_order2, [index + 1, 0].concat(_toConsumableArray(insert._order)));
 
    delete insert._order;
 
    return (0, _extendShallow2.default)(source, insert);
}