diff --git a/.vscode/settings.json b/.vscode/settings.json
index 68994d6ebf..80418e1e2a 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -10,7 +10,7 @@
"**/.DS_Store": true,
// "node_modules": true,
"test-lib": true,
- "lib": true,
+ "lib": false,
"coverage": true
}
}
diff --git a/Changelog.md b/Changelog.md
index 17162b36af..e153b3e344 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -2,6 +2,10 @@
Expect active development and potentially significant breaking changes in the `0.x` track. We'll try to be diligent about releasing a `1.0` version in a timely fashion (ideally within 1 or 2 months), so that we can take advantage of SemVer to signify breaking changes from that point on.
+### v0.3.10
+
+Bug: fixed bug where SSR would fail due to later updates. This should also prevent unmounted components from throwing errors.
+
### v0.3.9
Feature: provide add `watchQuery` to components via `connect`
diff --git a/global.d.ts b/global.d.ts
new file mode 100644
index 0000000000..708502bc22
--- /dev/null
+++ b/global.d.ts
@@ -0,0 +1,12 @@
+/*
+ LODASH
+*/
+declare module 'lodash.isobject' {
+ import main = require('~lodash/index');
+ export = main.isObject;
+}
+
+declare module 'lodash.isequal' {
+ import main = require('~lodash/index');
+ export = main.isEqual;
+}
diff --git a/package.json b/package.json
index 7c848d33fe..b8b78716dc 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "react-apollo",
- "version": "0.3.9",
+ "version": "0.3.10",
"description": "React data container for Apollo Client",
"main": "index.js",
"scripts": {
@@ -47,6 +47,7 @@
"enzyme": "^2.2.0",
"graphql": "^0.5.0",
"gzip-size": "^3.0.0",
+ "isomorphic-fetch": "^2.2.1",
"istanbul": "^0.4.2",
"jsdom": "^8.3.1",
"minimist": "^1.2.0",
@@ -54,7 +55,7 @@
"pretty-bytes": "^3.0.1",
"react": "^15.0.1",
"react-addons-test-utils": "^15.0.1",
- "react-dom": "^15.0.0",
+ "react-dom": "^15.1.0",
"redux": "^3.4.0",
"remap-istanbul": "^0.5.1",
"source-map-support": "^0.4.0",
diff --git a/src/ApolloProvider.tsx b/src/ApolloProvider.tsx
index c42dad4cfd..06a7f78f7f 100644
--- a/src/ApolloProvider.tsx
+++ b/src/ApolloProvider.tsx
@@ -1,4 +1,3 @@
-///
{
- /**
- * Find every node in the render tree that matches the provided selector.
- * @param selector The selector to match.
- */
- find ;
-
- /**
- * Forces a re-render. Useful to run before checking the render output if something external may be updating
- * the state of the component somewhere.
- * Returns itself.
- *
- * NOTE: can only be called on a wrapper instance that is also the root instance.
- */
- update(): this;
-
- /**
- * Returns an html-like string of the wrapper for debugging purposes. Useful to print out to the console when
- * tests are not passing when you expect them to.
- */
- debug(): String;
-
- /**
- * Returns the type of the current node of this wrapper. If it's a composite component, this will be the
- * component constructor. If it's native DOM node, it will be a string of the tag name.
- *
- * Note: can only be called on a wrapper of a single node.
- */
- type(): String | Function;
-
- /**
- * Iterates through each node of the current wrapper and executes the provided function with a wrapper around
- * the corresponding node passed in as the first argument.
- *
- * Returns itself.
- * @param fn A callback to be run for every node in the collection. Should expect a ShallowWrapper as the first
- * argument, and will be run with a context of the original instance.
- */
- forEach(fn: (wrapper: this) => any): this;
-
- /**
- * Maps the current array of nodes to another array. Each node is passed in as a ShallowWrapper to the map
- * function.
- * Returns an array of the returned values from the mapping function..
- * @param fn A mapping function to be run for every node in the collection, the results of which will be mapped
- * to the returned array. Should expect a ShallowWrapper as the first argument, and will be run
- * with a context of the original instance.
- */
- map extends CommonWrapper {
- shallow(): ShallowWrapper ;
- render(): CheerioWrapper ;
-
- /**
- * Find every node in the render tree that matches the provided selector.
- * @param selector The selector to match.
- */
- find extends CommonWrapper {
-
- }
-
- export interface CheerioWrapper extends CommonWrapper {
-
- }
-
- /**
- * Shallow rendering is useful to constrain yourself to testing a component as a unit, and to ensure that
- * your tests aren't indirectly asserting on behavior of child components.
- * @param node
- * @param [options]
- */
- export function shallow (node: ReactElement , options?: any): ShallowWrapper ;
-
- /**
- * Mounts and renders a react component into the document and provides a testing wrapper around it.
- * @param node
- * @param [options]
- */
- export function mount (node: ReactElement , options?: any): ReactWrapper ;
-
- /**
- * Render react components to static HTML and analyze the resulting HTML structure.
- * @param node
- * @param [options]
- */
- export function render (node: ReactElement , options?: any): CheerioWrapper ;
-
- export function describeWithDOM(description: String, fn: Function): void;
-
- export function spyLifecycle(component: typeof Component): void;
-}
\ No newline at end of file
diff --git a/typings/main/ambient/graphql/index.d.ts b/typings/main/ambient/graphql/index.d.ts
deleted file mode 100644
index d700eacb70..0000000000
--- a/typings/main/ambient/graphql/index.d.ts
+++ /dev/null
@@ -1,939 +0,0 @@
-// Generated by typings
-// Source: https://raw.githubusercontent.com/nitintutlani/typed-graphql/38bdf66576693dfe808a34876295e989f9199115/graphql.d.ts
-declare module "graphql" {
-
-// graphql.js
-
- export function graphql(
- schema: GraphQLSchema,
- requestString: string,
- rootValue?: any,
- variableValues?: { [key: string]: any },
- operationName?: string
- ): Promise