Skip to content

Commit

Permalink
Add helpers and remove lodash dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
kraynel committed Jan 11, 2020
1 parent 3c1de62 commit 770cb04
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 15 deletions.
5 changes: 3 additions & 2 deletions configure/request-next.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
'use strict';

var core = require('../'),
helpers = require('../lib/helpers'),
isArray = Array.isArray,
isFunction = require('lodash.isfunction'),
isObjectLike = require('lodash.isobjectlike');
isFunction = helpers.isFunction,
isObjectLike = helpers.isObjectLike;


module.exports = function (options) {
Expand Down
5 changes: 3 additions & 2 deletions configure/request2.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
'use strict';

var core = require('../'),
helpers = require('../lib/helpers'),
isArray = Array.isArray,
isFunction = require('lodash.isfunction'),
isObjectLike = require('lodash.isobjectlike');
isFunction = helpers.isFunction,
isObjectLike = helpers.isObjectLike;


module.exports = function (options) {
Expand Down
51 changes: 51 additions & 0 deletions lib/helpers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
'use strict';

var
asyncTag = '[object AsyncFunction]',
funcTag = '[object Function]',
genTag = '[object GeneratorFunction]',
proxyTag = '[object Proxy]',
nullTag = '[object Null]',
stringTag = '[object String]',
undefinedTag = '[object Undefined]';

function baseGetTag(value) {
if (value === undefined) {
return undefinedTag;
}

if (value === null) {
return nullTag;
}

return Object.prototype.toString.call(value);
}

function isObject(value) {
var type = typeof value;
return value !== undefined && value !== null && (type === 'object' || type === 'function');
}

function isFunction(value) {
if (!isObject(value)) {
return false;
}

var tag = baseGetTag(value);
return tag === funcTag || tag === genTag || tag === asyncTag || tag === proxyTag;
}

function isObjectLike(value) {
return value !== undefined && value !== null && typeof value === 'object';
}

function isString(value) {
return typeof value === 'string' ||
!Array.isArray(value) && isObjectLike(value) && baseGetTag(value) === stringTag;
}

module.exports = {
isFunction: isFunction,
isString: isString,
isObjectLike: isObjectLike
};
10 changes: 5 additions & 5 deletions lib/plumbing.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
'use strict';

var errors = require('./errors.js'),
isFunction = require('lodash.isfunction'),
isObjectLike = require('lodash.isobjectlike'),
isString = require('lodash.isstring'),
isUndefined = require('lodash.isundefined');
helpers = require('./helpers'),
isFunction = helpers.isFunction,
isObjectLike = helpers.isObjectLike,
isString = helpers.isString;


module.exports = function (options) {
Expand All @@ -19,7 +19,7 @@ module.exports = function (options) {
throw new TypeError(errorText + '.PromiseImpl');
}

if (!isUndefined(options.constructorMixin) && !isFunction(options.constructorMixin)) {
if (options.constructorMixin !== undefined && !isFunction(options.constructorMixin)) {
throw new TypeError(errorText + '.PromiseImpl');
}

Expand Down
7 changes: 1 addition & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,6 @@
"engines": {
"node": ">=0.10.0"
},
"dependencies": {
"lodash.isfunction": "^3.0.9",
"lodash.isobjectlike": "^4.0.0",
"lodash.isstring": "^4.0.1",
"lodash.isundefined": "^3.0.1"
},
"peerDependencies": {
"request": "^2.34"
},
Expand All @@ -54,6 +48,7 @@
"gulp-istanbul": "~1.0.0",
"gulp-mocha": "~2.2.0",
"lodash.flatten": "^4.4.0",
"lodash.isfunction": "^3.0.9",
"node-version": "~1.0.0",
"publish-please": "~2.4.1",
"request": "^2.34.0",
Expand Down

0 comments on commit 770cb04

Please sign in to comment.