С сайта https://lodash.com/:
// Load a single method for smaller builds with browserify/rollup/webpack.
var chunk = require('lodash/chunk');
var extend = require('lodash/fp/extend');
Это хорошо работает с большинством методов: each
, map
, isArray
и т. д. Единственный метод, который я не могу заставить работать, это lodash/chain
.
Текущий код, в который я импортирую всю библиотеку lodash, выглядит примерно так:
_.chain(items)
.filter(...)
.groupBy(...)
.map(...)
.concat(...)
.value();
Каким будет правильный способ создания правильного цепочечного объекта, который не содержит всех методов, включенных в сборку lodash? Метод chain
создает объект-оболочку lodash и возвращает его. Я мог бы создать свой собственный цепной метод, подобный этому
var lodash = require('lodash/wrapperLodash');
var filter = require('lodash/filter');
var map = require('lodash/map');
function chain(value) {
var result = lodash(value);
result.__chain__ = true;
result.filter = filter
result.map = map;
return result;
}
module.exports = chain;
Теперь вызов chain
сможет выполнить filter
и map
. К сожалению, результат из chain().filter
не будет иметь методов, которые я прикрепил в исходной цепочке. Каков правильный способ создания пользовательского цепного объекта lodash?