@atlaskit/util-service-support 6.0.2 → 6.1.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 +24 -0
- package/build/tsconfig.json +6 -2
- package/dist/cjs/index.js +46 -7
- package/dist/cjs/serviceResources.js +71 -43
- package/dist/cjs/serviceUtils.js +131 -90
- package/dist/cjs/types.js +23 -4
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/index.js +1 -2
- package/dist/es2019/serviceResources.js +48 -40
- package/dist/es2019/serviceUtils.js +106 -87
- package/dist/es2019/types.js +15 -3
- package/dist/es2019/version.json +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/serviceResources.js +61 -42
- package/dist/esm/serviceUtils.js +122 -90
- package/dist/esm/types.js +15 -3
- package/dist/esm/version.json +1 -1
- package/dist/types/types.d.ts +1 -0
- package/package.json +7 -6
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/serviceResources.js.map +0 -1
- package/dist/cjs/serviceUtils.js.map +0 -1
- package/dist/cjs/types.js.map +0 -1
- package/dist/es2019/index.d.ts +0 -4
- package/dist/es2019/index.js.map +0 -1
- package/dist/es2019/serviceResources.d.ts +0 -12
- package/dist/es2019/serviceResources.js.map +0 -1
- package/dist/es2019/serviceUtils.d.ts +0 -5
- package/dist/es2019/serviceUtils.js.map +0 -1
- package/dist/es2019/types.d.ts +0 -79
- package/dist/es2019/types.js.map +0 -1
- package/dist/esm/index.d.ts +0 -4
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/serviceResources.d.ts +0 -12
- package/dist/esm/serviceResources.js.map +0 -1
- package/dist/esm/serviceUtils.d.ts +0 -5
- package/dist/esm/serviceUtils.js.map +0 -1
- package/dist/esm/types.d.ts +0 -79
- package/dist/esm/types.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @atlaskit/util-service-support
|
|
2
2
|
|
|
3
|
+
## 6.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Remove unused polyfills
|
|
8
|
+
|
|
9
|
+
## 6.0.5
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`dfe01a5dad7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/dfe01a5dad7) - Added ability to ignore JSON payload on status.ok responses
|
|
14
|
+
|
|
15
|
+
## 6.0.4
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [`0241ccdf088`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0241ccdf088) - Accept paths which already have a leading slash.
|
|
20
|
+
|
|
21
|
+
## 6.0.3
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- [`d3265f19be`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d3265f19be) - Transpile packages using babel rather than tsc
|
|
26
|
+
|
|
3
27
|
## 6.0.2
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/build/tsconfig.json
CHANGED
package/dist/cjs/index.js
CHANGED
|
@@ -1,9 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
var _exportNames = {
|
|
9
|
+
utils: true
|
|
10
|
+
};
|
|
3
11
|
exports.utils = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
12
|
+
|
|
13
|
+
var _types = require("./types");
|
|
14
|
+
|
|
15
|
+
Object.keys(_types).forEach(function (key) {
|
|
16
|
+
if (key === "default" || key === "__esModule") return;
|
|
17
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
18
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
19
|
+
Object.defineProperty(exports, key, {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _types[key];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
var _serviceResources = require("./serviceResources");
|
|
28
|
+
|
|
29
|
+
Object.keys(_serviceResources).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
32
|
+
if (key in exports && exports[key] === _serviceResources[key]) return;
|
|
33
|
+
Object.defineProperty(exports, key, {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function get() {
|
|
36
|
+
return _serviceResources[key];
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
var serviceUtils = _interopRequireWildcard(require("./serviceUtils"));
|
|
42
|
+
|
|
43
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
44
|
+
|
|
45
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
46
|
+
|
|
47
|
+
var utils = serviceUtils;
|
|
48
|
+
exports.utils = utils;
|
|
@@ -1,47 +1,75 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
3
8
|
exports.AbstractResource = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var AbstractResource = /*#__PURE__*/function () {
|
|
17
|
+
function AbstractResource() {
|
|
18
|
+
(0, _classCallCheck2.default)(this, AbstractResource);
|
|
19
|
+
(0, _defineProperty2.default)(this, "listeners", new Set());
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
(0, _createClass2.default)(AbstractResource, [{
|
|
23
|
+
key: "subscribe",
|
|
24
|
+
value: function subscribe(onChange) {
|
|
25
|
+
this.listeners.add(onChange);
|
|
26
|
+
|
|
27
|
+
if (this.lastResult) {
|
|
28
|
+
// Notify subscribe of last result (i.e. initial state)
|
|
29
|
+
onChange.result(this.lastResult);
|
|
30
|
+
}
|
|
7
31
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
32
|
+
}, {
|
|
33
|
+
key: "unsubscribe",
|
|
34
|
+
value: function unsubscribe(onChange) {
|
|
35
|
+
this.listeners.delete(onChange);
|
|
36
|
+
}
|
|
37
|
+
}, {
|
|
38
|
+
key: "notifyResult",
|
|
39
|
+
value: function notifyResult(result) {
|
|
40
|
+
this.listeners.forEach(function (onChange) {
|
|
41
|
+
onChange.result(result);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
key: "notifyError",
|
|
46
|
+
value: function notifyError(error) {
|
|
47
|
+
this.listeners.forEach(function (onChange) {
|
|
48
|
+
if (onChange.error) {
|
|
49
|
+
onChange.error(error);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}, {
|
|
54
|
+
key: "notifyInfo",
|
|
55
|
+
value: function notifyInfo(info) {
|
|
56
|
+
this.listeners.forEach(function (onChange) {
|
|
57
|
+
if (onChange.info) {
|
|
58
|
+
onChange.info(info);
|
|
13
59
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
AbstractResource.prototype.notifyInfo = function (info) {
|
|
31
|
-
this.listeners.forEach(function (onChange) {
|
|
32
|
-
if (onChange.info) {
|
|
33
|
-
onChange.info(info);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
AbstractResource.prototype.notifyNotReady = function () {
|
|
38
|
-
this.listeners.forEach(function (onChange) {
|
|
39
|
-
if (onChange.notReady) {
|
|
40
|
-
onChange.notReady();
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
return AbstractResource;
|
|
45
|
-
}());
|
|
46
|
-
exports.AbstractResource = AbstractResource;
|
|
47
|
-
//# sourceMappingURL=serviceResources.js.map
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}, {
|
|
63
|
+
key: "notifyNotReady",
|
|
64
|
+
value: function notifyNotReady() {
|
|
65
|
+
this.listeners.forEach(function (onChange) {
|
|
66
|
+
if (onChange.notReady) {
|
|
67
|
+
onChange.notReady();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}]);
|
|
72
|
+
return AbstractResource;
|
|
73
|
+
}();
|
|
74
|
+
|
|
75
|
+
exports.AbstractResource = AbstractResource;
|
package/dist/cjs/serviceUtils.js
CHANGED
|
@@ -1,106 +1,147 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
3
8
|
exports.requestService = void 0;
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _types = require("./types");
|
|
13
|
+
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
+
|
|
9
18
|
var defaultRequestServiceOptions = {};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
|
|
20
|
+
var buildUrl = function buildUrl(baseUrl) {
|
|
21
|
+
var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
22
|
+
var queryParams = arguments.length > 2 ? arguments[2] : undefined;
|
|
23
|
+
var secOptions = arguments.length > 3 ? arguments[3] : undefined;
|
|
24
|
+
var searchParam = new URLSearchParams( // For relative urls, the URL class requires base to be set. It's ignored if a url is not relative.
|
|
25
|
+
// Since we only care about search params it is fine to have any base url here.
|
|
26
|
+
new URL(baseUrl, 'https://BASE_FALLBACK').search || undefined);
|
|
27
|
+
baseUrl = baseUrl.split('?')[0];
|
|
28
|
+
|
|
29
|
+
if (queryParams) {
|
|
30
|
+
for (var key in queryParams) {
|
|
31
|
+
if ({}.hasOwnProperty.call(queryParams, key)) {
|
|
32
|
+
searchParam.append(key, queryParams[key]);
|
|
33
|
+
}
|
|
20
34
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (secOptions && secOptions.params) {
|
|
38
|
+
for (var _key in secOptions.params) {
|
|
39
|
+
if ({}.hasOwnProperty.call(secOptions.params, _key)) {
|
|
40
|
+
var values = secOptions.params[_key];
|
|
41
|
+
|
|
42
|
+
if (Array.isArray(values)) {
|
|
43
|
+
for (var i = 0; i < values.length; i++) {
|
|
44
|
+
searchParam.append(_key, values[i]);
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
searchParam.append(_key, values);
|
|
34
48
|
}
|
|
49
|
+
}
|
|
35
50
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
var separator = '';
|
|
54
|
+
|
|
55
|
+
if (path && baseUrl.substr(-1) !== '/' && !path.startsWith('/')) {
|
|
56
|
+
separator = '/';
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
var params = searchParam.toString();
|
|
60
|
+
|
|
61
|
+
if (params) {
|
|
62
|
+
params = '?' + params;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return "".concat(baseUrl).concat(separator).concat(path).concat(params);
|
|
45
66
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
67
|
+
|
|
68
|
+
var addToHeaders = function addToHeaders(headers, keyValues) {
|
|
69
|
+
if (keyValues) {
|
|
70
|
+
for (var key in keyValues) {
|
|
71
|
+
if ({}.hasOwnProperty.call(keyValues, key)) {
|
|
72
|
+
var values = keyValues[key];
|
|
73
|
+
|
|
74
|
+
if (Array.isArray(values)) {
|
|
75
|
+
for (var i = 0; i < values.length; i++) {
|
|
76
|
+
headers[key] = values[i];
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
headers[key] = values;
|
|
60
80
|
}
|
|
81
|
+
}
|
|
61
82
|
}
|
|
83
|
+
}
|
|
62
84
|
};
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
85
|
+
|
|
86
|
+
var buildHeaders = function buildHeaders(secOptions, extraHeaders) {
|
|
87
|
+
var headers = {};
|
|
88
|
+
addToHeaders(headers, extraHeaders);
|
|
89
|
+
|
|
90
|
+
if (secOptions) {
|
|
91
|
+
addToHeaders(headers, secOptions.headers);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return headers;
|
|
70
95
|
};
|
|
71
96
|
/**
|
|
72
97
|
* @returns Promise containing the json response
|
|
73
98
|
*/
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
var requestService = function requestService(serviceConfig, options) {
|
|
102
|
+
var url = serviceConfig.url,
|
|
103
|
+
securityProvider = serviceConfig.securityProvider,
|
|
104
|
+
refreshedSecurityProvider = serviceConfig.refreshedSecurityProvider;
|
|
105
|
+
|
|
106
|
+
var _ref = options || defaultRequestServiceOptions,
|
|
107
|
+
path = _ref.path,
|
|
108
|
+
queryParams = _ref.queryParams,
|
|
109
|
+
requestInit = _ref.requestInit;
|
|
110
|
+
|
|
111
|
+
var secOptions = securityProvider && securityProvider();
|
|
112
|
+
var requestUrl = buildUrl(url, path, queryParams, secOptions);
|
|
113
|
+
var headers = buildHeaders(secOptions, requestInit && requestInit.headers);
|
|
114
|
+
var credentials = (0, _types.buildCredentials)(secOptions);
|
|
115
|
+
var ignoreResponsePayload = (options === null || options === void 0 ? void 0 : options.ignoreResponsePayload) || false;
|
|
116
|
+
|
|
117
|
+
var requestOptions = _objectSpread(_objectSpread({}, requestInit), {}, {
|
|
118
|
+
headers: headers,
|
|
119
|
+
credentials: credentials
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
return fetch(requestUrl, requestOptions).then(function (response) {
|
|
123
|
+
if (response.status === 204) {
|
|
124
|
+
return Promise.resolve();
|
|
125
|
+
} else if (response.ok) {
|
|
126
|
+
return ignoreResponsePayload ? Promise.resolve() : response.json();
|
|
127
|
+
} else if (response.status === 401 && refreshedSecurityProvider) {
|
|
128
|
+
// auth issue - try once
|
|
129
|
+
return refreshedSecurityProvider().then(function (newSecOptions) {
|
|
130
|
+
var retryServiceConfig = {
|
|
131
|
+
url: url,
|
|
132
|
+
securityProvider: function securityProvider() {
|
|
133
|
+
return newSecOptions;
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
return requestService(retryServiceConfig, options);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return Promise.reject({
|
|
141
|
+
code: response.status,
|
|
142
|
+
reason: response.statusText
|
|
104
143
|
});
|
|
144
|
+
});
|
|
105
145
|
};
|
|
106
|
-
|
|
146
|
+
|
|
147
|
+
exports.requestService = requestService;
|
package/dist/cjs/types.js
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
3
6
|
exports.buildCredentials = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Defines a typical Resource.
|
|
10
|
+
*
|
|
11
|
+
* Q = query type
|
|
12
|
+
* R = result type
|
|
13
|
+
* E = error type
|
|
14
|
+
* I = info type
|
|
15
|
+
* O = options that filter can accept
|
|
16
|
+
*/
|
|
17
|
+
var buildCredentials = function buildCredentials(secOptions) {
|
|
18
|
+
return secOptions && secOptions.omitCredentials ? 'omit' : 'include';
|
|
6
19
|
};
|
|
7
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Returns a promise to a SecurityOptions that has just been forcibly refreshed with a
|
|
22
|
+
* new token. Will be used for single retry per request if a 401 is returned.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
exports.buildCredentials = buildCredentials;
|
package/dist/cjs/version.json
CHANGED
package/dist/es2019/index.js
CHANGED
|
@@ -1,42 +1,50 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
1
2
|
export class AbstractResource {
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
constructor() {
|
|
4
|
+
_defineProperty(this, "listeners", new Set());
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
subscribe(onChange) {
|
|
8
|
+
this.listeners.add(onChange);
|
|
9
|
+
|
|
10
|
+
if (this.lastResult) {
|
|
11
|
+
// Notify subscribe of last result (i.e. initial state)
|
|
12
|
+
onChange.result(this.lastResult);
|
|
4
13
|
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=serviceResources.js.map
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
unsubscribe(onChange) {
|
|
17
|
+
this.listeners.delete(onChange);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
notifyResult(result) {
|
|
21
|
+
this.listeners.forEach(onChange => {
|
|
22
|
+
onChange.result(result);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
notifyError(error) {
|
|
27
|
+
this.listeners.forEach(onChange => {
|
|
28
|
+
if (onChange.error) {
|
|
29
|
+
onChange.error(error);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
notifyInfo(info) {
|
|
35
|
+
this.listeners.forEach(onChange => {
|
|
36
|
+
if (onChange.info) {
|
|
37
|
+
onChange.info(info);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
notifyNotReady() {
|
|
43
|
+
this.listeners.forEach(onChange => {
|
|
44
|
+
if (onChange.notReady) {
|
|
45
|
+
onChange.notReady();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|