New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

reactive-graphql

Package Overview
Dependencies
Maintainers
13
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

reactive-graphql - npm Package Compare versions

Comparing version 1.1.0 to 2.0.0

6

dist/__tests__/graphqlObservable-test.d.ts

@@ -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 {};

105

dist/__tests__/graphqlObservable-test.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc