A lib with some helper functions to make uploading a schema to FaunaDB easier.
It allows you to combine multiple SDL strings and use extend type
.
const { importSchema } = require('faunadb-graphql-schema-loader')
const secret = process.env.FAUNADB_ADMIN_KEY
const schema = `
type Budget {
name: String!
owner: User! @relation
}
type User {
budget: Budget! @relation
name: String!
}
`
importSchema(secret, schema).then((res) => console.log(res))
importSchema = (
faunadbKey: string,
schema: string,
mode: 'replace' | 'merge' | 'override' = 'replace',
endpoint: string = 'https://graphql.fauna.com'
) => Promise<string>
Takes a schema string and uploads that to the database with the provided Admin Key.
Parameters
faunadbKey
An Admin key for your databaseschema
An SDL schema stringmode
Import mode. Defaults tomerge
.
Returns a Promise for the response.body
from the http request.
See basic example
makeSchema = (typeDefs: string[]) => string
Takes a list of SDL schema strings and combines them. This allows for using extends
in your type definitions.
Parameters
typeDefs
Array of SDL schema strings
Returns A single SDL schema string.
NOTE: Since
0.2.0
, theextend
keyword is not necessary for theQuery
type when used in multiple schemas. Normally, multiple types would cause an error. However,makeSchema
will automatically addextend
if multiple instances oftype Query
are found. This is useful for creating reusable schema chunks without having to worry about which schema usestype Query
while all others areextend type Query
.
Any feedback is appreciated, and if folks see ways to make this into a useful and viable package, I will work to make it so! Please fill out a Github Issue if you see anything.
Thanks!
The MIT License (MIT)