Socket
Socket
Sign inDemoInstall

effects-as-data

Package Overview
Dependencies
Maintainers
1
Versions
155
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

effects-as-data - npm Package Compare versions

Comparing version 1.4.19 to 1.5.1

lib/demo/error-handling.spec.js

2

lib/demo/misc.spec.js

@@ -14,3 +14,3 @@ 'use strict';

describe.only('demo/misc.js', function () {
describe('demo/misc.js', function () {
describe('#singleLine', function () {

@@ -17,0 +17,0 @@ it('handles it', testSingleLine(function () {

@@ -12,4 +12,6 @@ 'use strict';

isSuccess = _require3.isSuccess,
getSuccesses = _require3.getSuccesses,
failure = _require3.failure,
isFailure = _require3.isFailure;
isFailure = _require3.isFailure,
getFailures = _require3.getFailures;

@@ -21,5 +23,7 @@ module.exports = {

isSuccess: isSuccess,
getSuccesses: getSuccesses,
failure: failure,
isFailure: isFailure
isFailure: isFailure,
getFailures: getFailures
};
//# sourceMappingURL=index.js.map

@@ -8,3 +8,4 @@ 'use strict';

toPromise = _require.toPromise,
append = _require.append;
append = _require.append,
getFailures = _require.getFailures;

@@ -16,5 +17,6 @@ var _require2 = require('./handle-actions'),

var payload = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
var config = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
var h1 = handleActions(run, actionHandlers);
return runComplete(h1, fn, payload).then(prop('payload'));
return runComplete(h1, fn, payload, config).then(prop('payload'));
};

@@ -24,5 +26,6 @@

var payload = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
var config = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
var g = fn(payload);
return runner(handleActions, g, payload);
return runner(handleActions, g, payload, config);
};

@@ -37,3 +40,6 @@

var runner = function runner(handleActions, g, input, el) {
var runner = function runner(handleActions, g, input) {
var config = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
var el = arguments[4];
var el1 = getExecutionLog(el);

@@ -49,7 +55,24 @@

return handleActions(output).then(function (actionResults1) {
handleFailedActions(actionResults1, el2, config);
var actionResults2 = returnResultsAsArray ? actionResults1 : unwrapArgs(actionResults1);
return runner(handleActions, g, actionResults2, el2);
return runner(handleActions, g, actionResults2, config, el2);
});
};
var handleFailedActions = function handleFailedActions(actionResults, el, config) {
var onFailure = config.onFailure || function () {};
var failures = getFailures(actionResults);
failures.forEach(function (f) {
var error = f.error || {};
onFailure({
fn: config.name,
log: el,
errorMessage: error.message,
errorName: error.name,
errorStack: error.stack,
error: error.toString()
});
});
};
var nextOutput = function nextOutput(g, input) {

@@ -56,0 +79,0 @@ var _g$next = g.next(input),

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

function getSuccesses(l) {
return l.filter(function (p) {
return p.success === true;
});
}
function failure(error) {

@@ -58,2 +64,8 @@ return {

function getFailures(l) {
return l.filter(function (p) {
return p.success === false;
});
}
var normalizeToSuccess = function normalizeToSuccess(p) {

@@ -94,4 +106,6 @@ if (isProtocol(p)) return p;

isSuccess: isSuccess,
getSuccesses: getSuccesses,
failure: failure,
isFailure: isFailure,
getFailures: getFailures,
merge: merge,

@@ -98,0 +112,0 @@ normalizeToSuccess: normalizeToSuccess,

@@ -10,3 +10,5 @@ 'use strict';

isSuccess = _require.isSuccess,
getSuccesses = _require.getSuccesses,
isFailure = _require.isFailure,
getFailures = _require.getFailures,
normalizeToSuccess = _require.normalizeToSuccess,

@@ -151,2 +153,11 @@ normalizeListToSuccess = _require.normalizeListToSuccess,

describe('#getFailures', function () {
it('should return all failures', function () {
var list = [success(1), failure(1), success(2), failure(2)];
var actual = getSuccesses(list);
var expected = [success(1), success(2)];
deepEqual(actual, expected);
});
});
describe('#isFailure', function () {

@@ -174,2 +185,11 @@ it('should return true if is failure object', function () {

describe('#getFailures', function () {
it('should return all failures', function () {
var list = [failure(1), failure(2), success(), failure(2)];
var actual = getFailures(list);
var expected = [failure(1), failure(2), failure(2)];
deepEqual(actual, expected);
});
});
describe('#normalizeToSuccess', function () {

@@ -176,0 +196,0 @@ it('should wrap value in success object', function () {

{
"name": "effects-as-data",
"version": "1.4.19",
"version": "1.5.1",
"description": "Express async workflows using pure functions.",

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

@@ -208,1 +208,28 @@ # Effects as Data

```
## Logging Action Failures
Logging all action failures explicitly can add a lot of noise to your code. Effects-as-data provides an `onFailure` hook that will be called for each failing action with a detailed payload about the error:
```js
function onFailure (payload) {
// payload:
// {
// fn: 'testFunction',
// log: [
// [42, {type: 'noop'}],
// [{success: true, payload: 'noop'}, {type: 'test'}]
// ],
// errorMessage: 'Oh No!',
// errorName: 'TypeError',
// errorStack: the stack trace,
// error: the error object toString()'d
// }
log(payload)
}
return run(handlers, test, 42, {
name: 'testFunction',
onFailure
})
```

@@ -7,3 +7,3 @@ const { singleLine } = require('./misc')

describe.only('demo/misc.js', () => {
describe('demo/misc.js', () => {
describe('#singleLine', () => {

@@ -10,0 +10,0 @@ it('handles it', testSingleLine(() => {

@@ -6,4 +6,6 @@ const { run } = require('./run')

isSuccess,
getSuccesses,
failure,
isFailure
isFailure,
getFailures
} = require('./util')

@@ -16,4 +18,6 @@

isSuccess,
getSuccesses,
failure,
isFailure
isFailure,
getFailures
}

@@ -6,14 +6,15 @@ const {

toPromise,
append
append,
getFailures
} = require('./util')
const { handleActions } = require('./handle-actions')
const run = (actionHandlers, fn, payload = null) => {
const run = (actionHandlers, fn, payload = null, config = {}) => {
const h1 = handleActions(run, actionHandlers)
return runComplete(h1, fn, payload).then(prop('payload'))
return runComplete(h1, fn, payload, config).then(prop('payload'))
}
const runComplete = (handleActions, fn, payload = null) => {
const runComplete = (handleActions, fn, payload = null, config = {}) => {
let g = fn(payload)
return runner(handleActions, g, payload)
return runner(handleActions, g, payload, config)
}

@@ -26,3 +27,3 @@

const runner = (handleActions, g, input, el) => {
const runner = (handleActions, g, input, config = {}, el) => {
const el1 = getExecutionLog(el)

@@ -34,7 +35,24 @@ let { output, done } = nextOutput(g, input)

return handleActions(output).then((actionResults1) => {
handleFailedActions(actionResults1, el2, config)
const actionResults2 = returnResultsAsArray ? actionResults1 : unwrapArgs(actionResults1)
return runner(handleActions, g, actionResults2, el2)
return runner(handleActions, g, actionResults2, config, el2)
})
}
const handleFailedActions = (actionResults, el, config) => {
const onFailure = config.onFailure || function () {}
const failures = getFailures(actionResults)
failures.forEach((f) => {
const error = f.error || {}
onFailure({
fn: config.name,
log: el,
errorMessage: error.message,
errorName: error.name,
errorStack: error.stack,
error: error.toString()
})
})
}
const nextOutput = (g, input) => {

@@ -41,0 +59,0 @@ let { value: output, done } = g.next(input)

@@ -45,2 +45,6 @@ const {

function getSuccesses (l) {
return l.filter((p) => p.success === true)
}
function failure (error) {

@@ -57,2 +61,6 @@ return {

function getFailures (l) {
return l.filter((p) => p.success === false)
}
const normalizeToSuccess = (p) => {

@@ -93,4 +101,6 @@ if (isProtocol(p)) return p

isSuccess,
getSuccesses,
failure,
isFailure,
getFailures,
merge,

@@ -97,0 +107,0 @@ normalizeToSuccess,

@@ -8,3 +8,5 @@ const {

isSuccess,
getSuccesses,
isFailure,
getFailures,
normalizeToSuccess,

@@ -114,2 +116,11 @@ normalizeListToSuccess,

describe('#getFailures', () => {
it('should return all failures', () => {
const list = [success(1), failure(1), success(2), failure(2)]
const actual = getSuccesses(list)
const expected = [success(1), success(2)]
deepEqual(actual, expected)
})
})
describe('#isFailure', () => {

@@ -137,2 +148,11 @@ it('should return true if is failure object', () => {

describe('#getFailures', () => {
it('should return all failures', () => {
const list = [failure(1), failure(2), success(), failure(2)]
const actual = getFailures(list)
const expected = [failure(1), failure(2), failure(2)]
deepEqual(actual, expected)
})
})
describe('#normalizeToSuccess', () => {

@@ -139,0 +159,0 @@ it('should wrap value in success object', () => {

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

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