@atlaskit/react-ufo 3.4.4 → 3.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @atlaskit/ufo-interaction-ignore
2
2
 
3
+ ## 3.4.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#130268](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/130268)
8
+ [`597d9e0c5582d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/597d9e0c5582d) -
9
+ use requestIdleCallback for payload creation if its available
10
+
3
11
  ## 3.4.4
4
12
 
5
13
  ### Patch Changes
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.init = void 0;
8
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _scheduler = require("scheduler");
11
10
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
11
  var _additionalPayload = require("../additional-payload");
13
12
  var _config = require("../config");
@@ -15,12 +14,13 @@ var _createExperimentalInteractionMetricsPayload = require("../create-experiment
15
14
  var _hiddenTiming = require("../hidden-timing");
16
15
  var _interactionMetrics = require("../interaction-metrics");
17
16
  var _vc = require("../vc");
17
+ var _scheduleIdleCallback = _interopRequireDefault(require("./schedule-idle-callback"));
18
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != (0, _typeof2.default)(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
20
  var initialized = false;
21
21
  function sinkInteraction(instance, payloadPackage) {
22
22
  (0, _interactionMetrics.sinkInteractionHandler)(function (interactionId, interaction) {
23
- (0, _scheduler.unstable_scheduleCallback)(_scheduler.unstable_IdlePriority, function () {
23
+ (0, _scheduleIdleCallback.default)(function () {
24
24
  payloadPackage.createPayloads(interactionId, interaction).then(function (payloads) {
25
25
  // NOTE: This API is used by the UFO DevTool Chrome Extension and Criterion
26
26
  var devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
@@ -38,7 +38,7 @@ function sinkInteraction(instance, payloadPackage) {
38
38
  }
39
39
  function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
40
40
  (0, _createExperimentalInteractionMetricsPayload.sinkExperimentalHandler)(function (interactionId, interaction) {
41
- (0, _scheduler.unstable_scheduleCallback)(_scheduler.unstable_IdlePriority, function () {
41
+ (0, _scheduleIdleCallback.default)(function () {
42
42
  var payloadPromise = payloadPackage.createExperimentalMetricsPayload(interactionId, interaction);
43
43
  payloadPromise.then(function (payload) {
44
44
  if (payload) {
@@ -57,7 +57,7 @@ function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
57
57
  }
58
58
  function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
59
59
  (0, _interactionMetrics.sinkPostInteractionLogHandler)(function (logOutput) {
60
- (0, _scheduler.unstable_scheduleCallback)(_scheduler.unstable_IdlePriority, function () {
60
+ (0, _scheduleIdleCallback.default)(function () {
61
61
  var payload = createPostInteractionLogPayload(logOutput);
62
62
  if (payload) {
63
63
  // NOTE: This API is used by the UFO DevTool Chrome Extension and also by Criterion
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = scheduleIdleCallback;
7
+ var _scheduler = require("scheduler");
8
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
9
+ function scheduleIdleCallback(work) {
10
+ if (typeof window !== 'undefined' && typeof window.requestIdleCallback === 'function' && (0, _platformFeatureFlags.fg)('ufo_payload_use_idle_callback')) {
11
+ window.requestIdleCallback(work);
12
+ } else {
13
+ (0, _scheduler.unstable_scheduleCallback)(_scheduler.unstable_IdlePriority, work);
14
+ }
15
+ }
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.getVCObserver = void 0;
8
+ exports.isEnvironmentSupported = isEnvironmentSupported;
8
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -114,12 +115,13 @@ var VCObserverWrapper = /*#__PURE__*/function () {
114
115
  (_this$oldVCObserver7 = this.oldVCObserver) === null || _this$oldVCObserver7 === void 0 || _this$oldVCObserver7.setReactRootRenderStop(stopTime || performance.now());
115
116
  }
116
117
  }]);
117
- }();
118
+ }(); // Some products set this variable to indicate it is running in SSR
118
119
  var isServer = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.__SERVER__);
119
- var isReactSSR = isServer && Boolean(((_process = process) === null || _process === void 0 ? void 0 : _process.env.REACT_SSR) || false);
120
+ // Other products set this other variable to indicate it is running in SSR
121
+ var isReactSSR = typeof process !== 'undefined' && Boolean(((_process = process) === null || _process === void 0 || (_process = _process.env) === null || _process === void 0 ? void 0 : _process.REACT_SSR) || false);
120
122
  function isEnvironmentSupported() {
121
123
  // SSR environment aren't supported
122
- if (isReactSSR) {
124
+ if (isReactSSR || isServer) {
123
125
  return false;
124
126
  }
125
127
 
@@ -1,4 +1,3 @@
1
- import { unstable_IdlePriority as idlePriority, unstable_scheduleCallback as scheduleCallback } from 'scheduler';
2
1
  import { fg } from '@atlaskit/platform-feature-flags';
3
2
  import { startLighthouseObserver } from '../additional-payload';
4
3
  import { setUFOConfig } from '../config';
@@ -6,10 +5,11 @@ import { experimentalVC, sinkExperimentalHandler } from '../create-experimental-
6
5
  import { setupHiddenTimingCapture } from '../hidden-timing';
7
6
  import { postInteractionLog, sinkInteractionHandler, sinkPostInteractionLogHandler } from '../interaction-metrics';
8
7
  import { getVCObserver } from '../vc';
8
+ import scheduleIdleCallback from './schedule-idle-callback';
9
9
  let initialized = false;
10
10
  function sinkInteraction(instance, payloadPackage) {
11
11
  sinkInteractionHandler((interactionId, interaction) => {
12
- scheduleCallback(idlePriority, () => {
12
+ scheduleIdleCallback(() => {
13
13
  payloadPackage.createPayloads(interactionId, interaction).then(payloads => {
14
14
  // NOTE: This API is used by the UFO DevTool Chrome Extension and Criterion
15
15
  const devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
@@ -27,7 +27,7 @@ function sinkInteraction(instance, payloadPackage) {
27
27
  }
28
28
  function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
29
29
  sinkExperimentalHandler((interactionId, interaction) => {
30
- scheduleCallback(idlePriority, () => {
30
+ scheduleIdleCallback(() => {
31
31
  const payloadPromise = payloadPackage.createExperimentalMetricsPayload(interactionId, interaction);
32
32
  payloadPromise.then(payload => {
33
33
  if (payload) {
@@ -46,7 +46,7 @@ function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
46
46
  }
47
47
  function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
48
48
  sinkPostInteractionLogHandler(logOutput => {
49
- scheduleCallback(idlePriority, () => {
49
+ scheduleIdleCallback(() => {
50
50
  const payload = createPostInteractionLogPayload(logOutput);
51
51
  if (payload) {
52
52
  // NOTE: This API is used by the UFO DevTool Chrome Extension and also by Criterion
@@ -0,0 +1,9 @@
1
+ import { unstable_IdlePriority as idlePriority, unstable_scheduleCallback as scheduleCallback } from 'scheduler';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
3
+ export default function scheduleIdleCallback(work) {
4
+ if (typeof window !== 'undefined' && typeof window.requestIdleCallback === 'function' && fg('ufo_payload_use_idle_callback')) {
5
+ window.requestIdleCallback(work);
6
+ } else {
7
+ scheduleCallback(idlePriority, work);
8
+ }
9
+ }
@@ -1,4 +1,4 @@
1
- var _process;
1
+ var _process, _process$env;
2
2
  import { fg } from '@atlaskit/platform-feature-flags';
3
3
  import { getConfig } from '../config';
4
4
  import { VCObserverNOOP } from './no-op-vc-observer';
@@ -60,11 +60,14 @@ class VCObserverWrapper {
60
60
  (_this$oldVCObserver7 = this.oldVCObserver) === null || _this$oldVCObserver7 === void 0 ? void 0 : _this$oldVCObserver7.setReactRootRenderStop(stopTime || performance.now());
61
61
  }
62
62
  }
63
- const isServer = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.__SERVER__);
64
- const isReactSSR = isServer && Boolean(((_process = process) === null || _process === void 0 ? void 0 : _process.env.REACT_SSR) || false);
65
- function isEnvironmentSupported() {
63
+
64
+ // Some products set this variable to indicate it is running in SSR
65
+ let isServer = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.__SERVER__);
66
+ // Other products set this other variable to indicate it is running in SSR
67
+ let isReactSSR = typeof process !== 'undefined' && Boolean(((_process = process) === null || _process === void 0 ? void 0 : (_process$env = _process.env) === null || _process$env === void 0 ? void 0 : _process$env.REACT_SSR) || false);
68
+ export function isEnvironmentSupported() {
66
69
  // SSR environment aren't supported
67
- if (isReactSSR) {
70
+ if (isReactSSR || isServer) {
68
71
  return false;
69
72
  }
70
73
 
@@ -1,5 +1,4 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import { unstable_IdlePriority as idlePriority, unstable_scheduleCallback as scheduleCallback } from 'scheduler';
3
2
  import { fg } from '@atlaskit/platform-feature-flags';
4
3
  import { startLighthouseObserver } from '../additional-payload';
5
4
  import { setUFOConfig } from '../config';
@@ -7,10 +6,11 @@ import { experimentalVC, sinkExperimentalHandler } from '../create-experimental-
7
6
  import { setupHiddenTimingCapture } from '../hidden-timing';
8
7
  import { postInteractionLog, sinkInteractionHandler, sinkPostInteractionLogHandler } from '../interaction-metrics';
9
8
  import { getVCObserver } from '../vc';
9
+ import scheduleIdleCallback from './schedule-idle-callback';
10
10
  var initialized = false;
11
11
  function sinkInteraction(instance, payloadPackage) {
12
12
  sinkInteractionHandler(function (interactionId, interaction) {
13
- scheduleCallback(idlePriority, function () {
13
+ scheduleIdleCallback(function () {
14
14
  payloadPackage.createPayloads(interactionId, interaction).then(function (payloads) {
15
15
  // NOTE: This API is used by the UFO DevTool Chrome Extension and Criterion
16
16
  var devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
@@ -28,7 +28,7 @@ function sinkInteraction(instance, payloadPackage) {
28
28
  }
29
29
  function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
30
30
  sinkExperimentalHandler(function (interactionId, interaction) {
31
- scheduleCallback(idlePriority, function () {
31
+ scheduleIdleCallback(function () {
32
32
  var payloadPromise = payloadPackage.createExperimentalMetricsPayload(interactionId, interaction);
33
33
  payloadPromise.then(function (payload) {
34
34
  if (payload) {
@@ -47,7 +47,7 @@ function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
47
47
  }
48
48
  function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
49
49
  sinkPostInteractionLogHandler(function (logOutput) {
50
- scheduleCallback(idlePriority, function () {
50
+ scheduleIdleCallback(function () {
51
51
  var payload = createPostInteractionLogPayload(logOutput);
52
52
  if (payload) {
53
53
  // NOTE: This API is used by the UFO DevTool Chrome Extension and also by Criterion
@@ -0,0 +1,9 @@
1
+ import { unstable_IdlePriority as idlePriority, unstable_scheduleCallback as scheduleCallback } from 'scheduler';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
3
+ export default function scheduleIdleCallback(work) {
4
+ if (typeof window !== 'undefined' && typeof window.requestIdleCallback === 'function' && fg('ufo_payload_use_idle_callback')) {
5
+ window.requestIdleCallback(work);
6
+ } else {
7
+ scheduleCallback(idlePriority, work);
8
+ }
9
+ }
@@ -107,12 +107,13 @@ var VCObserverWrapper = /*#__PURE__*/function () {
107
107
  (_this$oldVCObserver7 = this.oldVCObserver) === null || _this$oldVCObserver7 === void 0 || _this$oldVCObserver7.setReactRootRenderStop(stopTime || performance.now());
108
108
  }
109
109
  }]);
110
- }();
110
+ }(); // Some products set this variable to indicate it is running in SSR
111
111
  var isServer = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.__SERVER__);
112
- var isReactSSR = isServer && Boolean(((_process = process) === null || _process === void 0 ? void 0 : _process.env.REACT_SSR) || false);
113
- function isEnvironmentSupported() {
112
+ // Other products set this other variable to indicate it is running in SSR
113
+ var isReactSSR = typeof process !== 'undefined' && Boolean(((_process = process) === null || _process === void 0 || (_process = _process.env) === null || _process === void 0 ? void 0 : _process.REACT_SSR) || false);
114
+ export function isEnvironmentSupported() {
114
115
  // SSR environment aren't supported
115
- if (isReactSSR) {
116
+ if (isReactSSR || isServer) {
116
117
  return false;
117
118
  }
118
119
 
@@ -0,0 +1 @@
1
+ export default function scheduleIdleCallback(work: () => void): void;
@@ -2,4 +2,5 @@ import type { VCObserverInterface, VCObserverOptions } from './types';
2
2
  declare global {
3
3
  var __vcObserver: VCObserverInterface;
4
4
  }
5
+ export declare function isEnvironmentSupported(): boolean;
5
6
  export declare const getVCObserver: (opts?: VCObserverOptions) => VCObserverInterface;
@@ -0,0 +1 @@
1
+ export default function scheduleIdleCallback(work: () => void): void;
@@ -2,4 +2,5 @@ import type { VCObserverInterface, VCObserverOptions } from './types';
2
2
  declare global {
3
3
  var __vcObserver: VCObserverInterface;
4
4
  }
5
+ export declare function isEnvironmentSupported(): boolean;
5
6
  export declare const getVCObserver: (opts?: VCObserverOptions) => VCObserverInterface;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/react-ufo",
3
- "version": "3.4.4",
3
+ "version": "3.4.5",
4
4
  "description": "Parts of React UFO that are publicly available",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -183,6 +183,9 @@
183
183
  },
184
184
  "ufo_lcp": {
185
185
  "type": "boolean"
186
+ },
187
+ "ufo_payload_use_idle_callback": {
188
+ "type": "boolean"
186
189
  }
187
190
  }
188
191
  }