├── demo
├── dev.sh
├── favicon.ico
├── images
│ ├── Joey.jpeg
│ ├── Logo.png
│ ├── Conor.jpeg
│ ├── JasonC.jpeg
│ ├── JasonL.jpeg
│ ├── npm-logo.png
│ ├── GitHubLogo.png
│ ├── LinkedInLogo.png
│ ├── hacheQL-image.png
│ ├── bestofbothworld.png
│ └── graphql-versus-rest.png
├── Dockerfile-postgres.dockerfile
├── .gitignore
├── Dockerfile-dev.dockerfile
├── client
│ ├── index.jsx
│ ├── index.html
│ ├── App.jsx
│ ├── Containers
│ │ ├── Headers.jsx
│ │ ├── Info.jsx
│ │ ├── Team.jsx
│ │ └── Demo.jsx
│ ├── Components
│ │ ├── Scrollview.jsx
│ │ ├── Graph.jsx
│ │ ├── Dashboard.jsx
│ │ └── TeamMember.jsx
│ └── styles.css
├── Dockerfile
├── .ebextensions
│ └── 00_postgres_client.config
├── .eslintrc.cjs
├── docker-compose-dev-hot.yml
├── server
│ ├── models
│ │ └── starWarsModel.js
│ ├── server.js
│ ├── graphql
│ │ └── types.js
│ └── mydb.sql
├── package.json
├── webpack.config.js
└── favicon.svg
├── library
├── .npmignore
├── tests
│ ├── HTTPStatusCodes.js
│ ├── mockReqRes.js
│ ├── mockFunctions.js
│ ├── fetch.test.js
│ └── middleware.test.js
├── .eslintrc.cjs
├── package.json
├── hacheql.js
├── README.md
└── hacheql-server.js
├── pull-request.png
├── LICENSE
├── .gitignore
├── CONTRIBUTING.md
├── README.md
└── DOCUMENTATION.md
/demo/dev.sh:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 |
3 | docker-compose -f ./docker-compose-dev-hot.yml up
4 |
--------------------------------------------------------------------------------
/demo/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/favicon.ico
--------------------------------------------------------------------------------
/library/.npmignore:
--------------------------------------------------------------------------------
1 | # .npmignore
2 | coverage
3 | node_modules
4 | tests
5 | .eslintrc.cjs
--------------------------------------------------------------------------------
/pull-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/pull-request.png
--------------------------------------------------------------------------------
/demo/images/Joey.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/Joey.jpeg
--------------------------------------------------------------------------------
/demo/images/Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/Logo.png
--------------------------------------------------------------------------------
/demo/images/Conor.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/Conor.jpeg
--------------------------------------------------------------------------------
/demo/images/JasonC.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/JasonC.jpeg
--------------------------------------------------------------------------------
/demo/images/JasonL.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/JasonL.jpeg
--------------------------------------------------------------------------------
/demo/images/npm-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/npm-logo.png
--------------------------------------------------------------------------------
/demo/images/GitHubLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/GitHubLogo.png
--------------------------------------------------------------------------------
/demo/images/LinkedInLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/LinkedInLogo.png
--------------------------------------------------------------------------------
/demo/images/hacheQL-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/hacheQL-image.png
--------------------------------------------------------------------------------
/demo/Dockerfile-postgres.dockerfile:
--------------------------------------------------------------------------------
1 | FROM postgres:14.2
2 | COPY ./server/mydb.sql /docker-entrypoint-initdb.d/
3 |
--------------------------------------------------------------------------------
/demo/images/bestofbothworld.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/bestofbothworld.png
--------------------------------------------------------------------------------
/demo/images/graphql-versus-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/hacheQL/HEAD/demo/images/graphql-versus-rest.png
--------------------------------------------------------------------------------
/demo/.gitignore:
--------------------------------------------------------------------------------
1 | .elasticbeanstalk
2 | # Elastic Beanstalk Files
3 | .elasticbeanstalk/*
4 | !.elasticbeanstalk/*.cfg.yml
5 | !.elasticbeanstalk/*.global.yml
6 |
--------------------------------------------------------------------------------
/demo/Dockerfile-dev.dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:16.14.2
2 | RUN npm install -g webpack
3 | WORKDIR /usr/src/app
4 | COPY package*.json /usr/src/app
5 | RUN npm install
6 | EXPOSE 8080
7 |
--------------------------------------------------------------------------------
/demo/client/index.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { render } from 'react-dom';
3 | import App from './App';
4 | import './styles.css'
5 |
6 |
7 | render(
8 |
{queryResult}
16 | GraphQL provides an alternative to traditional RESTful architecture, emphasizing customization over optimization. This tradeoff highlights one of the prevalent shortcomings of GraphQL architecture: its rocky relationship with caching.
17 |HacheQL acts like a courier between your client and server. On the client, HacheQL takes a GraphQL request and sends it to the server in a way that makes the response HTTP cacheable. Subsequent requests from the client for the same data can be fulfilled from the browser or proxy caches.
22 | 23 |With HacheQL you can have "the best of both worlds", allowing you to make use of the native caching mechanism over HTTP that is accessible in traditional RESTful architecture.
27 |