reactive-graphql
Advanced tools
Comparing version 1.1.0 to 2.0.0
@@ -1,5 +0,1 @@ | ||
import "rxjs/add/observable/interval"; | ||
import "rxjs/add/observable/of"; | ||
import "rxjs/add/operator/combineLatest"; | ||
import "rxjs/add/operator/map"; | ||
import "rxjs/add/operator/take"; | ||
export {}; |
@@ -10,8 +10,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var Observable_1 = require("rxjs/Observable"); | ||
require("rxjs/add/observable/interval"); | ||
require("rxjs/add/observable/of"); | ||
require("rxjs/add/operator/combineLatest"); | ||
require("rxjs/add/operator/map"); | ||
require("rxjs/add/operator/take"); | ||
var rxjs_1 = require("rxjs"); | ||
var operators_1 = require("rxjs/operators"); | ||
var jest_1 = require("rxjs-marbles/jest"); | ||
@@ -33,9 +29,7 @@ var graphql_tools_1 = require("graphql-tools"); | ||
// When the filter is a value | ||
return ctx.query.map(function (els) { return els.filter(function (el) { return el.name === name; }); }); | ||
return ctx.query.pipe(operators_1.map(function (els) { return els.filter(function (el) { return el.name === name; }); })); | ||
} | ||
else { | ||
// when the filter is an observable | ||
return ctx.query | ||
.combineLatest(name, function (res, name) { return [res, name]; }) | ||
.map(function (els) { return els[0].filter(function (el) { return el.name === els[1]; }); }); | ||
return ctx.query.pipe(operators_1.combineLatest(name, function (res, name) { return [res, name]; }), operators_1.map(function (els) { return els[0].filter(function (el) { return el.name === els[1]; }); })); | ||
} | ||
@@ -46,12 +40,12 @@ } | ||
createShuttle: function (_, args, ctx) { | ||
return ctx.mutation.map(function () { return ({ | ||
return ctx.mutation.pipe(operators_1.map(function () { return ({ | ||
name: args.name | ||
}); }); | ||
}); })); | ||
}, | ||
createShuttleList: function (_, args, ctx) { | ||
return ctx.mutation.map(function () { return [ | ||
return ctx.mutation.pipe(operators_1.map(function () { return [ | ||
{ name: "discovery" }, | ||
{ name: "challenger" }, | ||
{ name: args.name } | ||
]; }); | ||
]; })); | ||
} | ||
@@ -69,12 +63,12 @@ } | ||
fieldResolver: function () { | ||
return Observable_1.Observable.of("I am a field resolver"); | ||
return rxjs_1.of("I am a field resolver"); | ||
}, | ||
giveMeTheParentFieldResolver: function (parent) { | ||
return Observable_1.Observable.of(JSON.stringify(parent)); | ||
return rxjs_1.of(JSON.stringify(parent)); | ||
}, | ||
giveMeTheArgsFieldResolver: function (_parent, args) { | ||
return Observable_1.Observable.of(JSON.stringify(args)); | ||
return rxjs_1.of(JSON.stringify(args)); | ||
}, | ||
giveMeTheContextFieldResolver: function (_parent, _args, context) { | ||
return Observable_1.Observable.of(context.newValue); | ||
return rxjs_1.of(context.newValue); | ||
} | ||
@@ -84,12 +78,12 @@ }, | ||
nodeFieldResolver: function () { | ||
return Observable_1.Observable.of({ value: "I am a node field resolver" }); | ||
return rxjs_1.of({ value: "I am a node field resolver" }); | ||
}, | ||
giveMeTheParentFieldResolver: function (parent) { | ||
return Observable_1.Observable.of({ value: JSON.stringify(parent) }); | ||
return rxjs_1.of({ value: JSON.stringify(parent) }); | ||
}, | ||
giveMeTheArgsFieldResolver: function (_parent, args) { | ||
return Observable_1.Observable.of({ value: JSON.stringify(args) }); | ||
return rxjs_1.of({ value: JSON.stringify(args) }); | ||
}, | ||
giveMeTheContextFieldResolver: function (_parent, _args, context) { | ||
return Observable_1.Observable.of({ value: context.newValue }); | ||
return rxjs_1.of({ value: context.newValue }); | ||
} | ||
@@ -100,3 +94,3 @@ }, | ||
ctx.contextValue = " resolvers are great"; | ||
return Observable_1.Observable.of({ noFieldResolverValue: "nested" }); | ||
return rxjs_1.of({ noFieldResolverValue: "nested" }); | ||
} | ||
@@ -108,3 +102,3 @@ }, | ||
var contextValue = _b.contextValue; | ||
return Observable_1.Observable.of(noFieldResolverValue.toLocaleUpperCase() + contextValue); | ||
return rxjs_1.of(noFieldResolverValue.toLocaleUpperCase() + contextValue); | ||
} | ||
@@ -115,3 +109,3 @@ }, | ||
ctx.newValue = "ContextValue"; | ||
return Observable_1.Observable.of({ | ||
return rxjs_1.of({ | ||
noFieldResolver: "Yes" | ||
@@ -122,6 +116,6 @@ }); | ||
ctx.newValue = "NodeContextValue"; | ||
return Observable_1.Observable.of({ thisIsANodeFieldResolver: "Yes" }); | ||
return rxjs_1.of({ thisIsANodeFieldResolver: "Yes" }); | ||
}, | ||
nested: function () { | ||
return Observable_1.Observable.of({}); | ||
return rxjs_1.of({}); | ||
}, | ||
@@ -136,6 +130,3 @@ throwingResolver: function () { | ||
var itMarbles = function (title, test) { | ||
return it(title, jest_1.marbles(function (m) { | ||
m.bind(); | ||
test(m); | ||
})); | ||
return it(title, jest_1.marbles(test)); | ||
}; | ||
@@ -147,3 +138,3 @@ describe("graphqlObservable", function () { | ||
var expectedData = [{ name: "discovery" }]; | ||
var dataSource = Observable_1.Observable.of(expectedData); | ||
var dataSource = rxjs_1.of(expectedData); | ||
var expected = m.cold("(a|)", { | ||
@@ -153,3 +144,3 @@ a: { data: { launched: expectedData } } | ||
var result = __1.default(query, schema, { query: dataSource }); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -159,7 +150,7 @@ itMarbles("filters by variable argument", function (m) { | ||
var expectedData = [{ name: "apollo11" }, { name: "challenger" }]; | ||
var dataSource = Observable_1.Observable.of(expectedData); | ||
var dataSource = rxjs_1.of(expectedData); | ||
var expected = m.cold("(a|)", { | ||
a: { data: { launched: [expectedData[0]] } } | ||
}); | ||
var nameFilter = Observable_1.Observable.of("apollo11"); | ||
var nameFilter = rxjs_1.of("apollo11"); | ||
var result = __1.default(query, schema, { | ||
@@ -169,3 +160,3 @@ query: dataSource, | ||
}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -175,3 +166,3 @@ itMarbles("filters by static argument", function (m) { | ||
var expectedData = [{ name: "apollo13" }, { name: "challenger" }]; | ||
var dataSource = Observable_1.Observable.of(expectedData); | ||
var dataSource = rxjs_1.of(expectedData); | ||
var expected = m.cold("(a|)", { | ||
@@ -183,3 +174,3 @@ a: { data: { launched: [expectedData[0]] } } | ||
}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -189,3 +180,3 @@ itMarbles("filters out fields", function (m) { | ||
var expectedData = [{ name: "discovery", firstFlight: 1984 }]; | ||
var dataSource = Observable_1.Observable.of(expectedData); | ||
var dataSource = rxjs_1.of(expectedData); | ||
var expected = m.cold("(a|)", { | ||
@@ -197,3 +188,3 @@ a: { data: { launched: [{ name: "discovery" }] } } | ||
}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -203,3 +194,3 @@ itMarbles("resolve with name alias", function (m) { | ||
var expectedData = [{ name: "challenger", firstFlight: 1984 }]; | ||
var dataSource = Observable_1.Observable.of(expectedData); | ||
var dataSource = rxjs_1.of(expectedData); | ||
var expected = m.cold("(a|)", { | ||
@@ -211,3 +202,3 @@ a: { data: { launched: [{ title: "challenger" }] } } | ||
}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -222,3 +213,3 @@ describe("Field Resolvers", function () { | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -231,3 +222,3 @@ itMarbles("if defined it executes the field resolver", function (m) { | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -248,3 +239,3 @@ itMarbles("the field resolvers 1st argument is parent", function (m) { | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -265,3 +256,3 @@ itMarbles("the field resolvers 2nd argument is arguments", function (m) { | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -280,3 +271,3 @@ itMarbles("the field resolvers 3rd argument is context", function (m) { | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -297,3 +288,3 @@ }); | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -316,3 +307,3 @@ itMarbles("the field resolvers 1st argument is parent", function (m) { | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -335,3 +326,3 @@ itMarbles("the field resolvers 2nd argument is arguments", function (m) { | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -350,3 +341,3 @@ itMarbles("the field resolvers 3rd argument is context", function (m) { | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -369,3 +360,3 @@ }); | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -377,3 +368,3 @@ }); | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -384,3 +375,3 @@ itMarbles("accessing an unknown query field results in an error observable", function (m) { | ||
var result = __1.default(query, fieldResolverSchema, {}); | ||
m.expect(result.take(1)).toBeObservable(expected); | ||
m.expect(result.pipe(operators_1.take(1))).toBeObservable(expected); | ||
}); | ||
@@ -392,3 +383,3 @@ }); | ||
var fakeRequest = { name: "RocketShip" }; | ||
var commandContext = Observable_1.Observable.of(fakeRequest); | ||
var commandContext = rxjs_1.of(fakeRequest); | ||
var result = __1.default(mutation, schema, { | ||
@@ -404,3 +395,3 @@ mutation: commandContext | ||
var mutation = graphql_tag_1.default(templateObject_19 || (templateObject_19 = __makeTemplateObject(["\n mutation {\n createShuttleList(name: \"RocketShip\") {\n name\n }\n }\n "], ["\n mutation {\n createShuttleList(name: \"RocketShip\") {\n name\n }\n }\n "]))); | ||
var commandContext = Observable_1.Observable.of("a request"); | ||
var commandContext = rxjs_1.of("a request"); | ||
var result = __1.default(mutation, schema, { | ||
@@ -424,3 +415,3 @@ mutation: commandContext | ||
var mutation = graphql_tag_1.default(templateObject_20 || (templateObject_20 = __makeTemplateObject(["\n mutation {\n shut: createShuttle(name: $name) {\n name\n }\n }\n "], ["\n mutation {\n shut: createShuttle(name: $name) {\n name\n }\n }\n "]))); | ||
var commandContext = Observable_1.Observable.of("a resquest"); | ||
var commandContext = rxjs_1.of("a resquest"); | ||
var result = __1.default(mutation, schema, { | ||
@@ -427,0 +418,0 @@ mutation: commandContext, |
@@ -1,1 +0,1 @@ | ||
import "rxjs/add/operator/take"; | ||
export {}; |
@@ -47,3 +47,3 @@ "use strict"; | ||
var graphql_tag_1 = __importDefault(require("graphql-tag")); | ||
require("rxjs/add/operator/take"); | ||
var operators_1 = require("rxjs/operators"); | ||
var starWarsSchema_1 = __importDefault(require("./starWarsSchema")); | ||
@@ -55,3 +55,3 @@ var __1 = __importDefault(require("../../")); | ||
__1.default(taggedQuery, schema, params) | ||
.take(1) | ||
.pipe(operators_1.take(1)) | ||
.subscribe(resolve); | ||
@@ -58,0 +58,0 @@ }); |
@@ -10,5 +10,2 @@ /** | ||
import { GraphQLSchema } from "graphql"; | ||
import "rxjs/add/observable/of"; | ||
import "rxjs/add/observable/fromPromise"; | ||
import "rxjs/add/observable/throw"; | ||
declare const _default: GraphQLSchema; | ||
@@ -15,0 +12,0 @@ /** |
@@ -13,6 +13,3 @@ "use strict"; | ||
var graphql_1 = require("graphql"); | ||
var Observable_1 = require("rxjs/Observable"); | ||
require("rxjs/add/observable/of"); | ||
require("rxjs/add/observable/fromPromise"); | ||
require("rxjs/add/observable/throw"); | ||
var rxjs_1 = require("rxjs"); | ||
var starWarsData_1 = require("./starWarsData"); | ||
@@ -163,3 +160,3 @@ /** | ||
description: "The friends of the human, or an empty list if they have none.", | ||
resolve: function (human) { return Observable_1.Observable.fromPromise(Promise.all(starWarsData_1.getFriends(human))); } | ||
resolve: function (human) { return rxjs_1.from(Promise.all(starWarsData_1.getFriends(human))); } | ||
}, | ||
@@ -178,3 +175,3 @@ appearsIn: { | ||
resolve: function () { | ||
Observable_1.Observable.throw(new Error("secretBackstory is secret.")); | ||
rxjs_1.throwError(new Error("secretBackstory is secret.")); | ||
} | ||
@@ -213,3 +210,3 @@ } | ||
description: "The friends of the droid, or an empty list if they have none.", | ||
resolve: function (droid) { return Observable_1.Observable.fromPromise(Promise.all(starWarsData_1.getFriends(droid))); } | ||
resolve: function (droid) { return rxjs_1.from(Promise.all(starWarsData_1.getFriends(droid))); } | ||
}, | ||
@@ -262,3 +259,3 @@ appearsIn: { | ||
var episode = _a.episode; | ||
return Observable_1.Observable.of(starWarsData_1.getHero(episode)); | ||
return rxjs_1.of(starWarsData_1.getHero(episode)); | ||
} | ||
@@ -276,3 +273,3 @@ }, | ||
var id = _a.id; | ||
return Observable_1.Observable.of(starWarsData_1.getHuman(id)); | ||
return rxjs_1.of(starWarsData_1.getHuman(id)); | ||
} | ||
@@ -290,3 +287,3 @@ }, | ||
var id = _a.id; | ||
return Observable_1.Observable.of(starWarsData_1.getDroid(id)); | ||
return rxjs_1.of(starWarsData_1.getDroid(id)); | ||
} | ||
@@ -293,0 +290,0 @@ } |
@@ -1,9 +0,2 @@ | ||
import { Observable } from "rxjs/Observable"; | ||
import "rxjs/add/observable/throw"; | ||
import "rxjs/add/observable/of"; | ||
import "rxjs/add/observable/fromPromise"; | ||
import "rxjs/add/operator/combineLatest"; | ||
import "rxjs/add/operator/do"; | ||
import "rxjs/add/operator/map"; | ||
import "rxjs/add/operator/concatMap"; | ||
import { Observable } from "rxjs"; | ||
import { DocumentNode, GraphQLSchema, GraphQLType } from "graphql"; | ||
@@ -10,0 +3,0 @@ interface TypeMap { |
@@ -14,10 +14,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var Observable_1 = require("rxjs/Observable"); | ||
require("rxjs/add/observable/throw"); | ||
require("rxjs/add/observable/of"); | ||
require("rxjs/add/observable/fromPromise"); | ||
require("rxjs/add/operator/combineLatest"); | ||
require("rxjs/add/operator/do"); | ||
require("rxjs/add/operator/map"); | ||
require("rxjs/add/operator/concatMap"); | ||
var rxjs_1 = require("rxjs"); | ||
var operators_1 = require("rxjs/operators"); | ||
var graphql_1 = require("graphql"); | ||
@@ -47,5 +41,5 @@ function isOperationDefinition(node) { | ||
var types = schema._typeMap; | ||
return resolve(doc.definitions[0], context, null, null).map(function (data) { return ({ | ||
return resolve(doc.definitions[0], context, null, null).pipe(operators_1.map(function (data) { return ({ | ||
data: data | ||
}); }); | ||
}); })); | ||
function resolve(definition, context, parent, type) { | ||
@@ -68,3 +62,3 @@ if (isOperationDefinition(definition)) { | ||
} | ||
return resolvedObservable.concatMap(function (emitted) { | ||
return resolvedObservable.pipe(operators_1.concatMap(function (emitted) { | ||
if (!emitted) { | ||
@@ -78,3 +72,3 @@ return throwObservable("resolver emitted empty value"); | ||
return resolveResult(definition, context, emitted, nextType); | ||
}); | ||
})); | ||
} | ||
@@ -93,3 +87,3 @@ // It is no operationDefinitionand no fieldNode, so it seems like an error | ||
if (!definition.selectionSet) { | ||
return Observable_1.Observable.of(parent); | ||
return rxjs_1.of(parent); | ||
} | ||
@@ -103,4 +97,4 @@ return definition.selectionSet.selections.reduce(function (acc, sel) { | ||
var fieldName = (sel.alias || sel.name).value; | ||
return acc.combineLatest(result, objectAppendWithKey(fieldName)); | ||
}, Observable_1.Observable.of({})); | ||
return acc.pipe(operators_1.combineLatest(result, objectAppendWithKey(fieldName))); | ||
}, rxjs_1.of({})); | ||
} | ||
@@ -111,4 +105,8 @@ function resolveArrayResults(definition, context, parents, parentType) { | ||
var resultObserver = resolveResult(definition, context, result, nextType); | ||
return acc.combineLatest(resultObserver, listAppend); | ||
}, Observable_1.Observable.of([])); | ||
return acc.pipe(operators_1.combineLatest( | ||
// TODO: fix this type overwrite | ||
resultObserver, function (destination, source) { | ||
return destination.concat(source); | ||
})); | ||
}, rxjs_1.of([])); | ||
} | ||
@@ -158,3 +156,3 @@ function getField(parentType, definition) { | ||
function throwObservable(error) { | ||
return Observable_1.Observable.throw(new Error("reactive-graphql: " + error)); | ||
return rxjs_1.throwError(new Error("reactive-graphql: " + error)); | ||
} | ||
@@ -189,8 +187,5 @@ function buildResolveArgs(definition, context) { | ||
}; | ||
var listAppend = function (destination, source) { | ||
return destination.concat(source); | ||
}; | ||
function resolveField(field, definition, context, parent) { | ||
if (!isFieldWithResolver(field)) { | ||
return Observable_1.Observable.of(parent[field.name]); | ||
return rxjs_1.of(parent[field.name]); | ||
} | ||
@@ -203,10 +198,10 @@ var args = buildResolveArgs(definition, context); | ||
); | ||
if (resolvedValue instanceof Observable_1.Observable) { | ||
if (resolvedValue instanceof rxjs_1.Observable) { | ||
return resolvedValue; | ||
} | ||
if (resolvedValue instanceof Promise) { | ||
return Observable_1.Observable.fromPromise(resolvedValue); | ||
return rxjs_1.from(resolvedValue); | ||
} | ||
// It seems like a plain value | ||
return Observable_1.Observable.of(resolvedValue); | ||
return rxjs_1.of(resolvedValue); | ||
} | ||
@@ -213,0 +208,0 @@ catch (err) { |
@@ -8,3 +8,3 @@ { | ||
], | ||
"version": "1.1.0", | ||
"version": "2.0.0", | ||
"license": "Apache-2.0", | ||
@@ -18,7 +18,7 @@ "scripts": { | ||
}, | ||
"dependencies": { | ||
"graphql": "^14.0.2" | ||
}, | ||
"peerDependencies": { | ||
"graphql": "14.0.2", | ||
"graphql-tag": "2.8.0", | ||
"graphql-tools": "4.0.3", | ||
"rxjs": "5.5.10" | ||
"rxjs": "^6.0.0" | ||
}, | ||
@@ -33,4 +33,4 @@ "devDependencies": { | ||
"rimraf": "2.6.2", | ||
"rxjs": "5.5.10", | ||
"rxjs-marbles": "2.3.1", | ||
"rxjs": "6.3.3", | ||
"rxjs-marbles": "5.0.0", | ||
"semantic-release": "15.12.4", | ||
@@ -37,0 +37,0 @@ "ts-jest": "23.10.5", |
@@ -16,12 +16,16 @@ # Reactive GraphQL | ||
import gql from "graphql-tag"; | ||
import { Observable } from "rxjs"; | ||
import { from, interval, of } from "rxjs"; | ||
import { map, merge, scan, combineLatest } from "rxjs/operators"; | ||
import { componentFromStream } from "@dcos/data-service"; | ||
// mocked API clients that return Observables | ||
const oldPosts = Observable.from(["my first post", "a second post"]); | ||
const newPosts = Observable.interval(3000).map(v => `Blog Post #${v + 1}`); | ||
const oldPosts = from(["my first post", "a second post"]); | ||
const newPosts = interval(3000).pipe(map(v => `Blog Post #${v + 1}`)); | ||
const fetchPosts = () => | ||
oldPosts.merge(newPosts).scan((acc, item) => [...acc, item], []); | ||
oldPosts.pipe( | ||
merge(newPosts), | ||
scan((acc, item) => [...acc, item], []) | ||
); | ||
const votesStore = {}; | ||
const fetchVotesForPost = name => Observable.of(votesStore[name] || 0); | ||
const fetchVotesForPost = name => of(votesStore[name] || 0); | ||
@@ -51,4 +55,6 @@ const schema = makeExecutableSchema({ | ||
posts(parent, args, context) { | ||
return fetchPosts().map(emittedValue => | ||
emittedValue.map((value, index) => ({ id: index, title: value })) | ||
return fetchPosts().pipe( | ||
map(emittedValue => | ||
emittedValue.map((value, index) => ({ id: index, title: value })) | ||
) | ||
); | ||
@@ -76,13 +82,15 @@ } | ||
const PostsList = componentFromStream(propsStream => | ||
propsStream.combineLatest(postStream, (props, result) => { | ||
const { | ||
data: { posts } | ||
} = result; | ||
propsStream.pipe( | ||
combineLatest(postStream, (props, result) => { | ||
const { | ||
data: { posts } | ||
} = result; | ||
return posts.map(post => ( | ||
<div> | ||
<h3>{post.title}</h3> | ||
</div> | ||
)); | ||
}) | ||
return posts.map(post => ( | ||
<div> | ||
<h3>{post.title}</h3> | ||
</div> | ||
)); | ||
}) | ||
) | ||
); | ||
@@ -109,7 +117,7 @@ | ||
The first argument you pass into `reactive-graphql` is an executable schema, the second one a parsed GraphQL query. You can pass in the root context as an object as a third parameter. | ||
The first argument you pass into `reactive-graphql` is an executable schema, the second one a parsed GraphQL query. You can pass in the root context as an object as a third parameter. | ||
The implementation will always return an Observable. | ||
The implementation will always return an Observable. | ||
If any of the resolvers returns an error the implementation will emit the error on the stream. | ||
Otherwise the data will be wrapped in a `{ data }` object, like most implementations handle this. | ||
Otherwise the data will be wrapped in a `{ data }` object, like most implementations handle this. | ||
@@ -116,0 +124,0 @@ ## License |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
2
123
129915
1662
+ Addedgraphql@^14.0.2
+ Addedgraphql@14.7.0(transitive)
+ Addedrxjs@6.6.7(transitive)
- Removed@wry/equality@0.1.11(transitive)
- Removedapollo-link@1.2.14(transitive)
- Removedapollo-utilities@1.3.4(transitive)
- Removeddeprecated-decorator@0.1.6(transitive)
- Removedfast-json-stable-stringify@2.1.0(transitive)
- Removedgraphql@0.13.214.0.2(transitive)
- Removedgraphql-tag@2.8.0(transitive)
- Removedgraphql-tools@4.0.3(transitive)
- Removedrxjs@5.5.10(transitive)
- Removedsymbol-observable@1.0.1(transitive)
- Removedts-invariant@0.4.4(transitive)
- Removeduuid@3.4.0(transitive)
- Removedzen-observable@0.8.15(transitive)
- Removedzen-observable-ts@0.8.21(transitive)