Webpack Async Loader с внешним вызовом
Я пытаюсь написать свой первый Webpack Loader. Идея заключается в вызове graphql-to-json, чтобы я мог преобразовать свою схему graphql в JSON, который Response-Relay ожидает в качестве входных данных.
Я читаю документы, но никогда не получаю их для вывода файла. Он даже не попадает в console.log. Что я делаю неправильно?
(Я также чувствую, что есть лучший способ справиться с этим вне загрузчиков веб-пакетов, если таковой существует)
const graphqlToJson = require('graphql-to-json')
module.exports = function(sourceContent){
// this.cacheable();
var callback = this.async();
const fullPath = this.resourcePath;
const outputPath = `${fullPath.replace(/\.[^/.]+$/, "")}.json`
graphqlToJson({
input: this.resourcePath,
output: outputPath
}, function(schema) {
console.log('=== js schema output: ', schema)
callback(null, schema)
})
};
Вот вызов загрузчика:
module: {
rules: [{
test: /\api\.js$/,
use: {
loader: path.resolve(__dirname, 'graphql-to-json-loader.js')
}
}]
}