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

@gastonyte/cycle-fetch-driver

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gastonyte/cycle-fetch-driver - npm Package Compare versions

Comparing version 5.0.3 to 5.1.0

@@ -13,2 +13,8 @@ 'use strict';

var _assert = require('assert');
var _isFunction = require('lodash/isFunction');
var _isFunction2 = _interopRequireDefault(_isFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -25,2 +31,3 @@

var coerceRequest = function coerceRequest(input) {
console.log('coerceRequest', input);

@@ -34,11 +41,12 @@ var request = typeof input === 'string' ? { url: input } : _extends({}, input);

var filterByKey = function filterByKey(response$$, key) {
return response$$.filter(function (response$) {
return response$.request.key === key;
var filterByKey = function filterByKey(response$, key) {
return response$.filter(function (response) {
return response.request.key === key;
});
};
// .remember();
var filterByUrl = function filterByUrl(response$$, url) {
return response$$.filter(function (response$) {
return getUrl(response$.request) === url;
var filterByUrl = function filterByUrl(response$, url) {
return response$.filter(function (response) {
return getUrl(response.request) === url;
});

@@ -52,7 +60,8 @@ };

fetch = _ref2$fetch === undefined ? global.fetch : _ref2$fetch,
defaultOptions = _objectWithoutProperties(_ref2, ['fetch']);
defaultHeaders = _ref2.headers,
defaultOptions = _objectWithoutProperties(_ref2, ['fetch', 'headers']);
return function (request$) {
var response$$ = _xstream2.default.create({
var response$ = _xstream2.default.createWithMemory({
start: function start(listener) {

@@ -63,15 +72,18 @@

var input = request.input,
url = request.url,
options = request.options;
url = request.url;
var _request$options = request.options,
options = _request$options === undefined ? {} : _request$options;
var response$ = _xstream2.default.fromPromise(fetch(input || url, _extends({}, defaultOptions, options)));
response$.request = request;
listener.next(response$);
},
error: function error(_error) {
return listener.error(response$$, _error);
},
complete: function complete(out) {
return listener.complete(response$$, out);
options = _extends({}, defaultOptions, options, {
headers: _extends({}, defaultHeaders, options.headers || {})
});
console.log('FETCH', options);
fetch(input || url, options).then(function (response) {
response.request = request;
listener.next(response);
}).catch(function (err) {
listener.error(err);
});
}

@@ -83,5 +95,65 @@ });

response$$.filterByKey = filterByKey.bind(null, response$$);
response$$.filterByUrl = filterByUrl.bind(null, response$$);
response$.filterByKey = filterByKey.bind(null, response$);
response$.filterByUrl = filterByUrl.bind(null, response$);
return response$;
};
};
function normalizeRequest(input) {
var request = typeof input === 'string' ? { url: input } : _extends({}, input);
if (!request.key) {
request.key = getUrl(request);
}
return request;
}
function byKey(response$$, key) {
return response$$.filter(function (response$) {
return response$.request.key === key;
});
}
function byUrl(response$$, url) {
return response$$.filter(function (response$) {
return getUrl(response$.request) === url;
});
}
// scheduler option is for testing because Reactive-Extensions/RxJS#976
var FetchDriver2 = function FetchDriver2() {
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _ref3$fetch = _ref3.fetch,
fetch = _ref3$fetch === undefined ? global.fetch : _ref3$fetch,
headers = _ref3.headers,
defaultOptions = _objectWithoutProperties(_ref3, ['fetch', 'headers']);
return function fetchDriver(request$) {
var response$$ = _xstream2.default.createWithMemory();
console.log('FetchDriver2()');
request$.map(normalizeRequest).addListener({
next: function next(request) {
// const {input, url, init} = request
var input = request.input,
url = request.url;
var _request$options2 = request.options,
options = _request$options2 === undefined ? {} : _request$options2;
var response$ = _xstream2.default.fromPromise(fetch(input || url, _extends({}, defaultOptions, options, {
headers: _extends({}, headers, options.headers || {})
})));
response$.request = request;
response$$.shamefullySendNext(response$);
},
error: response$$.shamefullySendError.bind(response$$),
complete: response$$.shamefullySendComplete.bind(response$$)
});
response$$.byKey = byKey.bind(null, response$$);
response$$.byUrl = byUrl.bind(null, response$$);
return response$$;

@@ -91,2 +163,3 @@ };

exports.default = FetchDriver;
// export default FetchDriver;
exports.default = FetchDriver2;
{
"name": "@gastonyte/cycle-fetch-driver",
"version": "5.0.3",
"version": "5.1.0",
"description": "A Cycle.js Driver for making HTTP requests through fetch",

@@ -5,0 +5,0 @@ "main": "lib/driver.js",

import Stream from 'xstream';
import { assert } from 'assert';
const getUrl = ({ input, url }) => (input && input.url) || url;
const coerceRequest = input => {
const normalizeRequest = input => {
const request = typeof input === 'string'
? { url: input }
: { ...input };
: { ...input }
if (!request.key) {
request.key = getUrl(request)
}
return request
};
if (!request.key)
request.key = getUrl(request);
const byKey = (response$$, key) => {
return response$$
.filter(response$ => response$.request.key === key)
};
return request;
const byUrl = (response$$, url) => {
return response$$
.filter(response$ => getUrl(response$.request) === url)
};
const filterByKey = (response$$, key) => response$$.filter(response$ => response$.request.key === key);
const FetchDriver = ({ fetch = global.fetch, headers, ...defaultOptions } = {}) => {
const filterByUrl = (response$$, url) => response$$.filter(response$ => getUrl(response$.request) === url);
return request$ => {
const FetchDriver = ({ fetch = global.fetch, ...defaultOptions } = {}) => {
const response$$ = Stream.createWithMemory();
return request$ => {
request$
.map(normalizeRequest)
.addListener({
next: request => {
const response$$ = Stream.create({
start: listener => {
const { input, url } = request;
let { options = {} } = request;
request$
.map(coerceRequest)
.addListener({
next: request => {
const response$ = Stream.fromPromise(
fetch(input || url, {
...defaultOptions,
...options,
headers: {
...headers,
...(options.headers || {})
}
})
);
const { input, url, options } = request;
const response$ = Stream.fromPromise(fetch(input || url, { ...defaultOptions, ...options }));
response$.request = request;
response$$.shamefullySendNext(response$);
},
error: response$$.shamefullySendError.bind(response$$),
complete: response$$.shamefullySendComplete.bind(response$$)
});
response$.request = request;
listener.next(response$);
},
error: error => listener.error(response$$, error),
complete: out => listener.complete(response$$, out)
});
},
stop: () => {}
});
response$$.byKey = byKey.bind(null, response$$);
response$$.byUrl = byUrl.bind(null, response$$);
response$$.filterByKey = filterByKey.bind(null, response$$);
response$$.filterByUrl = filterByUrl.bind(null, response$$);
return response$$
}
};
}
export default FetchDriver;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet