Skip to content

Instantly share code, notes, and snippets.

@that-coder
Created December 16, 2018 12:48
Show Gist options
  • Save that-coder/0df740932d6f6cdc38e716ab1d4e44ea to your computer and use it in GitHub Desktop.
Save that-coder/0df740932d6f6cdc38e716ab1d4e44ea to your computer and use it in GitHub Desktop.
'use strict';
const aws_exports = require('./aws-export').default;
// CONFIG
const AppSync = {
"graphqlEndpoint": aws_exports.graphqlEndpoint,
"region": aws_exports.region,
"authenticationType": aws_exports.authenticationType,
"apiKey": aws_exports.apiKey,
};
const ApiId = aws_exports.ApiId;
// POLYFILLS
global.WebSocket = require('ws');
global.window = global.window || {
setTimeout: setTimeout,
clearTimeout: clearTimeout,
WebSocket: global.WebSocket,
ArrayBuffer: global.ArrayBuffer,
addEventListener: function () { },
navigator: { onLine: true }
};
global.localStorage = {
store: {},
getItem: function (key) {
return this.store[key]
},
setItem: function (key, value) {
this.store[key] = value
},
removeItem: function (key) {
delete this.store[key]
}
};
require('es6-promise').polyfill();
require('isomorphic-fetch');
// Require AppSync module
const AUTH_TYPE = require('aws-appsync/lib/link/auth-link').AUTH_TYPE;
const AWSAppSyncClient = require('aws-appsync').default;
// INIT
// Set up AppSync client
const client = new AWSAppSyncClient({
url: AppSync.graphqlEndpoint,
region: AppSync.region,
auth: {
type: AUTH_TYPE.API_KEY,
apiKey: AppSync.apiKey
}
});
// GRAPHQL
const gql = require('graphql-tag');
const Subscription = gql(`
subscription onCreatePost {
onCreatePost {
author
id
url
content
title
}
}`);
// APP CODE
client.hydrated().then(function (client) {
// Now run a query
// Now subscribe to results
const observable = client.subscribe({ query: Subscription});
const realtimeResults = function realtimeResults(data) {
console.log('(Realtime Subscription) Subscribing posts -----------> ', data);
};
observable.subscribe({
next: realtimeResults,
complete: console.log,
error: console.log,
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment