@dereekb/util 10.1.30 → 10.2.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.
Files changed (45) hide show
  1. package/fetch/LICENSE +21 -0
  2. package/fetch/index.cjs.d.ts +1 -0
  3. package/fetch/index.cjs.js +5480 -0
  4. package/fetch/index.esm.js +5448 -0
  5. package/fetch/package.json +15 -3
  6. package/fetch/src/lib/error.d.ts +7 -0
  7. package/fetch/src/lib/fetch.d.ts +5 -5
  8. package/fetch/src/lib/fetch.page.d.ts +116 -0
  9. package/fetch/src/lib/index.d.ts +1 -0
  10. package/fetch/src/lib/json.d.ts +17 -1
  11. package/index.cjs.js +1421 -1319
  12. package/index.esm.js +1560 -1437
  13. package/package.json +10 -5
  14. package/src/lib/date/date.d.ts +14 -0
  15. package/src/lib/model/model.d.ts +1 -0
  16. package/src/lib/number/round.d.ts +2 -1
  17. package/src/lib/object/object.equal.d.ts +2 -0
  18. package/src/lib/page/page.calculator.d.ts +6 -1
  19. package/src/lib/page/page.d.ts +0 -2
  20. package/src/lib/string/char.d.ts +4 -0
  21. package/src/lib/string/replace.d.ts +29 -1
  22. package/test/CHANGELOG.md +9 -0
  23. package/test/package.json +1 -1
  24. package/test/src/lib/jest.fail.d.ts +22 -3
  25. package/test/src/lib/jest.fail.js +29 -2
  26. package/test/src/lib/jest.fail.js.map +1 -1
  27. package/fetch/CHANGELOG.md +0 -931
  28. package/fetch/src/index.js +0 -5
  29. package/fetch/src/index.js.map +0 -1
  30. package/fetch/src/lib/error.js +0 -31
  31. package/fetch/src/lib/error.js.map +0 -1
  32. package/fetch/src/lib/fetch.js +0 -177
  33. package/fetch/src/lib/fetch.js.map +0 -1
  34. package/fetch/src/lib/fetch.type.js +0 -3
  35. package/fetch/src/lib/fetch.type.js.map +0 -1
  36. package/fetch/src/lib/index.js +0 -11
  37. package/fetch/src/lib/index.js.map +0 -1
  38. package/fetch/src/lib/json.js +0 -80
  39. package/fetch/src/lib/json.js.map +0 -1
  40. package/fetch/src/lib/provider.js +0 -9
  41. package/fetch/src/lib/provider.js.map +0 -1
  42. package/fetch/src/lib/timeout.js +0 -38
  43. package/fetch/src/lib/timeout.js.map +0 -1
  44. package/fetch/src/lib/url.js +0 -102
  45. package/fetch/src/lib/url.js.map +0 -1
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./lib"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/util/fetch/src/index.ts"],"names":[],"mappings":";;;AAAA,gDAAsB"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.requireOkResponse = exports.FetchResponseError = exports.fetchOk = void 0;
4
- const make_error_1 = require("make-error");
5
- /**
6
- * Wraps the input fetch function to always pass the fetch response promise to requireOkResponse().
7
- *
8
- * @param inputFetch
9
- * @returns
10
- */
11
- function fetchOk(inputFetch) {
12
- return (input, init) => requireOkResponse(inputFetch(input, init));
13
- }
14
- exports.fetchOk = fetchOk;
15
- class FetchResponseError extends make_error_1.BaseError {
16
- constructor(response) {
17
- super(`Fetch response was a non-ok status code (${response.status}): ${response.statusText}`);
18
- this.response = response;
19
- }
20
- }
21
- exports.FetchResponseError = FetchResponseError;
22
- function requireOkResponse(responsePromise) {
23
- return responsePromise.then((response) => {
24
- if (!response.ok) {
25
- throw new FetchResponseError(response);
26
- }
27
- return response;
28
- });
29
- }
30
- exports.requireOkResponse = requireOkResponse;
31
- //# sourceMappingURL=error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../../packages/util/fetch/src/lib/error.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAEvC;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,UAAwB;IAC9C,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC;AAFD,0BAEC;AAED,MAAa,kBAAmB,SAAQ,sBAAS;IAC/C,YAAqB,QAAkB;QACrC,KAAK,CAAC,4CAA4C,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAD3E,aAAQ,GAAR,QAAQ,CAAU;IAEvC,CAAC;CACF;AAJD,gDAIC;AAED,SAAgB,iBAAiB,CAAC,eAAkC;IAClE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACvC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SACxC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AARD,8CAQC"}
@@ -1,177 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isFetchRequest = exports.headersToHeadersTuple = exports.mergeRequestHeaders = exports.mergeRequestInits = exports.fetchRequestFactory = exports.configureFetch = exports.fetchService = void 0;
4
- const util_1 = require("@dereekb/util");
5
- const error_1 = require("./error");
6
- const timeout_1 = require("./timeout");
7
- /**
8
- * Used to create a FetchService.
9
- *
10
- * @param config
11
- * @returns
12
- */
13
- function fetchService(config) {
14
- const { makeFetch: inputMakeFetch, makeRequest, baseRequest } = config;
15
- const factory = {
16
- fetchRequestFactory: (config) => fetchRequestFactory(Object.assign({ makeRequest, baseRequest }, config)),
17
- makeFetch: (config = {}) => configureFetch(Object.assign({ makeRequest, makeFetch: inputMakeFetch, baseRequest }, config)),
18
- makeRequest: config.makeRequest
19
- };
20
- return factory;
21
- }
22
- exports.fetchService = fetchService;
23
- /**
24
- * Creates a function that wraps fetch and uses a FetchRequestFactory to generate a Request before invoking Fetch.
25
- *
26
- * @param config
27
- * @returns
28
- */
29
- function configureFetch(config) {
30
- const { makeFetch: inputMakeFetch = fetch, useTimeout, requireOkResponse: inputRequireOkResponse, mapResponse } = config;
31
- let makeFetch = inputMakeFetch;
32
- if (useTimeout) {
33
- // add fetchTimeout
34
- makeFetch = (0, timeout_1.fetchTimeout)(makeFetch);
35
- }
36
- if (inputRequireOkResponse) {
37
- // Add fetchOk
38
- makeFetch = (0, error_1.fetchOk)(makeFetch);
39
- }
40
- const makeFetchRequest = fetchRequestFactory(config);
41
- return (input, init) => {
42
- let response = makeFetch(makeFetchRequest(input, init));
43
- if (mapResponse) {
44
- response = mapResponse(response);
45
- }
46
- return response;
47
- };
48
- }
49
- exports.configureFetch = configureFetch;
50
- function fetchRequestFactory(config) {
51
- const { makeRequest = (input, init) => new Request(input, init), baseUrl: inputBaseUrl, baseRequest: inputBaseRequest, timeout, requestInitFactory, useBaseUrlForConfiguredFetchRequests = false } = config;
52
- const baseUrl = inputBaseUrl ? new URL((0, util_1.removeTrailingSlashes)(inputBaseUrl)) : undefined;
53
- const baseRequest = (timeout ? Object.assign(Object.assign({}, inputBaseRequest), { timeout }) : inputBaseRequest);
54
- const buildUrl = baseUrl
55
- ? (url) => {
56
- // retain the origin and any pathname from the base url
57
- const urlPath = baseUrl.origin + (0, util_1.fixMultiSlashesInSlashPath)('/' + baseUrl.pathname + '/' + url);
58
- const result = new URL(urlPath, baseUrl);
59
- return result;
60
- }
61
- : undefined;
62
- function asFetchRequest(input) {
63
- if (isFetchRequest(input)) {
64
- return input;
65
- }
66
- else {
67
- return makeRequest(input);
68
- }
69
- }
70
- const buildRequestWithFixedUrl = buildUrl
71
- ? (input) => {
72
- let relativeUrl;
73
- let baseRequest;
74
- let request;
75
- if (typeof input === 'string') {
76
- relativeUrl = input;
77
- }
78
- else if (isFetchRequest(input)) {
79
- if (useBaseUrlForConfiguredFetchRequests) {
80
- relativeUrl = input.url; // copy the url, and use it as the base.
81
- baseRequest = input;
82
- }
83
- else {
84
- request = input;
85
- }
86
- }
87
- else {
88
- request = makeRequest(input);
89
- }
90
- if (!request) {
91
- const url = buildUrl(relativeUrl);
92
- request = makeRequest(url.href, baseRequest);
93
- }
94
- return request;
95
- }
96
- : asFetchRequest;
97
- let buildRequestInit;
98
- if (baseRequest) {
99
- function combineRequestInits(request, requestInit) {
100
- const merged = mergeRequestInits(baseRequest, requestInit);
101
- const timeout = merged.timeout === undefined ? request.timeout : merged.timeout;
102
- return Object.assign(Object.assign({}, merged), { timeout });
103
- }
104
- if (requestInitFactory) {
105
- buildRequestInit = (req, x) => requestInitFactory(req, combineRequestInits(req, x));
106
- }
107
- else {
108
- buildRequestInit = (req, x) => combineRequestInits(req, x);
109
- }
110
- }
111
- else if (requestInitFactory) {
112
- buildRequestInit = requestInitFactory;
113
- }
114
- else {
115
- buildRequestInit = (_, x) => x;
116
- }
117
- return (input, init) => {
118
- const fixedRequest = buildRequestWithFixedUrl(input);
119
- init = buildRequestInit(fixedRequest, init);
120
- const request = makeRequest(fixedRequest, init);
121
- request.timeout = timeout; // copy/set timeout on the request directly
122
- return request;
123
- };
124
- }
125
- exports.fetchRequestFactory = fetchRequestFactory;
126
- function mergeRequestInits(base, requestInit) {
127
- if (requestInit) {
128
- const headers = mergeRequestHeaders([base.headers, requestInit === null || requestInit === void 0 ? void 0 : requestInit.headers]);
129
- return Object.assign(Object.assign(Object.assign({}, base), requestInit), { headers });
130
- }
131
- else {
132
- return base;
133
- }
134
- }
135
- exports.mergeRequestInits = mergeRequestInits;
136
- function mergeRequestHeaders(inputHeadersArray) {
137
- const headersMap = (0, util_1.multiValueMapBuilder)();
138
- (0, util_1.filterMaybeValues)(inputHeadersArray).forEach((headers, i) => {
139
- const tuples = headersToHeadersTuple(headers);
140
- const visitedKeysSet = new Set();
141
- tuples.forEach(([key, value]) => {
142
- if (!visitedKeysSet.has(key)) {
143
- headersMap.delete(key); // delete all existing values to "override" them
144
- visitedKeysSet.add(key);
145
- }
146
- if (value) {
147
- headersMap.add(key, value);
148
- }
149
- });
150
- });
151
- return headersMap.tuples();
152
- }
153
- exports.mergeRequestHeaders = mergeRequestHeaders;
154
- function headersToHeadersTuple(headers) {
155
- let tuples = [];
156
- if (Array.isArray(headers)) {
157
- // use as tuples
158
- tuples = headers;
159
- }
160
- else if (typeof headers.forEach === 'function') {
161
- // use as a headers object
162
- headers.forEach((value, key) => {
163
- tuples.push([key, value]);
164
- });
165
- }
166
- else if (typeof headers === 'object') {
167
- // use as a normal object
168
- tuples = (0, util_1.objectToTuples)(headers);
169
- }
170
- return tuples;
171
- }
172
- exports.headersToHeadersTuple = headersToHeadersTuple;
173
- function isFetchRequest(input) {
174
- return Boolean(input.url);
175
- }
176
- exports.isFetchRequest = isFetchRequest;
177
- //# sourceMappingURL=fetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../../packages/util/fetch/src/lib/fetch.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=fetch.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.type.js","sourceRoot":"","sources":["../../../../../../packages/util/fetch/src/lib/fetch.type.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./error"), exports);
5
- tslib_1.__exportStar(require("./fetch"), exports);
6
- tslib_1.__exportStar(require("./fetch.type"), exports);
7
- tslib_1.__exportStar(require("./json"), exports);
8
- tslib_1.__exportStar(require("./provider"), exports);
9
- tslib_1.__exportStar(require("./timeout"), exports);
10
- tslib_1.__exportStar(require("./url"), exports);
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/fetch/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,kDAAwB;AACxB,uDAA6B;AAC7B,iDAAuB;AACvB,qDAA2B;AAC3B,oDAA0B;AAC1B,gDAAsB"}
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchJsonRequestInit = exports.fetchJsonRequestInitFunction = exports.fetchJsonFunction = exports.returnNullHandleFetchJsonParseErrorFunction = exports.throwJsonResponseParseErrorFunction = exports.fetchJsonBodyString = exports.JsonResponseParseError = void 0;
4
- const util_1 = require("@dereekb/util");
5
- const url_1 = require("./url");
6
- class JsonResponseParseError extends Error {
7
- constructor(response) {
8
- super('Failed to parse the JSON body.');
9
- this.response = response;
10
- }
11
- }
12
- exports.JsonResponseParseError = JsonResponseParseError;
13
- /**
14
- * Converts the input to a JSON string, or undefined if not provided.
15
- *
16
- * @param body
17
- * @returns
18
- */
19
- function fetchJsonBodyString(body) {
20
- return body != null ? (typeof body === 'string' ? body : JSON.stringify(body)) : undefined;
21
- }
22
- exports.fetchJsonBodyString = fetchJsonBodyString;
23
- const throwJsonResponseParseErrorFunction = (response) => {
24
- throw new JsonResponseParseError(response);
25
- };
26
- exports.throwJsonResponseParseErrorFunction = throwJsonResponseParseErrorFunction;
27
- const returnNullHandleFetchJsonParseErrorFunction = (response) => null;
28
- exports.returnNullHandleFetchJsonParseErrorFunction = returnNullHandleFetchJsonParseErrorFunction;
29
- /**
30
- * Creates a FetchJsonFunction from the input ConfiguredFetch.
31
- */
32
- function fetchJsonFunction(fetch, inputConfig) {
33
- var _a;
34
- let config;
35
- if (typeof inputConfig === 'function') {
36
- config = {
37
- handleFetchJsonParseErrorFunction: inputConfig
38
- };
39
- }
40
- else {
41
- config = inputConfig !== null && inputConfig !== void 0 ? inputConfig : {};
42
- }
43
- config = Object.assign(Object.assign({}, config), { handleFetchJsonParseErrorFunction: (_a = config.handleFetchJsonParseErrorFunction) !== null && _a !== void 0 ? _a : exports.throwJsonResponseParseErrorFunction });
44
- const { handleFetchJsonParseErrorFunction } = config;
45
- const configuredFetchJsonRequestInit = fetchJsonRequestInitFunction(config);
46
- return (url, methodOrInput, body) => {
47
- const requestUrl = (0, url_1.fetchURL)(url);
48
- const requestInit = configuredFetchJsonRequestInit(methodOrInput, body);
49
- const response = fetch(requestUrl, requestInit);
50
- return response.then((x) => x.json().catch(handleFetchJsonParseErrorFunction));
51
- };
52
- }
53
- exports.fetchJsonFunction = fetchJsonFunction;
54
- function fetchJsonRequestInitFunction(config = {}) {
55
- const { defaultMethod = 'GET', mapFetchJsonInput = (0, util_1.mapIdentityFunction)() } = config;
56
- return (methodOrInput = defaultMethod, body) => {
57
- var _a;
58
- let config;
59
- if (methodOrInput === null) {
60
- config = {
61
- method: defaultMethod
62
- };
63
- }
64
- else if (typeof methodOrInput === 'string') {
65
- config = {
66
- method: methodOrInput,
67
- body
68
- };
69
- }
70
- else {
71
- config = methodOrInput;
72
- }
73
- config = mapFetchJsonInput(config);
74
- const requestInit = Object.assign(Object.assign({}, config), { method: (_a = config.method) !== null && _a !== void 0 ? _a : defaultMethod, body: fetchJsonBodyString(config.body) });
75
- return requestInit;
76
- };
77
- }
78
- exports.fetchJsonRequestInitFunction = fetchJsonRequestInitFunction;
79
- exports.fetchJsonRequestInit = fetchJsonRequestInitFunction();
80
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../../../packages/util/fetch/src/lib/json.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nodeFetchService = void 0;
4
- const fetch_1 = require("./fetch");
5
- exports.nodeFetchService = (0, fetch_1.fetchService)({
6
- makeFetch: fetch,
7
- makeRequest: (x, y) => new Request(x, y)
8
- });
9
- //# sourceMappingURL=provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../../packages/util/fetch/src/lib/provider.ts"],"names":[],"mappings":";;;AAAA,mCAA0D;AAE7C,QAAA,gBAAgB,GAAiB,IAAA,oBAAY,EAAC;IACzD,SAAS,EAAE,KAAY;IACvB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAgB,EAAE,CAAgB,CAAQ;CAC9E,CAAC,CAAC"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchTimeout = exports.FetchTimeoutError = void 0;
4
- const make_error_1 = require("make-error");
5
- class FetchTimeoutError extends make_error_1.BaseError {
6
- constructor(response, timeout) {
7
- super(`Fetch response was timed out (${timeout})`);
8
- this.response = response;
9
- this.timeout = timeout;
10
- }
11
- }
12
- exports.FetchTimeoutError = FetchTimeoutError;
13
- function fetchTimeout(inputFetch) {
14
- return (input, init) => {
15
- var _a;
16
- let controller;
17
- const timeout = (_a = init === null || init === void 0 ? void 0 : init.timeout) !== null && _a !== void 0 ? _a : input.timeout;
18
- // if signal is not provided, and a timeout is specified, configure the timeout
19
- if (!(init === null || init === void 0 ? void 0 : init.signal) && timeout) {
20
- const abortController = new AbortController();
21
- controller = abortController;
22
- init = Object.assign(Object.assign({}, init), { signal: abortController.signal // pass the abort signal
23
- });
24
- }
25
- let responsePromise = inputFetch(input, init);
26
- if (timeout) {
27
- const timeoutId = setTimeout(() => {
28
- controller === null || controller === void 0 ? void 0 : controller.abort();
29
- }, timeout);
30
- responsePromise = responsePromise.finally(() => {
31
- clearTimeout(timeoutId);
32
- });
33
- }
34
- return responsePromise;
35
- };
36
- }
37
- exports.fetchTimeout = fetchTimeout;
38
- //# sourceMappingURL=timeout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../../../../../packages/util/fetch/src/lib/timeout.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAGvC,MAAa,iBAAkB,SAAQ,sBAAS;IAC9C,YAAqB,QAAkB,EAAW,OAAe;QAC/D,KAAK,CAAC,iCAAiC,OAAO,GAAG,CAAC,CAAC;QADhC,aAAQ,GAAR,QAAQ,CAAU;QAAW,YAAO,GAAP,OAAO,CAAQ;IAEjE,CAAC;CACF;AAJD,8CAIC;AAED,SAAgB,YAAY,CAAC,UAAwB;IACnD,OAAO,CAAC,KAAwB,EAAE,IAA6B,EAAE,EAAE;;QACjE,IAAI,UAAuC,CAAC;QAC5C,MAAM,OAAO,GAA8B,MAAC,IAA+B,aAA/B,IAAI,uBAAJ,IAAI,CAA6B,OAAO,mCAAK,KAA4B,CAAC,OAAO,CAAC;QAE9H,+EAA+E;QAC/E,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,IAAI,OAAO,EAAE;YAC5B,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,UAAU,GAAG,eAAe,CAAC;YAE7B,IAAI,mCACC,IAAI,KACP,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,wBAAwB;eACxD,CAAC;SACH;QAED,IAAI,eAAe,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE9C,IAAI,OAAO,EAAE;YACX,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,CAAC;YACtB,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC7C,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AA9BD,oCA8BC"}
@@ -1,102 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchURLSearchParamsObjectToURLSearchParams = exports.queryParamsToSearchParams = exports.fetchURLQueryKeyValueStringTuples = exports.isURLSearchParams = exports.isURL = exports.fetchURL = void 0;
4
- const util_1 = require("@dereekb/util");
5
- function fetchURL(input) {
6
- let url;
7
- if (typeof input === 'string') {
8
- url = input;
9
- }
10
- else if (isURL(input)) {
11
- url = input.href;
12
- }
13
- else {
14
- const baseUrl = fetchURL(input.url);
15
- if (input.queryParams) {
16
- const searchParams = queryParamsToSearchParams(input.queryParams);
17
- if (!(0, util_1.isEmptyIterable)(searchParams)) {
18
- url = (0, util_1.fixExtraQueryParameters)(baseUrl + `?${searchParams.toString()}`);
19
- }
20
- else {
21
- url = baseUrl;
22
- }
23
- }
24
- else {
25
- url = baseUrl;
26
- }
27
- }
28
- return url;
29
- }
30
- exports.fetchURL = fetchURL;
31
- function isURL(input) {
32
- return typeof input === 'object' && input instanceof URL;
33
- }
34
- exports.isURL = isURL;
35
- function isURLSearchParams(input) {
36
- return typeof input === 'object' && input instanceof URLSearchParams;
37
- }
38
- exports.isURLSearchParams = isURLSearchParams;
39
- /**
40
- * Converts the input
41
- *
42
- * @param input
43
- * @returns
44
- */
45
- function fetchURLQueryKeyValueStringTuples(input) {
46
- const paramTuples = [];
47
- (0, util_1.forEachInIterable)(input, (tuple) => {
48
- const [key, values] = tuple;
49
- // ignore null/undefined keys and values
50
- if (key != null && values != null) {
51
- const keyString = String(key);
52
- (0, util_1.useIterableOrValue)(values, (value) => {
53
- // ignore null/undefined values
54
- if (value != null) {
55
- paramTuples.push([keyString, String(value)]);
56
- }
57
- });
58
- }
59
- });
60
- return paramTuples;
61
- }
62
- exports.fetchURLQueryKeyValueStringTuples = fetchURLQueryKeyValueStringTuples;
63
- function queryParamsToSearchParams(input) {
64
- let result;
65
- if (isURLSearchParams(input)) {
66
- // by url search params
67
- result = input;
68
- }
69
- else if (typeof input === 'string') {
70
- result = new URLSearchParams(input);
71
- }
72
- else if ((0, util_1.isIterable)(input)) {
73
- // By tuples
74
- result = new URLSearchParams(fetchURLQueryKeyValueStringTuples(input));
75
- }
76
- else {
77
- result = fetchURLSearchParamsObjectToURLSearchParams(input);
78
- }
79
- return result;
80
- }
81
- exports.queryParamsToSearchParams = queryParamsToSearchParams;
82
- function fetchURLSearchParamsObjectToURLSearchParams(input) {
83
- const paramTuples = [];
84
- (0, util_1.forEachKeyValue)(input, {
85
- forEach: (tuple) => {
86
- const [key, values] = tuple;
87
- // ignore null/undefined keys and values
88
- if (key != null && values != null) {
89
- const keyString = String(key);
90
- (0, util_1.useIterableOrValue)(values, (x) => {
91
- // ignore null/undefined values
92
- if (x != null) {
93
- paramTuples.push([keyString, String(x)]);
94
- }
95
- });
96
- }
97
- }
98
- });
99
- return new URLSearchParams(paramTuples);
100
- }
101
- exports.fetchURLSearchParamsObjectToURLSearchParams = fetchURLSearchParamsObjectToURLSearchParams;
102
- //# sourceMappingURL=url.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../../../../packages/util/fetch/src/lib/url.ts"],"names":[],"mappings":"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"}