gql-profiler
Advanced tools
Comparing version 0.0.3 to 0.0.4
387
lib/index.js
@@ -1,368 +0,21 @@ | ||
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : | ||
typeof define === 'function' && define.amd ? define(['exports'], factory) : | ||
(factory((global['gql-profiler'] = {}))); | ||
}(this, (function (exports) { 'use strict'; | ||
'use strict'; | ||
var asyncToGenerator = function (fn) { | ||
return function () { | ||
var gen = fn.apply(this, arguments); | ||
return new Promise(function (resolve, reject) { | ||
function step(key, arg) { | ||
try { | ||
var info = gen[key](arg); | ||
var value = info.value; | ||
} catch (error) { | ||
reject(error); | ||
return; | ||
} | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.profileResolvers = exports.memoryReporter = exports.nullReporter = undefined; | ||
if (info.done) { | ||
resolve(value); | ||
} else { | ||
return Promise.resolve(value).then(function (value) { | ||
step("next", value); | ||
}, function (err) { | ||
step("throw", err); | ||
}); | ||
} | ||
} | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
return step("next"); | ||
}); | ||
}; | ||
}; | ||
var _monitor = require('./monitor'); | ||
var _monitor2 = _interopRequireDefault(_monitor); | ||
var _reporters = require('./reporters'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
const nullReporter = exports.nullReporter = _reporters.nullReporter; | ||
const memoryReporter = exports.memoryReporter = _reporters.memoryReporter; | ||
var _extends = Object.assign || function (target) { | ||
for (var i = 1; i < arguments.length; i++) { | ||
var source = arguments[i]; | ||
for (var key in source) { | ||
if (Object.prototype.hasOwnProperty.call(source, key)) { | ||
target[key] = source[key]; | ||
} | ||
} | ||
} | ||
return target; | ||
}; | ||
var monitor = ((fn, reporter, name) => (() => { | ||
var _ref = asyncToGenerator(function* (...args) { | ||
const evt = reporter.newEvent && reporter.newEvent(fn, args, name); | ||
if (reporter.start) { | ||
reporter.start(evt); | ||
} | ||
try { | ||
const result = yield fn(...args); | ||
if (reporter.end) { | ||
reporter.end(evt, result); | ||
} | ||
return result; | ||
} catch (err) { | ||
if (reporter.error) { | ||
reporter.error(evt, err); | ||
} | ||
throw err; | ||
} | ||
}); | ||
return function () { | ||
return _ref.apply(this, arguments); | ||
}; | ||
})()); | ||
/* | ||
* UUID-js: A js library to generate and parse UUIDs, TimeUUIDs and generate | ||
* TimeUUID based on dates for range selections. | ||
* @see http://www.ietf.org/rfc/rfc4122.txt | ||
**/ | ||
function UUIDjs() { | ||
} | ||
UUIDjs.maxFromBits = function(bits) { | ||
return Math.pow(2, bits); | ||
}; | ||
UUIDjs.limitUI04 = UUIDjs.maxFromBits(4); | ||
UUIDjs.limitUI06 = UUIDjs.maxFromBits(6); | ||
UUIDjs.limitUI08 = UUIDjs.maxFromBits(8); | ||
UUIDjs.limitUI12 = UUIDjs.maxFromBits(12); | ||
UUIDjs.limitUI14 = UUIDjs.maxFromBits(14); | ||
UUIDjs.limitUI16 = UUIDjs.maxFromBits(16); | ||
UUIDjs.limitUI32 = UUIDjs.maxFromBits(32); | ||
UUIDjs.limitUI40 = UUIDjs.maxFromBits(40); | ||
UUIDjs.limitUI48 = UUIDjs.maxFromBits(48); | ||
// Returns a random integer between min and max | ||
// Using Math.round() will give you a non-uniform distribution! | ||
// @see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/random | ||
function getRandomInt(min, max) { | ||
return Math.floor(Math.random() * (max - min + 1)) + min; | ||
} | ||
UUIDjs.randomUI04 = function() { | ||
return getRandomInt(0, UUIDjs.limitUI04-1); | ||
}; | ||
UUIDjs.randomUI06 = function() { | ||
return getRandomInt(0, UUIDjs.limitUI06-1); | ||
}; | ||
UUIDjs.randomUI08 = function() { | ||
return getRandomInt(0, UUIDjs.limitUI08-1); | ||
}; | ||
UUIDjs.randomUI12 = function() { | ||
return getRandomInt(0, UUIDjs.limitUI12-1); | ||
}; | ||
UUIDjs.randomUI14 = function() { | ||
return getRandomInt(0, UUIDjs.limitUI14-1); | ||
}; | ||
UUIDjs.randomUI16 = function() { | ||
return getRandomInt(0, UUIDjs.limitUI16-1); | ||
}; | ||
UUIDjs.randomUI32 = function() { | ||
return getRandomInt(0, UUIDjs.limitUI32-1); | ||
}; | ||
UUIDjs.randomUI40 = function() { | ||
return (0 | Math.random() * (1 << 30)) + (0 | Math.random() * (1 << 40 - 30)) * (1 << 30); | ||
}; | ||
UUIDjs.randomUI48 = function() { | ||
return (0 | Math.random() * (1 << 30)) + (0 | Math.random() * (1 << 48 - 30)) * (1 << 30); | ||
}; | ||
UUIDjs.paddedString = function(string, length, z) { | ||
string = String(string); | ||
z = (!z) ? '0' : z; | ||
var i = length - string.length; | ||
for (; i > 0; i >>>= 1, z += z) { | ||
if (i & 1) { | ||
string = z + string; | ||
} | ||
} | ||
return string; | ||
}; | ||
UUIDjs.prototype.fromParts = function(timeLow, timeMid, timeHiAndVersion, clockSeqHiAndReserved, clockSeqLow, node) { | ||
this.version = (timeHiAndVersion >> 12) & 0xF; | ||
this.hex = UUIDjs.paddedString(timeLow.toString(16), 8) | ||
+ '-' | ||
+ UUIDjs.paddedString(timeMid.toString(16), 4) | ||
+ '-' | ||
+ UUIDjs.paddedString(timeHiAndVersion.toString(16), 4) | ||
+ '-' | ||
+ UUIDjs.paddedString(clockSeqHiAndReserved.toString(16), 2) | ||
+ UUIDjs.paddedString(clockSeqLow.toString(16), 2) | ||
+ '-' | ||
+ UUIDjs.paddedString(node.toString(16), 12); | ||
return this; | ||
}; | ||
UUIDjs.prototype.toString = function() { | ||
return this.hex; | ||
}; | ||
UUIDjs.prototype.toURN = function() { | ||
return 'urn:uuid:' + this.hex; | ||
}; | ||
UUIDjs.prototype.toBytes = function() { | ||
var parts = this.hex.split('-'); | ||
var ints = []; | ||
var intPos = 0; | ||
for (var i = 0; i < parts.length; i++) { | ||
for (var j = 0; j < parts[i].length; j+=2) { | ||
ints[intPos++] = parseInt(parts[i].substr(j, 2), 16); | ||
} | ||
} | ||
return ints; | ||
}; | ||
UUIDjs.prototype.equals = function(uuid) { | ||
if (!(uuid instanceof UUID)) { | ||
return false; | ||
} | ||
if (this.hex !== uuid.hex) { | ||
return false; | ||
} | ||
return true; | ||
}; | ||
UUIDjs.getTimeFieldValues = function(time) { | ||
var ts = time - Date.UTC(1582, 9, 15); | ||
var hm = ((ts / 0x100000000) * 10000) & 0xFFFFFFF; | ||
return { low: ((ts & 0xFFFFFFF) * 10000) % 0x100000000, | ||
mid: hm & 0xFFFF, hi: hm >>> 16, timestamp: ts }; | ||
}; | ||
UUIDjs._create4 = function() { | ||
return new UUIDjs().fromParts( | ||
UUIDjs.randomUI32(), | ||
UUIDjs.randomUI16(), | ||
0x4000 | UUIDjs.randomUI12(), | ||
0x80 | UUIDjs.randomUI06(), | ||
UUIDjs.randomUI08(), | ||
UUIDjs.randomUI48() | ||
); | ||
}; | ||
UUIDjs._create1 = function() { | ||
var now = new Date().getTime(); | ||
var sequence = UUIDjs.randomUI14(); | ||
var node = (UUIDjs.randomUI08() | 1) * 0x10000000000 + UUIDjs.randomUI40(); | ||
var tick = UUIDjs.randomUI04(); | ||
var timestamp = 0; | ||
var timestampRatio = 1/4; | ||
if (now != timestamp) { | ||
if (now < timestamp) { | ||
sequence++; | ||
} | ||
timestamp = now; | ||
tick = UUIDjs.randomUI04(); | ||
} else if (Math.random() < timestampRatio && tick < 9984) { | ||
tick += 1 + UUIDjs.randomUI04(); | ||
} else { | ||
sequence++; | ||
} | ||
var tf = UUIDjs.getTimeFieldValues(timestamp); | ||
var tl = tf.low + tick; | ||
var thav = (tf.hi & 0xFFF) | 0x1000; | ||
sequence &= 0x3FFF; | ||
var cshar = (sequence >>> 8) | 0x80; | ||
var csl = sequence & 0xFF; | ||
return new UUIDjs().fromParts(tl, tf.mid, thav, cshar, csl, node); | ||
}; | ||
UUIDjs.create = function(version) { | ||
version = version || 4; | ||
return this['_create' + version](); | ||
}; | ||
UUIDjs.fromTime = function(time, last) { | ||
last = (!last) ? false : last; | ||
var tf = UUIDjs.getTimeFieldValues(time); | ||
var tl = tf.low; | ||
var thav = (tf.hi & 0xFFF) | 0x1000; // set version '0001' | ||
if (last === false) { | ||
return new UUIDjs().fromParts(tl, tf.mid, thav, 0, 0, 0); | ||
} else { | ||
return new UUIDjs().fromParts(tl, tf.mid, thav, 0x80 | UUIDjs.limitUI06, UUIDjs.limitUI08 - 1, UUIDjs.limitUI48 - 1); | ||
} | ||
}; | ||
UUIDjs.firstFromTime = function(time) { | ||
return UUIDjs.fromTime(time, false); | ||
}; | ||
UUIDjs.lastFromTime = function(time) { | ||
return UUIDjs.fromTime(time, true); | ||
}; | ||
UUIDjs.fromURN = function(strId) { | ||
var r, p = /^(?:urn:uuid:|\{)?([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{2})([0-9a-f]{2})-([0-9a-f]{12})(?:\})?$/i; | ||
if ((r = p.exec(strId))) { | ||
return new UUIDjs().fromParts(parseInt(r[1], 16), parseInt(r[2], 16), | ||
parseInt(r[3], 16), parseInt(r[4], 16), | ||
parseInt(r[5], 16), parseInt(r[6], 16)); | ||
} | ||
return null; | ||
}; | ||
UUIDjs.fromBytes = function(ints) { | ||
if (ints.length < 5) { | ||
return null; | ||
} | ||
var str = ''; | ||
var pos = 0; | ||
var parts = [4, 2, 2, 2, 6]; | ||
for (var i = 0; i < parts.length; i++) { | ||
for (var j = 0; j < parts[i]; j++) { | ||
var octet = ints[pos++].toString(16); | ||
if (octet.length == 1) { | ||
octet = '0' + octet; | ||
} | ||
str += octet; | ||
} | ||
if (parts[i] !== 6) { | ||
str += '-'; | ||
} | ||
} | ||
return UUIDjs.fromURN(str); | ||
}; | ||
UUIDjs.fromBinary = function(binary) { | ||
var ints = []; | ||
for (var i = 0; i < binary.length; i++) { | ||
ints[i] = binary.charCodeAt(i); | ||
if (ints[i] > 255 || ints[i] < 0) { | ||
throw new Error('Unexpected byte in binary data.'); | ||
} | ||
} | ||
return UUIDjs.fromBytes(ints); | ||
}; | ||
// Aliases to support legacy code. Do not use these when writing new code as | ||
// they may be removed in future versions! | ||
UUIDjs.new = function() { | ||
return this.create(4); | ||
}; | ||
UUIDjs.newTS = function() { | ||
return this.create(1); | ||
}; | ||
var uuid = UUIDjs; | ||
const nullReporter = () => ({ | ||
newHit: () => {}, | ||
start: () => {}, | ||
end: () => {}, | ||
error: () => {}, | ||
getEvents: () => [] | ||
}); | ||
const memoryReporter = () => { | ||
const events = []; | ||
return { | ||
newEvent: (fn, args, name) => { | ||
const hit = { id: uuid.create().toString(), name }; | ||
events.push(hit); | ||
return hit; | ||
}, | ||
/* eslint-disable no-param-reassign */ | ||
start: hit => { | ||
hit.start = new Date(); | ||
}, | ||
end: hit => { | ||
hit.end = new Date(); | ||
hit.error = null; | ||
}, | ||
error: (hit, _error) => { | ||
hit.end = new Date(); | ||
hit.error = _error; | ||
}, | ||
/* eslint-enable no-param-reassign */ | ||
getEvents: () => events | ||
}; | ||
}; | ||
const nullReporter$1 = nullReporter; | ||
const memoryReporter$1 = memoryReporter; | ||
const traverseResolvers = (resolvers, reporter, getResolverName, namePrefix) => { | ||
@@ -378,3 +31,3 @@ const wrapped = {}; | ||
} else if (typeof resolver === 'function') { | ||
wrapped[key] = monitor(resolver, reporter, name); | ||
wrapped[key] = (0, _monitor2.default)(resolver, reporter, name); | ||
} else { | ||
@@ -392,7 +45,7 @@ wrapped[key] = resolver; | ||
env: process && process.env && process.env.NODE_ENV === 'production', | ||
reporter: nullReporter, | ||
reporter: _reporters.nullReporter, | ||
getResolverName: (prefix = 'root', key) => `${prefix}.${key}` | ||
}; | ||
const profileResolvers = (resolvers, options = {}) => { | ||
const profileResolvers = exports.profileResolvers = (resolvers, options = {}) => { | ||
const config = _extends({}, defaultOptions, options); | ||
@@ -407,10 +60,2 @@ | ||
return traverseResolvers(resolvers, reporter, config.getResolverName); | ||
}; | ||
exports.nullReporter = nullReporter$1; | ||
exports.memoryReporter = memoryReporter$1; | ||
exports.profileResolvers = profileResolvers; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
}))); | ||
}; |
{ | ||
"name": "gql-profiler", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "A performance profiler for GraphQL resolvers", | ||
@@ -10,8 +10,9 @@ "main": "lib/index.js", | ||
"scripts": { | ||
"build": "./node_modules/.bin/rollup -c" | ||
"build": "./node_modules/.bin/babel src -d lib" | ||
}, | ||
"devDependencies": { | ||
"babel-cli": "^6.26.0", | ||
"babel-core": "^6.26.0", | ||
"babel-eslint": "^8.2.1", | ||
"babel-plugin-external-helpers": "^6.22.0", | ||
"babel-plugin-add-module-exports": "0.2.1", | ||
"babel-plugin-transform-object-rest-spread": "^6.26.0", | ||
@@ -23,11 +24,7 @@ "babel-preset-env": "^1.6.1", | ||
"eslint-plugin-jsx-a11y": "^6.0.2", | ||
"eslint-plugin-react": "^7.4.0", | ||
"rollup": "^0.55.3", | ||
"rollup-plugin-babel": "^3.0.3", | ||
"rollup-plugin-commonjs": "^8.3.0", | ||
"rollup-plugin-node-resolve": "^3.0.2" | ||
"eslint-plugin-react": "^7.4.0" | ||
}, | ||
"dependencies": { | ||
"uuid-js": "^0.7.5" | ||
"uuid": "3.2.1" | ||
} | ||
} |
@@ -1,2 +0,2 @@ | ||
import uuid from 'uuid-js'; | ||
import uuid from 'uuid'; | ||
@@ -16,3 +16,3 @@ export const nullReporter = () => ({ | ||
newEvent: (fn, args, name) => { | ||
const hit = { id: uuid.create().toString(), name }; | ||
const hit = { id: uuid.v4(), name }; | ||
events.push(hit); | ||
@@ -19,0 +19,0 @@ return hit; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
106239
11
13
196
5
1
+ Addeduuid@3.2.1
+ Addeduuid@3.2.1(transitive)
- Removeduuid-js@^0.7.5
- Removeduuid-js@0.7.5(transitive)