FoodExplorer Graph Client (JS)
Quick Overview
This is a cross-platform (node.js, browser) GraphQL-Client for FoodExplorer.
Setup
Installation
If you haven't configured npm for private foodexplorer access, please login to your NPM user account with
npm login
# You will be prompted to provide username & password
Then install the package
npm install --save @foodexplorer/graph-client
Query structure
// @foodexplorer/graph-client/lib/{platform}/{queryType}/{object...}/{method}
// Examples
import { create as createOrderSend } from '@foodexplorer/graph-client/lib/sap/mutation/order-send/create';
import { findUpdated as findUpdatedCustomers } from '@foodexplorer/graph-client/lib/fecommerce/query/customers/find-updated';
Usage
import { GraphClient } from '@foodexplorer/graph-client';
import { find as findCases } from '@foodexplorer/graph-client/lib/salesforce/query/cases/find';
const client = new GraphClient('key', 'secret');
// to use Staging environment:
client.graphUrl = 'stage';
// to use Production environment (https://graph.foodexplorer.io):
client.graphUrl = 'prod';
// to use a custom environment:
client.graphUrl = 'http://localhost:8000';
// All queries and mutations can be executed like this
async function myHandler () {
try {
const response = await findCases(client, {
from: '201801010000',
until: '201801020000'
});
console.log(response.data);
}
catch (e) {
console.log(`Error`);
console.log(e);
}
}
myHandler();
Development
Watch task for local development
npm start
Fetch task for graphql schema fetch (using localhost connection settings) (see helpers/fragment-types.js)
npm run fetch-schema
Build task for graphql type generation and npm publish preparation
npm run build
If you would like to publish a new version, please increase version number in package.json and run
npm publish
Features
- typescript: transpiling from .ts to ES5
- live compiling: as well as live reload