Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gql-profiler

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gql-profiler - npm Package Compare versions

Comparing version 0.0.3 to 0.0.4

lib/monitor.js

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

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