File | Date | Author | Commit |
---|---|---|---|
.github | 2023-08-22 |
![]() |
[0475a5] removed bump version step from publish workflow |
.vscode | 2023-07-26 |
![]() |
[170658] fix too many clients already error |
docker | 2023-04-17 |
![]() |
[c9dbf3] Package and build script fixes (#60) |
docs | 2023-07-21 |
![]() |
[4dc0bd] rename GraphWeaver to Graphweaver |
src | 2023-08-22 |
![]() |
[61c96d] new release 0.2.4 |
.gitignore | 2023-03-02 |
![]() |
[114ccb] Update context to handle filesystem token auth |
CODE_OF_CONDUCT.md | 2023-08-02 |
![]() |
[5cc925] Create CODE_OF_CONDUCT.md |
CONTRIBUTING.md | 2023-08-03 |
![]() |
[096930] Create CONTRIBUTING.md |
LICENSE.md | 2023-05-26 |
![]() |
[e33683] add link and badge |
README.md | 2023-08-22 |
![]() |
[a09e78] updated ReadMe on how to release new packages |
SECURITY.md | 2023-08-02 |
![]() |
[159a4c] Create SECURITY.md |
graphweaver.code-workspace | 2023-07-21 |
![]() |
[9a2483] rename apollo to server for clarity |
Welcome to Graphweaver! Turn multiple data sources into a single GraphQL API.
We consistently find that everyone has lots of sources of truth. You know, CRM holding customer data, accounting systems handling invoices, and more scattered across different SaaS platforms and databases? It's a real pain to sync it all up!
In the past we used to copy data from everywhere to the DB, but that always breaks at some point.
Well, after years of grappling with this issue, we wanted a way to easily build a single GraphQL API in front of all those sources. An API that allows you to execute queries that even span across datasources (give me DB records where customer in CRM name is "Bob"), and also allows you to administer your data all from one place.
That's why we built Graphweaver. We've been using it on our projects for about a year now and think you'll love it too!
📝 Code-first GraphQL API: Save time and code efficiently with our code-first approach.
🚀 Built for Node in Typescript: The power of Typescript combined with the flexibility of Node.js.
🔗 Connect to Multiple Datasources: Seamlessly integrate Postgres, MySql, Sqlite, REST, and more.
🎯 Instant GraphQL API: Get your API up and running quickly with automatic queries and mutations.
🔄 One Command Import: Easily import an existing database with a simple command-line tool.
Comprehensive documentation and usage examples can be found on our Docs Site. It covers installation instructions, detailed API documentation, and guides to help you get started with Graphweaver.
Before we start the installer make sure you are running:
>18.*
>8.*
With those two installed you can create a new project with the Graphweaver CLI, by running:
npx graphweaver@latest init
The prompts will ask you which backends to install for this app.
First you will be asked to name the project:
? What would your like to call your new project?
test-project
Next, you will be asked to choose your data source. Select your data source and press enter.
? Which Graphweaver backends will you need?
◯ MikroORM - PostgreSQL Backend
◯ MikroORM - MySQL Backend
◯ REST Backend
Finally, you are asked to confirm that the project is going to be created.
? OK, we're ready- I'm going to create a new app in "/Users/test-project" - is that OK?
Yes
All Done!
Make sure you npm install / yarn install / pnpm install, then run the start script to get started
❯
Once the new app has been created cd test-project
. Then run pnpm install
to install all the required dependencies.
Once installed, you can start the development server by running pnpm start
.
This will launch the Graphweaver server and Admin UI at http://localhost:9000:
Very empty! We need to fill the API with data! To do that, we need to connect to a data source and create some entities.
There are two options to connect a data source:
We welcome contributions from the community! If you're interested in improving Graphweaver, please refer to our Contribution Guidelines for detailed instructions.
Follow these steps to release new packages:
Begin by creating a new branch. Base it on the latest main branch.
Evaluate changes and adhere to Semantic Versioning (semver). Run the relevant command for major
, minor
or patch
changes.
$ pnpm version:bump patch
Now the versions are bumped, but packages that depend on each other are still referencing the old version. Run this command
to update all the references across the monorepo.
$ pnpm relink:deps
Commit the changes. Create a pull request targeting the main branch.
Await PR approval, then merge it into main to integrate new versions.
After merging, trigger the "Publish to NPM" workflow in the Actions tab.
Monitor the workflow progress in GitHub Actions. Confirm successful publication in the npm registry.
You're done!
Distributed under the MIT License. See LICENSE for more information.
Made with ❤️ by Exogee Technology