@ch-aqwer

Как сделать import всех (*) если есть только один export default?

Добрый день! Скажите пожалуйста как сделать такую запись import * as api from './api';
если в файле api/ только один дефолтный экпорт, менять его нельзя. Просто нужен объект api

Нужно это для теста,
jest.spyOn(api, 'getRequest').mockImplementation(() => ({
...

в spyOn нужно передать объект и его метод, соответственно если просто делать дефолтный импорт ничего не работает.
Сейчас в api делаю два обычных экпорта, один из которых лишний ... это надо переписать.
Или как я могу еще получить этот объект ?
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
  • 1) Если у вас в './api' экспортируется функция, то как вариант можно сделать так:
    import yourFunc from './api';
    const api = {}
    api.yourFunc = yourFunc

    2) Еще возможен такой вариант, как вы описали
    import * as api from './api';
    тогда в api.default будет ваша функция
    но думаю этот вариант не подходит, так как ключ другой

    3) В './api'
    function yourFunc() {
    
    }
    const api = {}
    api.yourFunc = yourFunc;
    export default api;

    4) В './api'
    function yourFunc() {
    
    }
    export default { yourFunc  }

    В файле, где тест:
    import * as api from './api'
    сonsole.log(api.default) выведит ваш объект с методом yourFunc

    5) Если из './api' экспортируется объект, то Владлен Хеллсайт уже ответил на ваш вопрос
    Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Busfor Москва
от 130 000 до 180 000 руб.
LPTREND Санкт-Петербург
До 150 000 руб.
15 июля 2018, в 15:03
18000 руб./за проект
15 июля 2018, в 14:20
5000 руб./за проект