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

dequest

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dequest - npm Package Compare versions

Comparing version 1.1.1 to 1.1.2

40

lib/dequest.js

@@ -23,2 +23,5 @@ import _regeneratorRuntime from 'babel-runtime/regenerator';

var Dequest = function Dequest(requestId, request) {
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
skipTransform = _ref.skipTransform;
_classCallCheck(this, Dequest);

@@ -28,8 +31,9 @@

this.request = request;
this.options = { skipTransform: skipTransform };
};
export var HandledRequest = function HandledRequest() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
type = _ref.type,
args = _ref.args;
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
type = _ref2.type,
args = _ref2.args;

@@ -79,3 +83,7 @@ _classCallCheck(this, HandledRequest);

export var makeRequest = function makeRequest(requestId, request) {
return new Dequest(requestId, request);
var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
_ref3$skipTransform = _ref3.skipTransform,
skipTransform = _ref3$skipTransform === undefined ? false : _ref3$skipTransform;
return new Dequest(requestId, request, { skipTransform: skipTransform });
};

@@ -128,3 +136,3 @@

var resolveRequest = function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(api, action) {
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(api, action) {
var type, method;

@@ -172,14 +180,16 @@ return _regeneratorRuntime.wrap(function _callee$(_context) {

return function resolveRequest(_x3, _x4) {
return _ref2.apply(this, arguments);
return function resolveRequest(_x5, _x6) {
return _ref4.apply(this, arguments);
};
}();
var noOpTransformer = function noOpTransformer(_) {
return Promise.resolve(_);
};
export var createMiddleware = function createMiddleware() {
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref3$requestTransfor = _ref3.requestTransformer,
requestTransformer = _ref3$requestTransfor === undefined ? function (_) {
return Promise.resolve(_);
} : _ref3$requestTransfor,
api = _ref3.api;
var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref5$requestTransfor = _ref5.requestTransformer,
requestTransformer = _ref5$requestTransfor === undefined ? noOpTransformer : _ref5$requestTransfor,
api = _ref5.api;

@@ -212,3 +222,5 @@ return function (store) {

return requestTransformer(dedupe(action.requestId, timeout(resolveRequest(api, action), DEFAULT_TIMEOUT, {
var transform = action.options.skipTransform ? noOpTransformer : requestTransformer;
return transform(dedupe(action.requestId, timeout(resolveRequest(api, action), DEFAULT_TIMEOUT, {
errorMessage: 'Connection timeout'

@@ -215,0 +227,0 @@ }))).then(function (r) {

@@ -248,2 +248,94 @@ import _regeneratorRuntime from 'babel-runtime/regenerator';

});
describe('requestTransformer', function () {
it('should transform if requestTransformer', _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
var transformedResponse, request;
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
transformedResponse = new Response({
status: 200,
statusText: 'OK',
ok: true,
jsonBody: { transformed: Math.random() }
});
store = createStore(combineReducers(Object.assign({}, dequest.reducer)), compose(applyMiddleware(dequest.createMiddleware({
requestTransformer: function requestTransformer(_) {
return Promise.resolve(transformedResponse);
}
}))));
request = store.dispatch(makeRequest('123', Promise.resolve(mockResponse)));
expect(store.getState()).toEqual({
'@@dequest': { '123': expect.objectContaining({ isLoading: true }) }
});
_context5.next = 6;
return request;
case 6:
expect(store.getState()).toEqual({
'@@dequest': {
'123': expect.objectContaining(Object.assign({
isUpdating: false,
isLoading: false
}, transformedResponse.serialize()))
}
});
case 7:
case 'end':
return _context5.stop();
}
}
}, _callee5, _this2);
})));
it('skipTransform', _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
var transformedResponse, request;
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
transformedResponse = new Response({
status: 200,
statusText: 'OK',
ok: true,
jsonBody: { transformed: Math.random() }
});
store = createStore(combineReducers(Object.assign({}, dequest.reducer)), compose(applyMiddleware(dequest.createMiddleware({
requestTransformer: function requestTransformer(_) {
return Promise.resolve(transformedResponse);
}
}))));
request = store.dispatch(makeRequest('123', Promise.resolve(mockResponse), {
skipTransform: true
}));
expect(store.getState()).toEqual({
'@@dequest': { '123': expect.objectContaining({ isLoading: true }) }
});
_context6.next = 6;
return request;
case 6:
expect(store.getState()).toEqual({
'@@dequest': {
'123': expect.objectContaining(Object.assign({
isUpdating: false,
isLoading: false
}, mockResponse.serialize()))
}
});
case 7:
case 'end':
return _context6.stop();
}
}
}, _callee6, _this2);
})));
});
});
{
"name": "dequest",
"version": "1.1.1",
"version": "1.1.2",
"main": "lib/index.js",

@@ -5,0 +5,0 @@ "author": "Trung Dinh Quang <trungdq88@gmail.com>",

@@ -9,5 +9,6 @@ import { createSelector } from 'reselect';

class Dequest {
constructor(requestId, request) {
constructor(requestId, request, { skipTransform } = {}) {
this.requestId = requestId;
this.request = request;
this.options = { skipTransform };
}

@@ -29,4 +30,8 @@ }

export const makeRequest = (requestId, request) => {
return new Dequest(requestId, request);
export const makeRequest = (
requestId,
request,
{ skipTransform = false } = {},
) => {
return new Dequest(requestId, request, { skipTransform });
};

@@ -102,4 +107,6 @@

const noOpTransformer = _ => Promise.resolve(_);
export const createMiddleware = (
{ requestTransformer = _ => Promise.resolve(_), api } = {},
{ requestTransformer = noOpTransformer, api } = {},
) => store => next => action => {

@@ -126,3 +133,7 @@ if (!(action instanceof Dequest)) {

return requestTransformer(
const transform = action.options.skipTransform
? noOpTransformer
: requestTransformer;
return transform(
dedupe(

@@ -129,0 +140,0 @@ action.requestId,

@@ -198,2 +198,80 @@ import dequest, {

});
describe('requestTransformer', () => {
it('should transform if requestTransformer', async () => {
const transformedResponse = new Response({
status: 200,
statusText: 'OK',
ok: true,
jsonBody: { transformed: Math.random() },
});
store = createStore(
combineReducers({
...dequest.reducer,
}),
compose(
applyMiddleware(
dequest.createMiddleware({
requestTransformer: _ => Promise.resolve(transformedResponse),
}),
),
),
);
const request = store.dispatch(
makeRequest('123', Promise.resolve(mockResponse)),
);
expect(store.getState()).toEqual({
'@@dequest': { '123': expect.objectContaining({ isLoading: true }) },
});
await request;
expect(store.getState()).toEqual({
'@@dequest': {
'123': expect.objectContaining({
isUpdating: false,
isLoading: false,
...transformedResponse.serialize(),
}),
},
});
});
it('skipTransform', async () => {
const transformedResponse = new Response({
status: 200,
statusText: 'OK',
ok: true,
jsonBody: { transformed: Math.random() },
});
store = createStore(
combineReducers({
...dequest.reducer,
}),
compose(
applyMiddleware(
dequest.createMiddleware({
requestTransformer: _ => Promise.resolve(transformedResponse),
}),
),
),
);
const request = store.dispatch(
makeRequest('123', Promise.resolve(mockResponse), {
skipTransform: true,
}),
);
expect(store.getState()).toEqual({
'@@dequest': { '123': expect.objectContaining({ isLoading: true }) },
});
await request;
expect(store.getState()).toEqual({
'@@dequest': {
'123': expect.objectContaining({
isUpdating: false,
isLoading: false,
...mockResponse.serialize(),
}),
},
});
});
});
});
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