39 lines
966 B
TypeScript
39 lines
966 B
TypeScript
const fetch = require('node-fetch');
|
|
const fs = require('fs');
|
|
|
|
fetch(`http://localhost:4001`, {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({
|
|
variables: {},
|
|
query: `
|
|
{
|
|
__schema {
|
|
types {
|
|
kind
|
|
name
|
|
possibleTypes {
|
|
name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`,
|
|
}),
|
|
})
|
|
.then(result => result.json())
|
|
.then(result => {
|
|
// here we're filtering out any type information unrelated to unions or interfaces
|
|
const filteredData = result.data.__schema.types.filter(
|
|
type => type.possibleTypes !== null,
|
|
);
|
|
result.data.__schema.types = filteredData;
|
|
fs.writeFile('./fragmentTypes.json', JSON.stringify(result.data), err => {
|
|
if (err) {
|
|
console.error('Error writing fragmentTypes file', err);
|
|
} else {
|
|
console.log('Fragment types successfully extracted!');
|
|
}
|
|
});
|
|
});
|