Skip to content

Instantly share code, notes, and snippets.

http://www.uelectric.com/__media__/js/netsoltrademark.php?d=www.pinterest.com%2Fhongnhungblog%2F
http://www.generalhydrocarbonsholdingsllc.net/__media__/js/netsoltrademark.php?d=vietlike.vn%2Fhongnhungblog%2F
http://neanderthals.info/__media__/js/netsoltrademark.php?d=vimeo.com%2Fhongnhungblog
http://nutrendsxpo.us/__media__/js/netsoltrademark.php?d=soundcloud.com%2Fhongnhungblog
http://ivybrom.com/__media__/js/netsoltrademark.php?d=vietlike.vn%2Fhongnhungblog%2F
http://www.teachingengine.net/__media__/js/netsoltrademark.php?d=www.dailymotion.com%2Fhongnhungblog
http://neeva.com/__media__/js/netsoltrademark.php?d=vimeo.com%2Fhongnhungblog
http://www.e-bidhouse.com/__media__/js/netsoltrademark.php?d=vimeo.com%2Fhongnhungblog
http://www.rampage-sa.net/__media__/js/netsoltrademark.php?d=www.apsense.com%2Fuser%2Fhongnhungblog
http://insideencore.com/__media__/js/netsoltrademark.php?d=www.pinterest.com%2Fhongnhungblog%2F
@SachaG
SachaG / reducer.js
Created March 25, 2017 05:49
Apollo Query Reducer
const CommentsPageWithData = graphql(CommentsPageQuery, {
props({ data }) {
// ...
},
options({ params }) {
return {
reducer: (previousResults, action, variables) => {
let newResults = previousResults;
@SachaG
SachaG / gist:374e2038b224845a7d56cfce7967c52e
Created March 24, 2017 01:27
Vulcan Features Packages
# see http://docs.vulcanjs.org/packages
############ Core Packages ############
vulcan:core # core components and wrappers
vulcan:forms # auto-generated forms
vulcan:routing # routing and server-side rendering
vulcan:users # user management and permissions

Title ideas

The super powers of your own toolkit based on Apollo tools

Talk abstract

Apollo tools for React & Node environment give you ability to powerful create apps powered with a GraphQL data layer. In creating your own re-usable toolkit on top of these tools, it allows you to build great products even more simply.

Context

State of the art

TypeError: Cannot set property '/Users/sachagreif/Dev/Telescope/node_modules/react-apollo/package.json' of undefined
at Resolver._resolvePkgJsonMain (/tools/isobuild/resolver.js:320:9)
at Resolver._resolve (/tools/isobuild/resolver.js:123:25)
at /tools/isobuild/resolver.js:75:19
at Entry._reallyRecompute (/Users/sachagreif/.meteor/packages/meteor-tool/.1.4.2_3.1rd9djy++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/optimism/lib/entry.js:215:26)
at Entry._recomputeIfDirty (/Users/sachagreif/.meteor/packages/meteor-tool/.1.4.2_3.1rd9djy++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/optimism/lib/entry.js:179:17)
at Entry.recompute (/Users/sachagreif/.meteor/packages/meteor-tool/.1.4.2_3.1rd9djy++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/optimism/lib/entry.js:46:20)
at Resolver.optimistic [as resolve] (/Users/sachagreif/.meteor/packages/meteor-tool/.1.4.2_3.1rd9djy++os.osx
// wrapper
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
export default function withMutation(name) {
return graphql(gql`
mutation ${name}($vars: JSON) {
${name}(vars: $vars)
}
// wrapper
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
export default function withMutation({name, args}) {
let mutation;
if (args) {
@SachaG
SachaG / nova-schema.js
Created December 23, 2016 03:53
Nova schema
const MoviesSchema = {
name: {
type: String,
editableBy: ['members'], // editable by regular users
},
year: {
type: String,
editableBy: ['admins'], // only editable by admins
},
};
@SachaG
SachaG / smartform.jsx
Last active March 15, 2017 23:43
Nova Gist 2
import SmartForm from "meteor/nova:forms";
import Movies from './movies.js';
import gql from 'graphql-tag';
export const moviesItemFragment = gql`
fragment moviesItemFragment on Movie {
_id
name
year
}
@SachaG
SachaG / withList.jsx
Last active June 8, 2017 15:15
Nova Gists
import {withList} from 'meteor/nova:core';
import gql from 'graphql-tag';
import Movies from 'movies.js';
const MyComponent = ({loading, results}) => <div>
{ loading ? <p>Loading…</p> : results.map(movie => <p>{movie.title} ({movie.year})</p>) }
</div>
const options = {
collection: Movies,