Итак, я работаю с Graphql и сшиваю схему, и мой индексный файл выглядит ужасно длинным. Для небольшого примера:
import userSchema from "./user";
import hobbiesSchema from "./hobbies";
import jobSchema from "./job";
import petSchema from "./pet";
const linkSchema = gql`
scalar Date
type Query {
_: Boolean
}
type Mutation {
_: Boolean
}
type Subscription {
_: Boolean
}
`;
export default [
linkSchema,
userSchema,
petSchema,
jobSchema,
hobbiesSchema,
];
Это становится возмутительно длинным, если я планирую добавить еще около 20 схем! Мне нужен способ добавить все файлы в каталог, а затем иметь возможность их экспортировать. Итак, я видел много случаев, когда один и тот же ответ делал это:
const context = require.context('.', true, /^\./(?!index\.js).*\.js$/, 'sync');
let schemas = {};
context.keys().forEach(module => {
schemas[module] = context(module);
});
Итак, я попытался поместить это в массив и экспортировать его как массив всех моих схем, подталкивая каждый модуль в массиве и экспортируя его внизу. Я думал, что это сработает, но это не так, и мне интересно, почему? Я получаю сообщение об ошибке.
Мои схемы определяются и экспортируются в виде
export default gql`
//schema stuff
`
Я попытался сделать то же самое отдельно для преобразователей, потому что файл индекса выглядит почти точно так же, как файл индекса схемы, и я получаю сообщение об ошибке «[Ошибка:« по умолчанию », определенная в преобразователях, но не в схеме]»





По-видимому, все, что мне нужно было сделать, это добавить .default в контекст (модуль)!
const context = require.context('.', true, /^\./(?!index\.js).*\.js$/, 'sync');
let resolvers = [];
context.keys().forEach(module => {
resolvers.push(context(module).default)
});
export default resolvers