@atlaskit/media-common 2.11.0 → 2.12.0

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,11 @@
1
1
  # @atlaskit/media-common
2
2
 
3
+ ## 2.12.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`bac667f95d5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bac667f95d5) - Export utility filterFeatureFlagNames and type RequiredMediaFeatureFlags
8
+
3
9
  ## 2.11.0
4
10
 
5
11
  ### Minor Changes
package/dist/cjs/index.js CHANGED
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "downloadUrl", {
33
33
  return _downloadUrl.downloadUrl;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "filterFeatureFlagNames", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _mediaFeatureFlags.filterFeatureFlagNames;
40
+ }
41
+ });
36
42
  Object.defineProperty(exports, "getMediaFeatureFlag", {
37
43
  enumerable: true,
38
44
  get: function get() {
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports.defaultMediaFeatureFlags = exports.areEqualFeatureFlags = void 0;
8
+ exports.filterFeatureFlagNames = exports.defaultMediaFeatureFlags = exports.areEqualFeatureFlags = void 0;
7
9
  exports.getMediaFeatureFlag = getMediaFeatureFlag;
8
10
  exports.useMemoizeFeatureFlags = void 0;
9
11
 
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var _react = require("react");
11
15
 
12
16
  var _mediaFeatureFlagLocal = require("./mediaFeatureFlag-local");
@@ -62,7 +66,7 @@ Object.keys(defaultMediaFeatureFlags).forEach(function (flagName) {
62
66
  // eslint-disable-next-line no-console
63
67
  console.info("%c* LOCAL * MediaFeatureFlag.".concat(flagName, " = ").concat(localOverride), 'font-weight:bold;color:cyan');
64
68
  }
65
- });
69
+ }); // With this type we ensure the object will contain all the flags
66
70
 
67
71
  var areEqualFeatureFlags = function areEqualFeatureFlags(ffA, ffB) {
68
72
  if (!ffA && !ffB) {
@@ -71,8 +75,7 @@ var areEqualFeatureFlags = function areEqualFeatureFlags(ffA, ffB) {
71
75
 
72
76
  if (!ffA || !ffB) {
73
77
  return false;
74
- } // With this type we ensure this object will compare all the flags
75
-
78
+ }
76
79
 
77
80
  var results = {
78
81
  newCardExperience: ffA.newCardExperience === ffB.newCardExperience,
@@ -99,4 +102,22 @@ var useMemoizeFeatureFlags = function useMemoizeFeatureFlags(featureFlags) {
99
102
  return ref.current;
100
103
  };
101
104
 
102
- exports.useMemoizeFeatureFlags = useMemoizeFeatureFlags;
105
+ exports.useMemoizeFeatureFlags = useMemoizeFeatureFlags;
106
+
107
+ var filterFeatureFlagNames = function filterFeatureFlagNames(flags) {
108
+ var pairs = Object.entries(flags);
109
+ return pairs.filter(function (_ref) {
110
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
111
+ _key = _ref2[0],
112
+ value = _ref2[1];
113
+
114
+ return !!value;
115
+ }).map(function (_ref3) {
116
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 1),
117
+ key = _ref4[0];
118
+
119
+ return key;
120
+ });
121
+ };
122
+
123
+ exports.filterFeatureFlagNames = filterFeatureFlagNames;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-common",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "sideEffects": false
5
5
  }
@@ -2,7 +2,7 @@ export { downloadUrl } from './downloadUrl'; // Warning! You can't add new media
2
2
  // See packages/media/media-core/src/__tests__/cache-backward-compatibility.spec.ts
3
3
 
4
4
  // Media Feature Flags
5
- export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags } from './mediaFeatureFlags';
5
+ export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags, filterFeatureFlagNames } from './mediaFeatureFlags';
6
6
  // Analytics context
7
7
  export { withMediaAnalyticsContext } from './analytics/withMediaAnalyticsContext'; // Analytics constants
8
8
 
@@ -49,7 +49,8 @@ Object.keys(defaultMediaFeatureFlags).forEach(flagName => {
49
49
  // eslint-disable-next-line no-console
50
50
  console.info(`%c* LOCAL * MediaFeatureFlag.${flagName} = ${localOverride}`, 'font-weight:bold;color:cyan');
51
51
  }
52
- });
52
+ }); // With this type we ensure the object will contain all the flags
53
+
53
54
  export const areEqualFeatureFlags = (ffA, ffB) => {
54
55
  if (!ffA && !ffB) {
55
56
  return true;
@@ -57,8 +58,7 @@ export const areEqualFeatureFlags = (ffA, ffB) => {
57
58
 
58
59
  if (!ffA || !ffB) {
59
60
  return false;
60
- } // With this type we ensure this object will compare all the flags
61
-
61
+ }
62
62
 
63
63
  const results = {
64
64
  newCardExperience: ffA.newCardExperience === ffB.newCardExperience,
@@ -78,4 +78,8 @@ export const useMemoizeFeatureFlags = featureFlags => {
78
78
  }
79
79
 
80
80
  return ref.current;
81
+ };
82
+ export const filterFeatureFlagNames = flags => {
83
+ const pairs = Object.entries(flags);
84
+ return pairs.filter(([_key, value]) => !!value).map(([key]) => key);
81
85
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-common",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "sideEffects": false
5
5
  }
package/dist/esm/index.js CHANGED
@@ -2,7 +2,7 @@ export { downloadUrl } from './downloadUrl'; // Warning! You can't add new media
2
2
  // See packages/media/media-core/src/__tests__/cache-backward-compatibility.spec.ts
3
3
 
4
4
  // Media Feature Flags
5
- export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags } from './mediaFeatureFlags';
5
+ export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags, filterFeatureFlagNames } from './mediaFeatureFlags';
6
6
  // Analytics context
7
7
  export { withMediaAnalyticsContext } from './analytics/withMediaAnalyticsContext'; // Analytics constants
8
8
 
@@ -1,3 +1,4 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import { useRef } from 'react';
2
3
  import { getLocalMediaFeatureFlag } from './mediaFeatureFlag-local'; // Media feature flags - type and defaults defined here in one source of truth
3
4
 
@@ -49,7 +50,8 @@ Object.keys(defaultMediaFeatureFlags).forEach(function (flagName) {
49
50
  // eslint-disable-next-line no-console
50
51
  console.info("%c* LOCAL * MediaFeatureFlag.".concat(flagName, " = ").concat(localOverride), 'font-weight:bold;color:cyan');
51
52
  }
52
- });
53
+ }); // With this type we ensure the object will contain all the flags
54
+
53
55
  export var areEqualFeatureFlags = function areEqualFeatureFlags(ffA, ffB) {
54
56
  if (!ffA && !ffB) {
55
57
  return true;
@@ -57,8 +59,7 @@ export var areEqualFeatureFlags = function areEqualFeatureFlags(ffA, ffB) {
57
59
 
58
60
  if (!ffA || !ffB) {
59
61
  return false;
60
- } // With this type we ensure this object will compare all the flags
61
-
62
+ }
62
63
 
63
64
  var results = {
64
65
  newCardExperience: ffA.newCardExperience === ffB.newCardExperience,
@@ -80,4 +81,19 @@ export var useMemoizeFeatureFlags = function useMemoizeFeatureFlags(featureFlags
80
81
  }
81
82
 
82
83
  return ref.current;
84
+ };
85
+ export var filterFeatureFlagNames = function filterFeatureFlagNames(flags) {
86
+ var pairs = Object.entries(flags);
87
+ return pairs.filter(function (_ref) {
88
+ var _ref2 = _slicedToArray(_ref, 2),
89
+ _key = _ref2[0],
90
+ value = _ref2[1];
91
+
92
+ return !!value;
93
+ }).map(function (_ref3) {
94
+ var _ref4 = _slicedToArray(_ref3, 1),
95
+ key = _ref4[0];
96
+
97
+ return key;
98
+ });
83
99
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-common",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,8 +1,8 @@
1
1
  export { downloadUrl } from './downloadUrl';
2
2
  export declare type MediaType = 'doc' | 'audio' | 'video' | 'image' | 'archive' | 'unknown';
3
3
  export declare type FileStatus = 'uploading' | 'processing' | 'processed' | 'error' | 'failed-processing';
4
- export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags, } from './mediaFeatureFlags';
5
- export type { MediaFeatureFlags, WithMediaFeatureFlags, } from './mediaFeatureFlags';
4
+ export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags, filterFeatureFlagNames, } from './mediaFeatureFlags';
5
+ export type { MediaFeatureFlags, WithMediaFeatureFlags, RequiredMediaFeatureFlags, } from './mediaFeatureFlags';
6
6
  export interface NumericalCardDimensions {
7
7
  width: number;
8
8
  height: number;
@@ -21,5 +21,7 @@ export declare const defaultMediaFeatureFlags: Required<MediaFeatureFlags>;
21
21
  * (you will see a warning in console if override used)
22
22
  * */
23
23
  export declare function getMediaFeatureFlag<T = boolean>(flagName: keyof MediaFeatureFlags, featureFlags?: MediaFeatureFlags): T;
24
+ export declare type RequiredMediaFeatureFlags = Record<keyof Required<MediaFeatureFlags>, boolean>;
24
25
  export declare const areEqualFeatureFlags: (ffA?: MediaFeatureFlags | undefined, ffB?: MediaFeatureFlags | undefined) => boolean;
25
26
  export declare const useMemoizeFeatureFlags: (featureFlags?: MediaFeatureFlags | undefined) => MediaFeatureFlags | undefined;
27
+ export declare const filterFeatureFlagNames: (flags: RequiredMediaFeatureFlags) => Array<keyof MediaFeatureFlags>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/media-common",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "description": "Includes common utilities used by other media packages",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -44,12 +44,12 @@
44
44
  },
45
45
  "devDependencies": {
46
46
  "@atlaskit/docs": "*",
47
- "@atlaskit/media-test-helpers": "^29.2.0",
47
+ "@atlaskit/media-test-helpers": "^29.4.0",
48
48
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
49
49
  "enzyme": "^3.10.0",
50
50
  "react": "^16.8.0",
51
51
  "react-dom": "^16.8.0",
52
- "typescript": "3.9.6"
52
+ "typescript": "3.9.10"
53
53
  },
54
54
  "prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.1"
55
55
  }