UNPKG

apollo-link-performance

Version:

Easily log and report on the performance of your GraphQL queries.

3 lines (2 loc) 5.46 kB
/*! apollo-link-performance - Easily log and report on the performance of your GraphQL queries. (v1.0.0) !*/ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@apollo/client"),require("rxjs")):"function"==typeof define&&define.amd?define(["exports","@apollo/client","rxjs"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["apollo-link-performance"]={},t.ApolloLink,t.map)}(this,function(t,e,o){"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function n(t){var e=function(t,e){if("object"!=r(t)||!t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var n=o.call(t,e);if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==r(e)?e:e+""}function i(t,e,o){return(e=n(e))in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}const c=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],a=["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],u=["b","kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],l=["b","kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],f=(t,e,o)=>{let r=t;return"string"==typeof e||Array.isArray(e)?r=t.toLocaleString(e,o):!0!==e&&void 0===o||(r=t.toLocaleString(void 0,o)),r},b=t=>{if("number"==typeof t)return Math.log10(t);const e=t.toString(10);return e.length+Math.log10(`0.${e.slice(0,15)}`)},s=(t,e)=>{if(void 0===e)return t;if("number"!=typeof e||!Number.isSafeInteger(e)||e<0)throw new TypeError(`Expected fixedWidth to be a non-negative integer, got ${typeof e}: ${e}`);return 0===e?t:t.length<e?t.padStart(e," "):t};function p(t,e){if("bigint"!=typeof t&&!Number.isFinite(t))throw new TypeError(`Expected a finite number, got ${typeof t}: ${t}`);const o=(e={bits:!1,binary:!1,space:!0,nonBreakingSpace:!1,...e}).bits?e.binary?l:u:e.binary?a:c,r=e.space?e.nonBreakingSpace?" ":" ":"",n="number"==typeof t?0===t:0n===t;if(e.signed&&n){return s(` 0${r}${o[0]}`,e.fixedWidth)}const i=t<0,p=i?"-":e.signed?"+":"";i&&(t=-t);const g=(t=>{const{minimumFractionDigits:e,maximumFractionDigits:o}=t;if(void 0!==e||void 0!==o)return{...void 0!==e&&{minimumFractionDigits:e},...void 0!==o&&{maximumFractionDigits:o},roundingMode:"trunc"}})(e);let m;if(t<1){m=p+f(t,e.locale,g)+r+o[0]}else{const n=Math.min(Math.floor(e.binary?("number"==typeof(y=t)?Math.log(y):b(y)*Math.log(10))/Math.log(1024):b(t)/3),o.length-1);if(t=((t,e)=>{if("number"==typeof t)return t/e;const o=t/BigInt(e),r=t%BigInt(e);return Number(o)+Number(r)/e})(t,(e.binary?1024:1e3)**n),!g){const e=Math.max(3,Math.floor(t).toString().length);t=t.toPrecision(e)}m=p+f(Number(t),e.locale,g)+r+o[n]}var y;return s(m,e.fixedWidth)}function g(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,r)}return o}function m(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?g(Object(o),!0).forEach(function(e){i(t,e,o[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):g(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})}return t}var y=1e3,d=6e4,v=36e4,O=864e5,h=2592e6,S=307584e5,j={minimumIntegerDigits:1,minimumFractionDigits:0,maximumFractionDigits:2},w=function(t,e){var o=m(m({},j),e);return t<y?"".concat(t.toLocaleString(void 0,o)," ms"):t<d?"".concat((t/y).toLocaleString(void 0,o)," sec"):t<v?"".concat((t/d).toLocaleString(void 0,o)," min"):t<O?"".concat((t/v).toLocaleString(void 0,o)," hr"):t<h?"".concat((t/O).toLocaleString(void 0,o)," days"):t<S?"".concat((t/h).toLocaleString(void 0,o)," mo"):"".concat((t/S).toLocaleString(void 0,o)," yr")};function P(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,r)}return o}function B(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?P(Object(o),!0).forEach(function(e){i(t,e,o[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):P(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})}return t}var D={debug:!1,targetDuration:500,verbose:!1};t.performanceLink=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=B(B({},D),t),n=r.debug;r.targetDuration;var i=r.verbose,c=r.onRequestStart,a=r.onRequestComplete;return new e.ApolloLink(function(t,e){var r=Date.now();return c&&c({operation:t,startTime:r}),e(t).pipe(o.map(function(e){var o=Date.now()-r,c=(new TextEncoder).encode(JSON.stringify(e)).length;if("undefined"!=typeof window&&n)try{var u=t.query.definitions[0].operation,l="[PerformanceLink] : ".concat(u," : ").concat(t.operationName," - ").concat(w(o));i?console.group(l):console.groupCollapsed(l),console.log(" Duration: "+w(o)),console.log(" Size: ".concat(p(c))),console.log(" Data: ",e),console.log(" Operation: ",t),console.groupEnd()}catch(t){console.error(t)}return a&&a({data:e,dataSize:c,duration:o,operation:t}),e}))})}});