You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
982 B
39 lines
982 B
|
|
const fetch = require('node-fetch'); |
|
const fs = require('fs'); |
|
|
|
fetch(`http://localhost:4000/graphql`, { |
|
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.writeFileSync('./src/fragmentTypes.json', JSON.stringify(result.data), err => { |
|
if (err) { |
|
console.error('Error writing fragmentTypes file', err); |
|
} else { |
|
console.log('Fragment types successfully extracted!'); |
|
} |
|
}); |
|
}); |