82f2b76e25
We now use webpack instead of SystemJS, effectively bundling modules into one file (plus commons chunks) for every entry point. This results in a much smaller extension size (almost half). Furthermore we use yarn/npm even for extension run-time dependencies. This relieves us from manually vendoring and building dependencies. It's also easier to understand for new developers familiar with node.
369 lines
9.9 KiB
JavaScript
369 lines
9.9 KiB
JavaScript
/** Used to map aliases to their real names. */
|
|
exports.aliasToReal = {
|
|
|
|
// Lodash aliases.
|
|
'each': 'forEach',
|
|
'eachRight': 'forEachRight',
|
|
'entries': 'toPairs',
|
|
'entriesIn': 'toPairsIn',
|
|
'extend': 'assignIn',
|
|
'extendAll': 'assignInAll',
|
|
'extendAllWith': 'assignInAllWith',
|
|
'extendWith': 'assignInWith',
|
|
'first': 'head',
|
|
|
|
// Methods that are curried variants of others.
|
|
'conforms': 'conformsTo',
|
|
'matches': 'isMatch',
|
|
'property': 'get',
|
|
|
|
// Ramda aliases.
|
|
'__': 'placeholder',
|
|
'F': 'stubFalse',
|
|
'T': 'stubTrue',
|
|
'all': 'every',
|
|
'allPass': 'overEvery',
|
|
'always': 'constant',
|
|
'any': 'some',
|
|
'anyPass': 'overSome',
|
|
'apply': 'spread',
|
|
'assoc': 'set',
|
|
'assocPath': 'set',
|
|
'complement': 'negate',
|
|
'compose': 'flowRight',
|
|
'contains': 'includes',
|
|
'dissoc': 'unset',
|
|
'dissocPath': 'unset',
|
|
'dropLast': 'dropRight',
|
|
'dropLastWhile': 'dropRightWhile',
|
|
'equals': 'isEqual',
|
|
'identical': 'eq',
|
|
'indexBy': 'keyBy',
|
|
'init': 'initial',
|
|
'invertObj': 'invert',
|
|
'juxt': 'over',
|
|
'omitAll': 'omit',
|
|
'nAry': 'ary',
|
|
'path': 'get',
|
|
'pathEq': 'matchesProperty',
|
|
'pathOr': 'getOr',
|
|
'paths': 'at',
|
|
'pickAll': 'pick',
|
|
'pipe': 'flow',
|
|
'pluck': 'map',
|
|
'prop': 'get',
|
|
'propEq': 'matchesProperty',
|
|
'propOr': 'getOr',
|
|
'props': 'at',
|
|
'symmetricDifference': 'xor',
|
|
'symmetricDifferenceBy': 'xorBy',
|
|
'symmetricDifferenceWith': 'xorWith',
|
|
'takeLast': 'takeRight',
|
|
'takeLastWhile': 'takeRightWhile',
|
|
'unapply': 'rest',
|
|
'unnest': 'flatten',
|
|
'useWith': 'overArgs',
|
|
'where': 'conformsTo',
|
|
'whereEq': 'isMatch',
|
|
'zipObj': 'zipObject'
|
|
};
|
|
|
|
/** Used to map ary to method names. */
|
|
exports.aryMethod = {
|
|
'1': [
|
|
'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',
|
|
'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',
|
|
'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',
|
|
'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',
|
|
'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
|
|
'uniqueId', 'words', 'zipAll'
|
|
],
|
|
'2': [
|
|
'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',
|
|
'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',
|
|
'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',
|
|
'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',
|
|
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',
|
|
'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',
|
|
'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',
|
|
'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',
|
|
'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',
|
|
'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',
|
|
'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',
|
|
'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',
|
|
'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',
|
|
'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',
|
|
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
|
|
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
|
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
|
'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',
|
|
'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',
|
|
'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',
|
|
'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',
|
|
'zipObjectDeep'
|
|
],
|
|
'3': [
|
|
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
|
|
'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',
|
|
'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',
|
|
'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',
|
|
'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',
|
|
'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',
|
|
'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',
|
|
'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',
|
|
'xorWith', 'zipWith'
|
|
],
|
|
'4': [
|
|
'fill', 'setWith', 'updateWith'
|
|
]
|
|
};
|
|
|
|
/** Used to map ary to rearg configs. */
|
|
exports.aryRearg = {
|
|
'2': [1, 0],
|
|
'3': [2, 0, 1],
|
|
'4': [3, 2, 0, 1]
|
|
};
|
|
|
|
/** Used to map method names to their iteratee ary. */
|
|
exports.iterateeAry = {
|
|
'dropRightWhile': 1,
|
|
'dropWhile': 1,
|
|
'every': 1,
|
|
'filter': 1,
|
|
'find': 1,
|
|
'findFrom': 1,
|
|
'findIndex': 1,
|
|
'findIndexFrom': 1,
|
|
'findKey': 1,
|
|
'findLast': 1,
|
|
'findLastFrom': 1,
|
|
'findLastIndex': 1,
|
|
'findLastIndexFrom': 1,
|
|
'findLastKey': 1,
|
|
'flatMap': 1,
|
|
'flatMapDeep': 1,
|
|
'flatMapDepth': 1,
|
|
'forEach': 1,
|
|
'forEachRight': 1,
|
|
'forIn': 1,
|
|
'forInRight': 1,
|
|
'forOwn': 1,
|
|
'forOwnRight': 1,
|
|
'map': 1,
|
|
'mapKeys': 1,
|
|
'mapValues': 1,
|
|
'partition': 1,
|
|
'reduce': 2,
|
|
'reduceRight': 2,
|
|
'reject': 1,
|
|
'remove': 1,
|
|
'some': 1,
|
|
'takeRightWhile': 1,
|
|
'takeWhile': 1,
|
|
'times': 1,
|
|
'transform': 2
|
|
};
|
|
|
|
/** Used to map method names to iteratee rearg configs. */
|
|
exports.iterateeRearg = {
|
|
'mapKeys': [1],
|
|
'reduceRight': [1, 0]
|
|
};
|
|
|
|
/** Used to map method names to rearg configs. */
|
|
exports.methodRearg = {
|
|
'assignInAllWith': [1, 0],
|
|
'assignInWith': [1, 2, 0],
|
|
'assignAllWith': [1, 0],
|
|
'assignWith': [1, 2, 0],
|
|
'differenceBy': [1, 2, 0],
|
|
'differenceWith': [1, 2, 0],
|
|
'getOr': [2, 1, 0],
|
|
'intersectionBy': [1, 2, 0],
|
|
'intersectionWith': [1, 2, 0],
|
|
'isEqualWith': [1, 2, 0],
|
|
'isMatchWith': [2, 1, 0],
|
|
'mergeAllWith': [1, 0],
|
|
'mergeWith': [1, 2, 0],
|
|
'padChars': [2, 1, 0],
|
|
'padCharsEnd': [2, 1, 0],
|
|
'padCharsStart': [2, 1, 0],
|
|
'pullAllBy': [2, 1, 0],
|
|
'pullAllWith': [2, 1, 0],
|
|
'rangeStep': [1, 2, 0],
|
|
'rangeStepRight': [1, 2, 0],
|
|
'setWith': [3, 1, 2, 0],
|
|
'sortedIndexBy': [2, 1, 0],
|
|
'sortedLastIndexBy': [2, 1, 0],
|
|
'unionBy': [1, 2, 0],
|
|
'unionWith': [1, 2, 0],
|
|
'updateWith': [3, 1, 2, 0],
|
|
'xorBy': [1, 2, 0],
|
|
'xorWith': [1, 2, 0],
|
|
'zipWith': [1, 2, 0]
|
|
};
|
|
|
|
/** Used to map method names to spread configs. */
|
|
exports.methodSpread = {
|
|
'assignAll': { 'start': 0 },
|
|
'assignAllWith': { 'start': 0 },
|
|
'assignInAll': { 'start': 0 },
|
|
'assignInAllWith': { 'start': 0 },
|
|
'defaultsAll': { 'start': 0 },
|
|
'defaultsDeepAll': { 'start': 0 },
|
|
'invokeArgs': { 'start': 2 },
|
|
'invokeArgsMap': { 'start': 2 },
|
|
'mergeAll': { 'start': 0 },
|
|
'mergeAllWith': { 'start': 0 },
|
|
'partial': { 'start': 1 },
|
|
'partialRight': { 'start': 1 },
|
|
'without': { 'start': 1 },
|
|
'zipAll': { 'start': 0 }
|
|
};
|
|
|
|
/** Used to identify methods which mutate arrays or objects. */
|
|
exports.mutate = {
|
|
'array': {
|
|
'fill': true,
|
|
'pull': true,
|
|
'pullAll': true,
|
|
'pullAllBy': true,
|
|
'pullAllWith': true,
|
|
'pullAt': true,
|
|
'remove': true,
|
|
'reverse': true
|
|
},
|
|
'object': {
|
|
'assign': true,
|
|
'assignAll': true,
|
|
'assignAllWith': true,
|
|
'assignIn': true,
|
|
'assignInAll': true,
|
|
'assignInAllWith': true,
|
|
'assignInWith': true,
|
|
'assignWith': true,
|
|
'defaults': true,
|
|
'defaultsAll': true,
|
|
'defaultsDeep': true,
|
|
'defaultsDeepAll': true,
|
|
'merge': true,
|
|
'mergeAll': true,
|
|
'mergeAllWith': true,
|
|
'mergeWith': true,
|
|
},
|
|
'set': {
|
|
'set': true,
|
|
'setWith': true,
|
|
'unset': true,
|
|
'update': true,
|
|
'updateWith': true
|
|
}
|
|
};
|
|
|
|
/** Used to track methods with placeholder support */
|
|
exports.placeholder = {
|
|
'bind': true,
|
|
'bindKey': true,
|
|
'curry': true,
|
|
'curryRight': true,
|
|
'partial': true,
|
|
'partialRight': true
|
|
};
|
|
|
|
/** Used to map real names to their aliases. */
|
|
exports.realToAlias = (function() {
|
|
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
|
object = exports.aliasToReal,
|
|
result = {};
|
|
|
|
for (var key in object) {
|
|
var value = object[key];
|
|
if (hasOwnProperty.call(result, value)) {
|
|
result[value].push(key);
|
|
} else {
|
|
result[value] = [key];
|
|
}
|
|
}
|
|
return result;
|
|
}());
|
|
|
|
/** Used to map method names to other names. */
|
|
exports.remap = {
|
|
'assignAll': 'assign',
|
|
'assignAllWith': 'assignWith',
|
|
'assignInAll': 'assignIn',
|
|
'assignInAllWith': 'assignInWith',
|
|
'curryN': 'curry',
|
|
'curryRightN': 'curryRight',
|
|
'defaultsAll': 'defaults',
|
|
'defaultsDeepAll': 'defaultsDeep',
|
|
'findFrom': 'find',
|
|
'findIndexFrom': 'findIndex',
|
|
'findLastFrom': 'findLast',
|
|
'findLastIndexFrom': 'findLastIndex',
|
|
'getOr': 'get',
|
|
'includesFrom': 'includes',
|
|
'indexOfFrom': 'indexOf',
|
|
'invokeArgs': 'invoke',
|
|
'invokeArgsMap': 'invokeMap',
|
|
'lastIndexOfFrom': 'lastIndexOf',
|
|
'mergeAll': 'merge',
|
|
'mergeAllWith': 'mergeWith',
|
|
'padChars': 'pad',
|
|
'padCharsEnd': 'padEnd',
|
|
'padCharsStart': 'padStart',
|
|
'propertyOf': 'get',
|
|
'rangeStep': 'range',
|
|
'rangeStepRight': 'rangeRight',
|
|
'restFrom': 'rest',
|
|
'spreadFrom': 'spread',
|
|
'trimChars': 'trim',
|
|
'trimCharsEnd': 'trimEnd',
|
|
'trimCharsStart': 'trimStart',
|
|
'zipAll': 'zip'
|
|
};
|
|
|
|
/** Used to track methods that skip fixing their arity. */
|
|
exports.skipFixed = {
|
|
'castArray': true,
|
|
'flow': true,
|
|
'flowRight': true,
|
|
'iteratee': true,
|
|
'mixin': true,
|
|
'rearg': true,
|
|
'runInContext': true
|
|
};
|
|
|
|
/** Used to track methods that skip rearranging arguments. */
|
|
exports.skipRearg = {
|
|
'add': true,
|
|
'assign': true,
|
|
'assignIn': true,
|
|
'bind': true,
|
|
'bindKey': true,
|
|
'concat': true,
|
|
'difference': true,
|
|
'divide': true,
|
|
'eq': true,
|
|
'gt': true,
|
|
'gte': true,
|
|
'isEqual': true,
|
|
'lt': true,
|
|
'lte': true,
|
|
'matchesProperty': true,
|
|
'merge': true,
|
|
'multiply': true,
|
|
'overArgs': true,
|
|
'partial': true,
|
|
'partialRight': true,
|
|
'propertyOf': true,
|
|
'random': true,
|
|
'range': true,
|
|
'rangeRight': true,
|
|
'subtract': true,
|
|
'zip': true,
|
|
'zipObject': true,
|
|
'zipObjectDeep': true
|
|
};
|