Избегайте lodash при импорте всей библиотеки и избегайте _ заставления загружать всю библиотеку - PullRequest
0 голосов
/ 08 февраля 2019

Мне нужно импортировать _ из библиотеки lodash, которая будет импортировать все классы из lodash.Есть ли какое-либо решение, чтобы избежать импорта этого '_', только импортируя необходимые библиотеки.

import _ from 'lodash';


import './style.css';
import _ from 'lodash';
import
{pick,head,uniqBy,map,partialRight as pr,omit} from 'lodash';

const baseProps = ['dc', 'effDate', 'expDate'];

const data = [{"dc":1,"effDate":"1/2/2019","expDate":"1/2/2019","rate":1,"minCharge":2},{"dc":1,"effDate":"1/2/2019","expDate":"1/2/2019","rate":2,"minCharge":6},{"dc":1,"effDate":"1/2/2019","expDate":"1/2/2019","rate":4,"minCharge":7}];

const result =_(data).groupBy('effDate')
  .map(g => ({
    ...pick(head(g), baseProps),
    rateCharge: uniqBy(map(g, pr(omit, baseProps)), 'rate')  
  })).value();

console.log(result)

Actual & Expected Output
[
  {
    "dc": 1,
    "effDate": "1/2/2019",
    "expDate": "1/2/2019",
    "rateCharge": [
      {
        "rate": 1,
        "minCharge": 2
      },
      {
        "rate": 2,
        "minCharge": 6
      },
      {
        "rate": 4,
        "minCharge": 7
      }
    ]
  }
];

Мой стандарт кодирования организации не позволяет импортировать "_" из 'loadash', потому что он импортируетвсю библиотеку. Поскольку я работаю в Typescritp Angular, я не могу найти альтернативное решение.

1 Ответ

0 голосов
/ 08 февраля 2019

Просто удалите

import _ from 'lodash';

и измените эту строку:

import {pick,head,uniqBy,map,partialRight as pr,omit} from 'lodash';

на эту:

import {pick,head,uniqBy,map,partialRight as pr,omit, groupBy} from 'lodash';

также измените эту строку:

const result =_(data).groupBy('effDate’)

На это:

const result =data.groupBy('effDate’)

это должно работать.

...