@atlaskit/link-client-extension 1.7.3 → 1.8.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/link-client-extension
2
2
 
3
+ ## 1.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#42199](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42199) [`896e6300360`](https://bitbucket.org/atlassian/atlassian-frontend/commits/896e6300360) - Add api to make GET request to related-urls endpoint
8
+
3
9
  ## 1.7.3
4
10
 
5
11
  ### Patch Changes
@@ -26,16 +26,16 @@ var useDatasourceClientExtension = exports.useDatasourceClientExtension = functi
26
26
  var resolverUrl = (0, _useResolverUrl.useResolverUrl)(client);
27
27
  var cachedRequest = /*#__PURE__*/function () {
28
28
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(datasourceId, data, url, lruMap, force) {
29
- var dataWithSortedFields, cacheKey, responsePromise;
29
+ var cacheKeyData, cacheKey, responsePromise;
30
30
  return _regenerator.default.wrap(function _callee$(_context) {
31
31
  while (1) switch (_context.prev = _context.next) {
32
32
  case 0:
33
- dataWithSortedFields = _objectSpread(_objectSpread({}, data), data.fields && {
33
+ cacheKeyData = _objectSpread(_objectSpread({}, data), 'fields' in data ? {
34
34
  fields: (0, _toConsumableArray2.default)(data.fields || []).sort()
35
- });
35
+ } : {});
36
36
  cacheKey = JSON.stringify({
37
37
  datasourceId: datasourceId,
38
- dataWithSortedFields: dataWithSortedFields
38
+ cacheKeyData: cacheKeyData
39
39
  });
40
40
  if (force) {
41
41
  lruMap.delete(cacheKey);
@@ -20,7 +20,7 @@ var _useResolverUrl = require("../use-resolver-url");
20
20
  * @param cardClient
21
21
  */
22
22
  var useSmartLinkClientExtension = exports.useSmartLinkClientExtension = function useSmartLinkClientExtension(cardClient) {
23
- var resolvedUrl = (0, _useResolverUrl.useResolverUrl)(cardClient);
23
+ var resolverUrl = (0, _useResolverUrl.useResolverUrl)(cardClient);
24
24
  var invoke = (0, _react.useCallback)( /*#__PURE__*/function () {
25
25
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(data) {
26
26
  var errorBody;
@@ -29,7 +29,7 @@ var useSmartLinkClientExtension = exports.useSmartLinkClientExtension = function
29
29
  case 0:
30
30
  _context.prev = 0;
31
31
  _context.next = 3;
32
- return (0, _linkingCommon.request)('post', "".concat(resolvedUrl, "/invoke"), data, undefined, [200, 201, 202, 203, 204]);
32
+ return (0, _linkingCommon.request)('post', "".concat(resolverUrl, "/invoke"), data, undefined, [200, 201, 202, 203, 204]);
33
33
  case 3:
34
34
  return _context.abrupt("return", _context.sent);
35
35
  case 6:
@@ -59,10 +59,32 @@ var useSmartLinkClientExtension = exports.useSmartLinkClientExtension = function
59
59
  return function (_x) {
60
60
  return _ref.apply(this, arguments);
61
61
  };
62
- }(), [resolvedUrl]);
62
+ }(), [resolverUrl]);
63
+ var relatedUrls = (0, _react.useCallback)( /*#__PURE__*/function () {
64
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(url) {
65
+ return _regenerator.default.wrap(function _callee2$(_context2) {
66
+ while (1) switch (_context2.prev = _context2.next) {
67
+ case 0:
68
+ _context2.next = 2;
69
+ return (0, _linkingCommon.request)('get', "".concat(resolverUrl, "/related-urls?url=").concat(encodeURIComponent(url)), undefined, {
70
+ 'Cache-Control': 'private'
71
+ }, [200]);
72
+ case 2:
73
+ return _context2.abrupt("return", _context2.sent);
74
+ case 3:
75
+ case "end":
76
+ return _context2.stop();
77
+ }
78
+ }, _callee2);
79
+ }));
80
+ return function (_x2) {
81
+ return _ref2.apply(this, arguments);
82
+ };
83
+ }(), [resolverUrl]);
63
84
  return (0, _react.useMemo)(function () {
64
85
  return {
65
- invoke: invoke
86
+ invoke: invoke,
87
+ relatedUrls: relatedUrls
66
88
  };
67
- }, [invoke]);
89
+ }, [invoke, relatedUrls]);
68
90
  };
@@ -15,16 +15,16 @@ export const useDatasourceClientExtension = () => {
15
15
  } = useSmartLinkContext();
16
16
  const resolverUrl = useResolverUrl(client);
17
17
  const cachedRequest = async (datasourceId, data, url, lruMap, force) => {
18
- const dataWithSortedFields = {
18
+ const cacheKeyData = {
19
19
  ...data,
20
20
  // Sort fields to use cached version of response regardless of the order
21
- ...(data.fields && {
21
+ ...('fields' in data ? {
22
22
  fields: [...(data.fields || [])].sort()
23
- })
23
+ } : {})
24
24
  };
25
25
  const cacheKey = JSON.stringify({
26
26
  datasourceId,
27
- dataWithSortedFields
27
+ cacheKeyData
28
28
  });
29
29
  if (force) {
30
30
  lruMap.delete(cacheKey);
@@ -12,10 +12,10 @@ import { useResolverUrl } from '../use-resolver-url';
12
12
  * @param cardClient
13
13
  */
14
14
  export const useSmartLinkClientExtension = cardClient => {
15
- const resolvedUrl = useResolverUrl(cardClient);
15
+ const resolverUrl = useResolverUrl(cardClient);
16
16
  const invoke = useCallback(async data => {
17
17
  try {
18
- return await request('post', `${resolvedUrl}/invoke`, data, undefined, [200, 201, 202, 203, 204]);
18
+ return await request('post', `${resolverUrl}/invoke`, data, undefined, [200, 201, 202, 203, 204]);
19
19
  } catch (err) {
20
20
  // checking if the error is a Response type
21
21
  // since we already had a few HOTs caused by comparing with instanceOf',
@@ -28,8 +28,14 @@ export const useSmartLinkClientExtension = cardClient => {
28
28
  }
29
29
  throw err;
30
30
  }
31
- }, [resolvedUrl]);
31
+ }, [resolverUrl]);
32
+ const relatedUrls = useCallback(async url => {
33
+ return await request('get', `${resolverUrl}/related-urls?url=${encodeURIComponent(url)}`, undefined, {
34
+ 'Cache-Control': 'private'
35
+ }, [200]);
36
+ }, [resolverUrl]);
32
37
  return useMemo(() => ({
33
- invoke
34
- }), [invoke]);
38
+ invoke,
39
+ relatedUrls
40
+ }), [invoke, relatedUrls]);
35
41
  };
@@ -19,16 +19,16 @@ export var useDatasourceClientExtension = function useDatasourceClientExtension(
19
19
  var resolverUrl = useResolverUrl(client);
20
20
  var cachedRequest = /*#__PURE__*/function () {
21
21
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(datasourceId, data, url, lruMap, force) {
22
- var dataWithSortedFields, cacheKey, responsePromise;
22
+ var cacheKeyData, cacheKey, responsePromise;
23
23
  return _regeneratorRuntime.wrap(function _callee$(_context) {
24
24
  while (1) switch (_context.prev = _context.next) {
25
25
  case 0:
26
- dataWithSortedFields = _objectSpread(_objectSpread({}, data), data.fields && {
26
+ cacheKeyData = _objectSpread(_objectSpread({}, data), 'fields' in data ? {
27
27
  fields: _toConsumableArray(data.fields || []).sort()
28
- });
28
+ } : {});
29
29
  cacheKey = JSON.stringify({
30
30
  datasourceId: datasourceId,
31
- dataWithSortedFields: dataWithSortedFields
31
+ cacheKeyData: cacheKeyData
32
32
  });
33
33
  if (force) {
34
34
  lruMap.delete(cacheKey);
@@ -14,7 +14,7 @@ import { useResolverUrl } from '../use-resolver-url';
14
14
  * @param cardClient
15
15
  */
16
16
  export var useSmartLinkClientExtension = function useSmartLinkClientExtension(cardClient) {
17
- var resolvedUrl = useResolverUrl(cardClient);
17
+ var resolverUrl = useResolverUrl(cardClient);
18
18
  var invoke = useCallback( /*#__PURE__*/function () {
19
19
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(data) {
20
20
  var errorBody;
@@ -23,7 +23,7 @@ export var useSmartLinkClientExtension = function useSmartLinkClientExtension(ca
23
23
  case 0:
24
24
  _context.prev = 0;
25
25
  _context.next = 3;
26
- return request('post', "".concat(resolvedUrl, "/invoke"), data, undefined, [200, 201, 202, 203, 204]);
26
+ return request('post', "".concat(resolverUrl, "/invoke"), data, undefined, [200, 201, 202, 203, 204]);
27
27
  case 3:
28
28
  return _context.abrupt("return", _context.sent);
29
29
  case 6:
@@ -53,10 +53,32 @@ export var useSmartLinkClientExtension = function useSmartLinkClientExtension(ca
53
53
  return function (_x) {
54
54
  return _ref.apply(this, arguments);
55
55
  };
56
- }(), [resolvedUrl]);
56
+ }(), [resolverUrl]);
57
+ var relatedUrls = useCallback( /*#__PURE__*/function () {
58
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(url) {
59
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
60
+ while (1) switch (_context2.prev = _context2.next) {
61
+ case 0:
62
+ _context2.next = 2;
63
+ return request('get', "".concat(resolverUrl, "/related-urls?url=").concat(encodeURIComponent(url)), undefined, {
64
+ 'Cache-Control': 'private'
65
+ }, [200]);
66
+ case 2:
67
+ return _context2.abrupt("return", _context2.sent);
68
+ case 3:
69
+ case "end":
70
+ return _context2.stop();
71
+ }
72
+ }, _callee2);
73
+ }));
74
+ return function (_x2) {
75
+ return _ref2.apply(this, arguments);
76
+ };
77
+ }(), [resolverUrl]);
57
78
  return useMemo(function () {
58
79
  return {
59
- invoke: invoke
80
+ invoke: invoke,
81
+ relatedUrls: relatedUrls
60
82
  };
61
- }, [invoke]);
83
+ }, [invoke, relatedUrls]);
62
84
  };
@@ -10,4 +10,5 @@ import { InvokeRequest, InvokeResponse } from '@atlaskit/linking-types/smart-lin
10
10
  */
11
11
  export declare const useSmartLinkClientExtension: (cardClient: CardClient) => {
12
12
  invoke: (data: InvokeRequest) => Promise<InvokeResponse>;
13
+ relatedUrls: <TResponse>(url: string) => Promise<TResponse>;
13
14
  };
@@ -10,4 +10,5 @@ import { InvokeRequest, InvokeResponse } from '@atlaskit/linking-types/smart-lin
10
10
  */
11
11
  export declare const useSmartLinkClientExtension: (cardClient: CardClient) => {
12
12
  invoke: (data: InvokeRequest) => Promise<InvokeResponse>;
13
+ relatedUrls: <TResponse>(url: string) => Promise<TResponse>;
13
14
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-client-extension",
3
- "version": "1.7.3",
3
+ "version": "1.8.0",
4
4
  "description": "Extension methods for linking platform client",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -34,7 +34,7 @@
34
34
  ".": "./src/index.ts"
35
35
  },
36
36
  "dependencies": {
37
- "@atlaskit/linking-common": "^4.11.0",
37
+ "@atlaskit/linking-common": "^4.12.0",
38
38
  "@atlaskit/linking-types": "^8.4.0",
39
39
  "@babel/runtime": "^7.0.0",
40
40
  "json-ld-types": "^3.9.1",
package/report.api.md CHANGED
@@ -72,6 +72,7 @@ export const useDatasourceClientExtension: () => {
72
72
  // @public
73
73
  export const useSmartLinkClientExtension: (cardClient: CardClient) => {
74
74
  invoke: (data: InvokeRequest) => Promise<InvokeResponse>;
75
+ relatedUrls: <TResponse>(url: string) => Promise<TResponse>;
75
76
  };
76
77
 
77
78
  // (No @packageDocumentation comment for this package)
@@ -53,6 +53,7 @@ export const useDatasourceClientExtension: () => {
53
53
  // @public
54
54
  export const useSmartLinkClientExtension: (cardClient: CardClient) => {
55
55
  invoke: (data: InvokeRequest) => Promise<InvokeResponse>;
56
+ relatedUrls: <TResponse>(url: string) => Promise<TResponse>;
56
57
  };
57
58
 
58
59
  // (No @packageDocumentation comment for this package)