graphbase-core
v1.0.6
Published
Graphbase-core is a library which generates backend resolvers based on GraphQL schema provided by the user.
Downloads
3
Maintainers
Readme
graphbase-core
About
Graphbase-core is a library which generates backend resolvers based on GraphQL schema provided by the user.
If you would like to know how you can use it, please check this README file.
Table of contents
Installation
To install graphbase-core library you can run:
npm i --save-dev graphbase-core
Usage
The only thing that the user should create and provide to the graphbase-core library is the input schema file.
Example Schema
The example schema could look like this:
directive @model on OBJECT
type Person @model {
firstName: String!
lastName: String!
age: Int!
height: Float
hasDrivingLicenses: Boolean
interests: [Interests!]!
}
type Interests @model {
name: String!
description: String
}
type Query {
version: String
}
type Mutation {
version: String
}
schema {
query: Query
mutation: Mutation
}
Please remember that schema must contain schema type with any Query and Mutation type.
How to generate backend
For all types marked with directive @models graphbase-core library will generate:
- output schema with all required types, inputs, queries and mutations
- typescript models
- CRUD resolvers
- routing file
Default command:
npx graphbase-core
If you want to specify input schema path you can run:
npx graphbase-core --inputSchema pathToInputSchema
After running one of these commands graphbase-core library will generate all models and resolvers required to run your backend!
How to start generated backend
Before running your backend you should configure your typescript build and provide database URL in .env file.
To build your project properly you should add two lines to your tsconfig.json:
"compilerOptions": {
"rootDir": "./src",
"outDir": "./lib"
}
The last configuration step is creating a .env file with a connection link to your mongoDb database. Example .env file:
DATABASE_URL=mongodb+srv://userName:[email protected]/collection-name?retryWrites=true&w=majority
If you follow all configuration steps you can add to your package.json script like this below and run it:
"scripts": {
"start": "tsc --build tsconfig.json && dotenv -e .env stucco"
}
After that,the backend is running on port 8080 and you can execute all CRUD operations to your database!
Support
If you have any problem during using graphbase-core library please create an issue or contact me directly:
License
MIT 🕊
Contribute
- Fork this repo
- Create your feature branch: git checkout -b feature-name
- Commit your changes: git commit -am 'Add some feature'
- Push to the branch: git push origin my-new-feature
- Submit a pull request