Skip to content

Commit

Permalink
chore!: Rework extension helper to get options
Browse files Browse the repository at this point in the history
  • Loading branch information
phated committed Aug 25, 2022
1 parent a1ba61d commit 89857b6
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 37 deletions.
7 changes: 5 additions & 2 deletions lib/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

function noop() {}

function getExtensions(lastArg) {
function getOptions(args) {
// TODO: use `.at(-1)` when the API is available
var lastArg = args.slice(-1)[0];

if (typeof lastArg !== 'function') {
return lastArg;
}
Expand Down Expand Up @@ -85,7 +88,7 @@ function verifyEachArg(arg, argIdx, args) {
}

module.exports = {
getExtensions: getExtensions,
getOptions: getOptions,
onSettled: buildOnSettled,
verifyArguments: verifyArguments,
};
7 changes: 3 additions & 4 deletions lib/parallel.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,14 @@ function iterator(fn, key, cb) {
function buildParallel() {
var args = helpers.verifyArguments(arguments);

// TODO: use `.at(-1)` when the API is available
var extensions = helpers.getExtensions(args.slice(-1)[0]);
var options = helpers.getOptions(args);

if (extensions) {
if (options) {
args = args.slice(0, -1);
}

function parallel(done) {
nowAndLater.map(args, iterator, extensions, done);
nowAndLater.map(args, iterator, options, done);
}

return parallel;
Expand Down
7 changes: 3 additions & 4 deletions lib/series.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,14 @@ function iterator(fn, key, cb) {
function buildSeries() {
var args = helpers.verifyArguments(arguments);

// TODO: use `.at(-1)` when the API is available
var extensions = helpers.getExtensions(args.slice(-1)[0]);
var options = helpers.getOptions(args);

if (extensions) {
if (options) {
args = args.slice(0, -1);
}

function series(done) {
nowAndLater.mapSeries(args, iterator, extensions, done);
nowAndLater.mapSeries(args, iterator, options, done);
}

return series;
Expand Down
7 changes: 3 additions & 4 deletions lib/settleParallel.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,15 @@ function iterator(fn, key, cb) {
function buildSettleParallel() {
var args = helpers.verifyArguments(arguments);

// TODO: use `.at(-1)` when the API is available
var extensions = helpers.getExtensions(args.slice(-1)[0]);
var options = helpers.getOptions(args);

if (extensions) {
if (options) {
args = args.slice(0, -1);
}

function settleParallel(done) {
var onSettled = helpers.onSettled(done);
nowAndLater.map(args, iterator, extensions, onSettled);
nowAndLater.map(args, iterator, options, onSettled);
}

return settleParallel;
Expand Down
7 changes: 3 additions & 4 deletions lib/settleSeries.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,15 @@ function iterator(fn, key, cb) {
function buildSettleSeries() {
var args = helpers.verifyArguments(arguments);

// TODO: use `.at(-1)` when the API is available
var extensions = helpers.getExtensions(args.slice(-1)[0]);
var options = helpers.getOptions(args);

if (extensions) {
if (options) {
args = args.slice(0, -1);
}

function settleSeries(done) {
var onSettled = helpers.onSettled(done);
nowAndLater.mapSeries(args, iterator, extensions, onSettled);
nowAndLater.mapSeries(args, iterator, options, onSettled);
}

return settleSeries;
Expand Down
19 changes: 0 additions & 19 deletions test/getExtensions.js

This file was deleted.

19 changes: 19 additions & 0 deletions test/getOptions.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
'use strict';

var expect = require('expect');

var getOptions = require('../lib/helpers').getOptions;

describe('getOptions', function () {
it('should return the argument if it is an object', function (done) {
var args = [{}];
expect(getOptions(args)).toEqual({});
done();
});

it('should return undefined if argument is not an object', function (done) {
var args = [function () {}];
expect(getOptions(args)).toEqual(undefined);
done();
});
});

0 comments on commit 89857b6

Please sign in to comment.