@datocms/rest-client-utils 1.3.3 → 3.0.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/LICENSE.md +1 -1
- package/dist/cjs/__tests__/buildNormalizedParams.test.js +10 -10
- package/dist/cjs/__tests__/buildNormalizedParams.test.js.map +1 -1
- package/dist/cjs/request.js +11 -3
- package/dist/cjs/request.js.map +1 -1
- package/dist/esm/__tests__/buildNormalizedParams.test.js +10 -10
- package/dist/esm/__tests__/buildNormalizedParams.test.js.map +1 -1
- package/dist/esm/request.d.ts +2 -0
- package/dist/esm/request.js +11 -3
- package/dist/esm/request.js.map +1 -1
- package/dist/types/request.d.ts +2 -0
- package/package.json +2 -3
- package/src/__tests__/buildNormalizedParams.test.ts +21 -23
- package/src/request.ts +17 -2
package/LICENSE.md
CHANGED
|
@@ -40,25 +40,25 @@ var buildNormalizedParams_1 = require("../buildNormalizedParams");
|
|
|
40
40
|
describe('URLQueryParams', function () {
|
|
41
41
|
it('encodes complex params', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
42
42
|
return __generator(this, function (_a) {
|
|
43
|
-
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: 0 })).toMatchInlineSnapshot("\n
|
|
44
|
-
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: true })).toMatchInlineSnapshot("\n
|
|
45
|
-
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: false })).toMatchInlineSnapshot("\n
|
|
46
|
-
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: '' })).toMatchInlineSnapshot("\n
|
|
47
|
-
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: null })).toMatchInlineSnapshot('
|
|
48
|
-
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: undefined })).toMatchInlineSnapshot('
|
|
49
|
-
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: 'bàr' })).toMatchInlineSnapshot("\n
|
|
43
|
+
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: 0 })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"0\",\n ],\n ]\n ");
|
|
44
|
+
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: true })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"true\",\n ],\n ]\n ");
|
|
45
|
+
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: false })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"false\",\n ],\n ]\n ");
|
|
46
|
+
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: '' })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"\",\n ],\n ]\n ");
|
|
47
|
+
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: null })).toMatchInlineSnapshot('[]');
|
|
48
|
+
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: undefined })).toMatchInlineSnapshot('[]');
|
|
49
|
+
expect((0, buildNormalizedParams_1.buildNormalizedParams)({ foo: 'bàr' })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"b\u00E0r\",\n ],\n ]\n ");
|
|
50
50
|
expect((0, buildNormalizedParams_1.buildNormalizedParams)({
|
|
51
51
|
page: {
|
|
52
52
|
offset: 0,
|
|
53
53
|
limit: 10,
|
|
54
54
|
},
|
|
55
|
-
})).toMatchInlineSnapshot("\n
|
|
55
|
+
})).toMatchInlineSnapshot("\n [\n [\n \"page[offset]\",\n \"0\",\n ],\n [\n \"page[limit]\",\n \"10\",\n ],\n ]\n ");
|
|
56
56
|
expect((0, buildNormalizedParams_1.buildNormalizedParams)({
|
|
57
57
|
filter: { fields: { md5: { eq: 'foo' } } },
|
|
58
|
-
})).toMatchInlineSnapshot("\n
|
|
58
|
+
})).toMatchInlineSnapshot("\n [\n [\n \"filter[fields][md5][eq]\",\n \"foo\",\n ],\n ]\n ");
|
|
59
59
|
expect((0, buildNormalizedParams_1.buildNormalizedParams)({
|
|
60
60
|
foo: { bar: ['a', 'b', 10] },
|
|
61
|
-
})).toMatchInlineSnapshot("\n
|
|
61
|
+
})).toMatchInlineSnapshot("\n [\n [\n \"foo[bar][]\",\n \"a\",\n ],\n [\n \"foo[bar][]\",\n \"b\",\n ],\n [\n \"foo[bar][]\",\n \"10\",\n ],\n ]\n ");
|
|
62
62
|
return [2 /*return*/];
|
|
63
63
|
});
|
|
64
64
|
}); });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildNormalizedParams.test.js","sourceRoot":"","sources":["../../../src/__tests__/buildNormalizedParams.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kEAAiE;AAEjE,QAAQ,CAAC,gBAAgB,EAAE;IACzB,EAAE,CAAC,wBAAwB,EAAE;;YAC3B,MAAM,CAAC,IAAA,6CAAqB,EAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"buildNormalizedParams.test.js","sourceRoot":"","sources":["../../../src/__tests__/buildNormalizedParams.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kEAAiE;AAEjE,QAAQ,CAAC,gBAAgB,EAAE;IACzB,EAAE,CAAC,wBAAwB,EAAE;;YAC3B,MAAM,CAAC,IAAA,6CAAqB,EAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,uFAO/D,CAAC,CAAC;YACH,MAAM,CAAC,IAAA,6CAAqB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,0FAOlE,CAAC,CAAC;YACH,MAAM,CAAC,IAAA,6CAAqB,EAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,2FAOnE,CAAC,CAAC;YACH,MAAM,CAAC,IAAA,6CAAqB,EAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,sFAOhE,CAAC,CAAC;YACH,MAAM,CAAC,IAAA,6CAAqB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACzE,MAAM,CAAC,IAAA,6CAAqB,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,qBAAqB,CACrE,IAAI,CACL,CAAC;YAEF,MAAM,CAAC,IAAA,6CAAqB,EAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,8FAOnE,CAAC,CAAC;YAEH,MAAM,CACJ,IAAA,6CAAqB,EAAC;gBACpB,IAAI,EAAE;oBACJ,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE,EAAE;iBACV;aACF,CAAC,CACH,CAAC,qBAAqB,CAAC,sKAWvB,CAAC,CAAC;YAEH,MAAM,CACJ,IAAA,6CAAqB,EAAC;gBACpB,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;aAC3C,CAAC,CACH,CAAC,qBAAqB,CAAC,6GAOvB,CAAC,CAAC;YAEH,MAAM,CACJ,IAAA,6CAAqB,EAAC;gBACpB,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE;aAC7B,CAAC,CACH,CAAC,qBAAqB,CAAC,uOAevB,CAAC,CAAC;;;SACJ,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/request.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/// <reference lib="dom" />
|
|
2
3
|
var __assign = (this && this.__assign) || function () {
|
|
3
4
|
__assign = Object.assign || function(t) {
|
|
4
5
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -49,7 +50,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
49
50
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
51
|
exports.request = exports.LogLevel = void 0;
|
|
51
52
|
var buildNormalizedParams_1 = require("./buildNormalizedParams");
|
|
52
|
-
var fetch_1 = require("@whatwg-node/fetch");
|
|
53
53
|
var errors_1 = require("./errors");
|
|
54
54
|
var wait_1 = require("./wait");
|
|
55
55
|
var makeCancelablePromise_1 = require("./makeCancelablePromise");
|
|
@@ -130,12 +130,20 @@ function lowercaseKeys(obj) {
|
|
|
130
130
|
var requestCount = 1;
|
|
131
131
|
function request(options) {
|
|
132
132
|
return __awaiter(this, void 0, void 0, function () {
|
|
133
|
-
var requestId, preCallStack, userAgent, retryCount, logLevel, autoRetry, log, headers, baseUrl, body, queryString, url, _i, _a, _b, key, value, requestPromise_1, timeoutId, response_1, responseContentType, invalidContentType, waitTimeInSecs, responseBody, _c, jobResult, error, error_1;
|
|
133
|
+
var requestId, fetchFn, preCallStack, userAgent, retryCount, logLevel, autoRetry, log, headers, baseUrl, body, queryString, url, _i, _a, _b, key, value, requestPromise_1, timeoutId, response_1, responseContentType, invalidContentType, waitTimeInSecs, responseBody, _c, jobResult, error, error_1;
|
|
134
134
|
return __generator(this, function (_d) {
|
|
135
135
|
switch (_d.label) {
|
|
136
136
|
case 0:
|
|
137
137
|
requestId = requestCount;
|
|
138
138
|
requestCount += 1;
|
|
139
|
+
fetchFn = options.fetchFn ||
|
|
140
|
+
(typeof fetch === 'undefined' ? undefined : fetch) ||
|
|
141
|
+
(typeof globalThis === 'undefined' ? undefined : globalThis.fetch);
|
|
142
|
+
if (typeof fetchFn === 'undefined') {
|
|
143
|
+
console.log(global);
|
|
144
|
+
console.log(global.fetch);
|
|
145
|
+
throw new Error('fetch() is not available: either polyfill it globally, or provide it as fetchFn option.');
|
|
146
|
+
}
|
|
139
147
|
preCallStack = options.preCallStack;
|
|
140
148
|
userAgent = options.userAgent || '@datocms/rest-client-utils';
|
|
141
149
|
retryCount = options.retryCount || 1;
|
|
@@ -168,7 +176,7 @@ function request(options) {
|
|
|
168
176
|
_d.label = 1;
|
|
169
177
|
case 1:
|
|
170
178
|
_d.trys.push([1, 12, , 16]);
|
|
171
|
-
requestPromise_1 = (0, makeCancelablePromise_1.makeCancelablePromise)((
|
|
179
|
+
requestPromise_1 = (0, makeCancelablePromise_1.makeCancelablePromise)(fetchFn(url, {
|
|
172
180
|
method: options.method,
|
|
173
181
|
headers: headers,
|
|
174
182
|
body: body,
|
package/dist/cjs/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,25 +38,25 @@ import { buildNormalizedParams } from '../buildNormalizedParams';
|
|
|
38
38
|
describe('URLQueryParams', function () {
|
|
39
39
|
it('encodes complex params', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
40
40
|
return __generator(this, function (_a) {
|
|
41
|
-
expect(buildNormalizedParams({ foo: 0 })).toMatchInlineSnapshot("\n
|
|
42
|
-
expect(buildNormalizedParams({ foo: true })).toMatchInlineSnapshot("\n
|
|
43
|
-
expect(buildNormalizedParams({ foo: false })).toMatchInlineSnapshot("\n
|
|
44
|
-
expect(buildNormalizedParams({ foo: '' })).toMatchInlineSnapshot("\n
|
|
45
|
-
expect(buildNormalizedParams({ foo: null })).toMatchInlineSnapshot('
|
|
46
|
-
expect(buildNormalizedParams({ foo: undefined })).toMatchInlineSnapshot('
|
|
47
|
-
expect(buildNormalizedParams({ foo: 'bàr' })).toMatchInlineSnapshot("\n
|
|
41
|
+
expect(buildNormalizedParams({ foo: 0 })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"0\",\n ],\n ]\n ");
|
|
42
|
+
expect(buildNormalizedParams({ foo: true })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"true\",\n ],\n ]\n ");
|
|
43
|
+
expect(buildNormalizedParams({ foo: false })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"false\",\n ],\n ]\n ");
|
|
44
|
+
expect(buildNormalizedParams({ foo: '' })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"\",\n ],\n ]\n ");
|
|
45
|
+
expect(buildNormalizedParams({ foo: null })).toMatchInlineSnapshot('[]');
|
|
46
|
+
expect(buildNormalizedParams({ foo: undefined })).toMatchInlineSnapshot('[]');
|
|
47
|
+
expect(buildNormalizedParams({ foo: 'bàr' })).toMatchInlineSnapshot("\n [\n [\n \"foo\",\n \"b\u00E0r\",\n ],\n ]\n ");
|
|
48
48
|
expect(buildNormalizedParams({
|
|
49
49
|
page: {
|
|
50
50
|
offset: 0,
|
|
51
51
|
limit: 10,
|
|
52
52
|
},
|
|
53
|
-
})).toMatchInlineSnapshot("\n
|
|
53
|
+
})).toMatchInlineSnapshot("\n [\n [\n \"page[offset]\",\n \"0\",\n ],\n [\n \"page[limit]\",\n \"10\",\n ],\n ]\n ");
|
|
54
54
|
expect(buildNormalizedParams({
|
|
55
55
|
filter: { fields: { md5: { eq: 'foo' } } },
|
|
56
|
-
})).toMatchInlineSnapshot("\n
|
|
56
|
+
})).toMatchInlineSnapshot("\n [\n [\n \"filter[fields][md5][eq]\",\n \"foo\",\n ],\n ]\n ");
|
|
57
57
|
expect(buildNormalizedParams({
|
|
58
58
|
foo: { bar: ['a', 'b', 10] },
|
|
59
|
-
})).toMatchInlineSnapshot("\n
|
|
59
|
+
})).toMatchInlineSnapshot("\n [\n [\n \"foo[bar][]\",\n \"a\",\n ],\n [\n \"foo[bar][]\",\n \"b\",\n ],\n [\n \"foo[bar][]\",\n \"10\",\n ],\n ]\n ");
|
|
60
60
|
return [2 /*return*/];
|
|
61
61
|
});
|
|
62
62
|
}); });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildNormalizedParams.test.js","sourceRoot":"","sources":["../../../src/__tests__/buildNormalizedParams.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,QAAQ,CAAC,gBAAgB,EAAE;IACzB,EAAE,CAAC,wBAAwB,EAAE;;YAC3B,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"buildNormalizedParams.test.js","sourceRoot":"","sources":["../../../src/__tests__/buildNormalizedParams.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,QAAQ,CAAC,gBAAgB,EAAE;IACzB,EAAE,CAAC,wBAAwB,EAAE;;YAC3B,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,uFAO/D,CAAC,CAAC;YACH,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,0FAOlE,CAAC,CAAC;YACH,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,2FAOnE,CAAC,CAAC;YACH,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,sFAOhE,CAAC,CAAC;YACH,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACzE,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,qBAAqB,CACrE,IAAI,CACL,CAAC;YAEF,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,8FAOnE,CAAC,CAAC;YAEH,MAAM,CACJ,qBAAqB,CAAC;gBACpB,IAAI,EAAE;oBACJ,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE,EAAE;iBACV;aACF,CAAC,CACH,CAAC,qBAAqB,CAAC,sKAWvB,CAAC,CAAC;YAEH,MAAM,CACJ,qBAAqB,CAAC;gBACpB,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;aAC3C,CAAC,CACH,CAAC,qBAAqB,CAAC,6GAOvB,CAAC,CAAC;YAEH,MAAM,CACJ,qBAAqB,CAAC;gBACpB,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE;aAC7B,CAAC,CACH,CAAC,qBAAqB,CAAC,uOAevB,CAAC,CAAC;;;SACJ,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/esm/request.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
1
2
|
import { JobResult } from './internalTypes';
|
|
2
3
|
export declare enum LogLevel {
|
|
3
4
|
/** No logging */
|
|
@@ -12,6 +13,7 @@ export declare enum LogLevel {
|
|
|
12
13
|
declare type RequestOptions = {
|
|
13
14
|
baseUrl: string;
|
|
14
15
|
fetchJobResult: (jobId: string) => Promise<JobResult>;
|
|
16
|
+
fetchFn?: typeof fetch;
|
|
15
17
|
apiToken: string | null;
|
|
16
18
|
extraHeaders?: Record<string, string>;
|
|
17
19
|
logLevel?: LogLevel;
|
package/dist/esm/request.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
1
2
|
var __assign = (this && this.__assign) || function () {
|
|
2
3
|
__assign = Object.assign || function(t) {
|
|
3
4
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -46,7 +47,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
47
|
}
|
|
47
48
|
};
|
|
48
49
|
import { buildNormalizedParams } from './buildNormalizedParams';
|
|
49
|
-
import { fetch as universalFetch } from '@whatwg-node/fetch';
|
|
50
50
|
import { ApiError, TimeoutError, } from './errors';
|
|
51
51
|
import { wait } from './wait';
|
|
52
52
|
import { makeCancelablePromise, CanceledPromiseError, } from './makeCancelablePromise';
|
|
@@ -127,12 +127,20 @@ function lowercaseKeys(obj) {
|
|
|
127
127
|
var requestCount = 1;
|
|
128
128
|
export function request(options) {
|
|
129
129
|
return __awaiter(this, void 0, void 0, function () {
|
|
130
|
-
var requestId, preCallStack, userAgent, retryCount, logLevel, autoRetry, log, headers, baseUrl, body, queryString, url, _i, _a, _b, key, value, requestPromise_1, timeoutId, response_1, responseContentType, invalidContentType, waitTimeInSecs, responseBody, _c, jobResult, error, error_1;
|
|
130
|
+
var requestId, fetchFn, preCallStack, userAgent, retryCount, logLevel, autoRetry, log, headers, baseUrl, body, queryString, url, _i, _a, _b, key, value, requestPromise_1, timeoutId, response_1, responseContentType, invalidContentType, waitTimeInSecs, responseBody, _c, jobResult, error, error_1;
|
|
131
131
|
return __generator(this, function (_d) {
|
|
132
132
|
switch (_d.label) {
|
|
133
133
|
case 0:
|
|
134
134
|
requestId = requestCount;
|
|
135
135
|
requestCount += 1;
|
|
136
|
+
fetchFn = options.fetchFn ||
|
|
137
|
+
(typeof fetch === 'undefined' ? undefined : fetch) ||
|
|
138
|
+
(typeof globalThis === 'undefined' ? undefined : globalThis.fetch);
|
|
139
|
+
if (typeof fetchFn === 'undefined') {
|
|
140
|
+
console.log(global);
|
|
141
|
+
console.log(global.fetch);
|
|
142
|
+
throw new Error('fetch() is not available: either polyfill it globally, or provide it as fetchFn option.');
|
|
143
|
+
}
|
|
136
144
|
preCallStack = options.preCallStack;
|
|
137
145
|
userAgent = options.userAgent || '@datocms/rest-client-utils';
|
|
138
146
|
retryCount = options.retryCount || 1;
|
|
@@ -165,7 +173,7 @@ export function request(options) {
|
|
|
165
173
|
_d.label = 1;
|
|
166
174
|
case 1:
|
|
167
175
|
_d.trys.push([1, 12, , 16]);
|
|
168
|
-
requestPromise_1 = makeCancelablePromise(
|
|
176
|
+
requestPromise_1 = makeCancelablePromise(fetchFn(url, {
|
|
169
177
|
method: options.method,
|
|
170
178
|
headers: headers,
|
|
171
179
|
body: body,
|
package/dist/esm/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
|
package/dist/types/request.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
1
2
|
import { JobResult } from './internalTypes';
|
|
2
3
|
export declare enum LogLevel {
|
|
3
4
|
/** No logging */
|
|
@@ -12,6 +13,7 @@ export declare enum LogLevel {
|
|
|
12
13
|
declare type RequestOptions = {
|
|
13
14
|
baseUrl: string;
|
|
14
15
|
fetchJobResult: (jobId: string) => Promise<JobResult>;
|
|
16
|
+
fetchFn?: typeof fetch;
|
|
15
17
|
apiToken: string | null;
|
|
16
18
|
extraHeaders?: Record<string, string>;
|
|
17
19
|
logLevel?: LogLevel;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datocms/rest-client-utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Utilities for DatoCMS REST API clients",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"datocms",
|
|
@@ -36,10 +36,9 @@
|
|
|
36
36
|
"url": "https://github.com/datocms/js-rest-api-clients/issues"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@whatwg-node/fetch": "^0.5.3",
|
|
40
39
|
"async-scheduler": "^1.4.4"
|
|
41
40
|
},
|
|
42
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "5a6f58cc816ea526350913a5ad49bf9c5cb968ea",
|
|
43
42
|
"devDependencies": {
|
|
44
43
|
"@types/qs": "^6.9.7"
|
|
45
44
|
}
|
|
@@ -3,47 +3,45 @@ import { buildNormalizedParams } from '../buildNormalizedParams';
|
|
|
3
3
|
describe('URLQueryParams', () => {
|
|
4
4
|
it('encodes complex params', async () => {
|
|
5
5
|
expect(buildNormalizedParams({ foo: 0 })).toMatchInlineSnapshot(`
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
[
|
|
7
|
+
[
|
|
8
8
|
"foo",
|
|
9
9
|
"0",
|
|
10
10
|
],
|
|
11
11
|
]
|
|
12
12
|
`);
|
|
13
13
|
expect(buildNormalizedParams({ foo: true })).toMatchInlineSnapshot(`
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
[
|
|
15
|
+
[
|
|
16
16
|
"foo",
|
|
17
17
|
"true",
|
|
18
18
|
],
|
|
19
19
|
]
|
|
20
20
|
`);
|
|
21
21
|
expect(buildNormalizedParams({ foo: false })).toMatchInlineSnapshot(`
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
[
|
|
23
|
+
[
|
|
24
24
|
"foo",
|
|
25
25
|
"false",
|
|
26
26
|
],
|
|
27
27
|
]
|
|
28
28
|
`);
|
|
29
29
|
expect(buildNormalizedParams({ foo: '' })).toMatchInlineSnapshot(`
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
[
|
|
31
|
+
[
|
|
32
32
|
"foo",
|
|
33
33
|
"",
|
|
34
34
|
],
|
|
35
35
|
]
|
|
36
36
|
`);
|
|
37
|
-
expect(buildNormalizedParams({ foo: null })).toMatchInlineSnapshot(
|
|
38
|
-
'Array []',
|
|
39
|
-
);
|
|
37
|
+
expect(buildNormalizedParams({ foo: null })).toMatchInlineSnapshot('[]');
|
|
40
38
|
expect(buildNormalizedParams({ foo: undefined })).toMatchInlineSnapshot(
|
|
41
|
-
'
|
|
39
|
+
'[]',
|
|
42
40
|
);
|
|
43
41
|
|
|
44
42
|
expect(buildNormalizedParams({ foo: 'bàr' })).toMatchInlineSnapshot(`
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
[
|
|
44
|
+
[
|
|
47
45
|
"foo",
|
|
48
46
|
"bàr",
|
|
49
47
|
],
|
|
@@ -58,12 +56,12 @@ describe('URLQueryParams', () => {
|
|
|
58
56
|
},
|
|
59
57
|
}),
|
|
60
58
|
).toMatchInlineSnapshot(`
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
[
|
|
60
|
+
[
|
|
63
61
|
"page[offset]",
|
|
64
62
|
"0",
|
|
65
63
|
],
|
|
66
|
-
|
|
64
|
+
[
|
|
67
65
|
"page[limit]",
|
|
68
66
|
"10",
|
|
69
67
|
],
|
|
@@ -75,8 +73,8 @@ describe('URLQueryParams', () => {
|
|
|
75
73
|
filter: { fields: { md5: { eq: 'foo' } } },
|
|
76
74
|
}),
|
|
77
75
|
).toMatchInlineSnapshot(`
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
[
|
|
77
|
+
[
|
|
80
78
|
"filter[fields][md5][eq]",
|
|
81
79
|
"foo",
|
|
82
80
|
],
|
|
@@ -88,16 +86,16 @@ describe('URLQueryParams', () => {
|
|
|
88
86
|
foo: { bar: ['a', 'b', 10] },
|
|
89
87
|
}),
|
|
90
88
|
).toMatchInlineSnapshot(`
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
[
|
|
90
|
+
[
|
|
93
91
|
"foo[bar][]",
|
|
94
92
|
"a",
|
|
95
93
|
],
|
|
96
|
-
|
|
94
|
+
[
|
|
97
95
|
"foo[bar][]",
|
|
98
96
|
"b",
|
|
99
97
|
],
|
|
100
|
-
|
|
98
|
+
[
|
|
101
99
|
"foo[bar][]",
|
|
102
100
|
"10",
|
|
103
101
|
],
|
package/src/request.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
2
|
+
|
|
1
3
|
import { buildNormalizedParams } from './buildNormalizedParams';
|
|
2
|
-
import { fetch as universalFetch } from '@whatwg-node/fetch';
|
|
3
4
|
import {
|
|
4
5
|
ApiError,
|
|
5
6
|
ApiErrorInitObject,
|
|
@@ -32,6 +33,7 @@ export enum LogLevel {
|
|
|
32
33
|
type RequestOptions = {
|
|
33
34
|
baseUrl: string;
|
|
34
35
|
fetchJobResult: (jobId: string) => Promise<JobResult>;
|
|
36
|
+
fetchFn?: typeof fetch;
|
|
35
37
|
apiToken: string | null;
|
|
36
38
|
extraHeaders?: Record<string, string>;
|
|
37
39
|
logLevel?: LogLevel;
|
|
@@ -143,6 +145,19 @@ export async function request<T>(options: RequestOptions): Promise<T> {
|
|
|
143
145
|
const requestId = requestCount;
|
|
144
146
|
requestCount += 1;
|
|
145
147
|
|
|
148
|
+
const fetchFn =
|
|
149
|
+
options.fetchFn ||
|
|
150
|
+
(typeof fetch === 'undefined' ? undefined : fetch) ||
|
|
151
|
+
(typeof globalThis === 'undefined' ? undefined : globalThis.fetch);
|
|
152
|
+
|
|
153
|
+
if (typeof fetchFn === 'undefined') {
|
|
154
|
+
console.log(global);
|
|
155
|
+
console.log(global.fetch);
|
|
156
|
+
throw new Error(
|
|
157
|
+
'fetch() is not available: either polyfill it globally, or provide it as fetchFn option.',
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
|
|
146
161
|
const preCallStack = options.preCallStack;
|
|
147
162
|
const userAgent = options.userAgent || '@datocms/rest-client-utils';
|
|
148
163
|
const retryCount = options.retryCount || 1;
|
|
@@ -189,7 +204,7 @@ export async function request<T>(options: RequestOptions): Promise<T> {
|
|
|
189
204
|
|
|
190
205
|
try {
|
|
191
206
|
const requestPromise = makeCancelablePromise(
|
|
192
|
-
|
|
207
|
+
fetchFn(url, {
|
|
193
208
|
method: options.method,
|
|
194
209
|
headers,
|
|
195
210
|
body,
|