Преобразование кода из ES5 в ES6 и экспорт не работает должным образом - PullRequest
0 голосов
/ 30 мая 2018

Я получаю следующую ошибку при попытке преобразовать код GraphQL из ES5 в ES6:

_graphql2.default is not a constructor

Вот новый код ES6:

import GraphQLList from 'graphql'
import ConfigModel from '../../models/config'
import { configType as ConfigType } from '../types/config'

// Query
export default queryType = {
  type: new GraphQLList(ConfigType),
  description: "The configuration for the home 'page'",
  resolve: function () {
    const config = ConfigModel.find()
    if (!config) {
      throw new Error('Error')
    }
    return config
  }
}

Код ES5 выглядел так:

var GraphQLList = require('graphql').GraphQLList;
var ConfigModel = require('../../models/config');
var ConfigType = require('../types/config').configType;

// Query
exports.queryType = {
  type: new GraphQLList(ConfigType),
  description: 'The configuration for the home \'page\'',
  resolve: function () {
    const config = ConfigModel.find()
    if (!config) {
      throw new Error('Error')
    }
    return config
  }
}

Я предполагаю, что транспортер ожидает, что этот код будет классом, но он должен быть только литералом объекта, что я делаю неправильно?

1 Ответ

0 голосов
/ 30 мая 2018

Вы по существу преобразовали эту строку ES5:

var GraphQLList = require('graphql').GraphQLList;

К этому:

import GraphQLList from 'graphql'

Вы должны увидеть ошибку здесь.

В ES6code, GraphQLList будет объектом , содержащим все экспорты из этого модуля , включая один с именем GraphQLList.

Так что вы можете изменить свой код ES6 из этого:

new GraphQLList(ConfigType)

на это:

new GraphQLList.GraphQLList(ConfigType)

или, как упоминал комментатор, просто сделайте это:

import { GraphQLList } from 'graphql'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...