@aws-amplify/api-graphql 3.3.2-unstable.c1fa9c7.5 → 3.4.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.
@@ -0,0 +1,400 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ var graphql_1 = require("graphql");
7
+ var core_1 = require("@aws-amplify/core");
8
+ var internals_1 = require("@aws-amplify/pubsub/internals");
9
+ var auth_1 = require("@aws-amplify/auth");
10
+ var cache_1 = require("@aws-amplify/cache");
11
+ var types_1 = require("../types");
12
+ var api_rest_1 = require("@aws-amplify/api-rest");
13
+ var USER_AGENT_HEADER = 'x-amz-user-agent';
14
+ var logger = new core_1.ConsoleLogger('GraphQLAPI');
15
+ exports.graphqlOperation = function (query, variables, authToken) {
16
+ if (variables === void 0) { variables = {}; }
17
+ return ({
18
+ query: query,
19
+ variables: variables,
20
+ authToken: authToken,
21
+ });
22
+ };
23
+ /**
24
+ * Export Cloud Logic APIs
25
+ */
26
+ var InternalGraphQLAPIClass = /** @class */ (function () {
27
+ /**
28
+ * Initialize GraphQL API with AWS configuration
29
+ * @param {Object} options - Configuration object for API
30
+ */
31
+ function InternalGraphQLAPIClass(options) {
32
+ this._api = null;
33
+ this.Auth = auth_1.Auth;
34
+ this.Cache = cache_1.Cache;
35
+ this.Credentials = core_1.Credentials;
36
+ this._options = options;
37
+ logger.debug('API Options', this._options);
38
+ }
39
+ InternalGraphQLAPIClass.prototype.getModuleName = function () {
40
+ return 'InternalGraphQLAPI';
41
+ };
42
+ /**
43
+ * Configure API
44
+ * @param {Object} config - Configuration of the API
45
+ * @return {Object} - The current configuration
46
+ */
47
+ InternalGraphQLAPIClass.prototype.configure = function (options) {
48
+ var _a = options || {}, _b = _a.API, API = _b === void 0 ? {} : _b, otherOptions = tslib_1.__rest(_a, ["API"]);
49
+ var opt = tslib_1.__assign(tslib_1.__assign({}, otherOptions), API);
50
+ logger.debug('configure GraphQL API', { opt: opt });
51
+ if (opt['aws_project_region']) {
52
+ opt = Object.assign({}, opt, {
53
+ region: opt['aws_project_region'],
54
+ header: {},
55
+ });
56
+ }
57
+ if (typeof opt.graphql_headers !== 'undefined' &&
58
+ typeof opt.graphql_headers !== 'function') {
59
+ logger.warn('graphql_headers should be a function');
60
+ opt.graphql_headers = undefined;
61
+ }
62
+ this._options = Object.assign({}, this._options, opt);
63
+ this.createInstance();
64
+ return this._options;
65
+ };
66
+ /**
67
+ * Create an instance of API for the library
68
+ * @return - A promise of true if Success
69
+ */
70
+ InternalGraphQLAPIClass.prototype.createInstance = function () {
71
+ logger.debug('create Rest instance');
72
+ if (this._options) {
73
+ this._api = new api_rest_1.RestClient(this._options);
74
+ // Share instance Credentials with client for SSR
75
+ this._api.Credentials = this.Credentials;
76
+ return true;
77
+ }
78
+ else {
79
+ return Promise.reject('API not configured');
80
+ }
81
+ };
82
+ InternalGraphQLAPIClass.prototype._headerBasedAuth = function (defaultAuthenticationType, additionalHeaders) {
83
+ if (additionalHeaders === void 0) { additionalHeaders = {}; }
84
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
85
+ var _a, aws_appsync_authenticationType, apiKey, authenticationType, headers, _b, credentialsOK, token, federatedInfo, currentUser, e_1, session, e_2;
86
+ return tslib_1.__generator(this, function (_c) {
87
+ switch (_c.label) {
88
+ case 0:
89
+ _a = this._options, aws_appsync_authenticationType = _a.aws_appsync_authenticationType, apiKey = _a.aws_appsync_apiKey;
90
+ authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM';
91
+ headers = {};
92
+ _b = authenticationType;
93
+ switch (_b) {
94
+ case 'API_KEY': return [3 /*break*/, 1];
95
+ case 'AWS_IAM': return [3 /*break*/, 2];
96
+ case 'OPENID_CONNECT': return [3 /*break*/, 4];
97
+ case 'AMAZON_COGNITO_USER_POOLS': return [3 /*break*/, 11];
98
+ case 'AWS_LAMBDA': return [3 /*break*/, 15];
99
+ }
100
+ return [3 /*break*/, 16];
101
+ case 1:
102
+ if (!apiKey) {
103
+ throw new Error(types_1.GraphQLAuthError.NO_API_KEY);
104
+ }
105
+ headers = {
106
+ Authorization: null,
107
+ 'X-Api-Key': apiKey,
108
+ };
109
+ return [3 /*break*/, 17];
110
+ case 2: return [4 /*yield*/, this._ensureCredentials()];
111
+ case 3:
112
+ credentialsOK = _c.sent();
113
+ if (!credentialsOK) {
114
+ throw new Error(types_1.GraphQLAuthError.NO_CREDENTIALS);
115
+ }
116
+ return [3 /*break*/, 17];
117
+ case 4:
118
+ _c.trys.push([4, 9, , 10]);
119
+ token = void 0;
120
+ return [4 /*yield*/, cache_1.Cache.getItem('federatedInfo')];
121
+ case 5:
122
+ federatedInfo = _c.sent();
123
+ if (!federatedInfo) return [3 /*break*/, 6];
124
+ token = federatedInfo.token;
125
+ return [3 /*break*/, 8];
126
+ case 6: return [4 /*yield*/, auth_1.Auth.currentAuthenticatedUser()];
127
+ case 7:
128
+ currentUser = _c.sent();
129
+ if (currentUser) {
130
+ token = currentUser.token;
131
+ }
132
+ _c.label = 8;
133
+ case 8:
134
+ if (!token) {
135
+ throw new Error(types_1.GraphQLAuthError.NO_FEDERATED_JWT);
136
+ }
137
+ headers = {
138
+ Authorization: token,
139
+ };
140
+ return [3 /*break*/, 10];
141
+ case 9:
142
+ e_1 = _c.sent();
143
+ throw new Error(types_1.GraphQLAuthError.NO_CURRENT_USER);
144
+ case 10: return [3 /*break*/, 17];
145
+ case 11:
146
+ _c.trys.push([11, 13, , 14]);
147
+ return [4 /*yield*/, this.Auth.currentSession()];
148
+ case 12:
149
+ session = _c.sent();
150
+ headers = {
151
+ Authorization: session.getAccessToken().getJwtToken(),
152
+ };
153
+ return [3 /*break*/, 14];
154
+ case 13:
155
+ e_2 = _c.sent();
156
+ throw new Error(types_1.GraphQLAuthError.NO_CURRENT_USER);
157
+ case 14: return [3 /*break*/, 17];
158
+ case 15:
159
+ if (!additionalHeaders.Authorization) {
160
+ throw new Error(types_1.GraphQLAuthError.NO_AUTH_TOKEN);
161
+ }
162
+ headers = {
163
+ Authorization: additionalHeaders.Authorization,
164
+ };
165
+ return [3 /*break*/, 17];
166
+ case 16:
167
+ headers = {
168
+ Authorization: null,
169
+ };
170
+ return [3 /*break*/, 17];
171
+ case 17: return [2 /*return*/, headers];
172
+ }
173
+ });
174
+ });
175
+ };
176
+ /**
177
+ * to get the operation type
178
+ * @param operation
179
+ */
180
+ InternalGraphQLAPIClass.prototype.getGraphqlOperationType = function (operation) {
181
+ var doc = graphql_1.parse(operation);
182
+ var definitions = doc.definitions;
183
+ var _a = tslib_1.__read(definitions, 1), operationType = _a[0].operation;
184
+ return operationType;
185
+ };
186
+ /**
187
+ * Executes a GraphQL operation
188
+ *
189
+ * @param options - GraphQL Options
190
+ * @param [additionalHeaders] - headers to merge in after any `graphql_headers` set in the config
191
+ * @returns An Observable if the query is a subscription query, else a promise of the graphql result.
192
+ */
193
+ InternalGraphQLAPIClass.prototype.graphql = function (_a, additionalHeaders, customUserAgentDetails) {
194
+ var paramQuery = _a.query, _b = _a.variables, variables = _b === void 0 ? {} : _b, authMode = _a.authMode, authToken = _a.authToken;
195
+ var query = typeof paramQuery === 'string'
196
+ ? graphql_1.parse(paramQuery)
197
+ : graphql_1.parse(graphql_1.print(paramQuery));
198
+ var _c = tslib_1.__read(query.definitions.filter(function (def) { return def.kind === 'OperationDefinition'; }), 1), _d = _c[0], operationDef = _d === void 0 ? {} : _d;
199
+ var operationType = operationDef.operation;
200
+ var headers = additionalHeaders || {};
201
+ // if an authorization header is set, have the explicit authToken take precedence
202
+ if (authToken) {
203
+ headers.Authorization = authToken;
204
+ }
205
+ switch (operationType) {
206
+ case 'query':
207
+ case 'mutation':
208
+ this.createInstanceIfNotCreated();
209
+ var cancellableToken = this._api.getCancellableToken();
210
+ var initParams = {
211
+ cancellableToken: cancellableToken,
212
+ withCredentials: this._options.withCredentials,
213
+ };
214
+ var responsePromise = this._graphql({ query: query, variables: variables, authMode: authMode }, headers, initParams, customUserAgentDetails);
215
+ this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);
216
+ return responsePromise;
217
+ case 'subscription':
218
+ return this._graphqlSubscribe({ query: query, variables: variables, authMode: authMode }, headers, customUserAgentDetails);
219
+ default:
220
+ throw new Error("invalid operation type: " + operationType);
221
+ }
222
+ };
223
+ InternalGraphQLAPIClass.prototype._graphql = function (_a, additionalHeaders, initParams, customUserAgentDetails) {
224
+ var query = _a.query, variables = _a.variables, authMode = _a.authMode;
225
+ if (additionalHeaders === void 0) { additionalHeaders = {}; }
226
+ if (initParams === void 0) { initParams = {}; }
227
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
228
+ var _b, region, appSyncGraphqlEndpoint, _c, graphql_headers, customGraphqlEndpoint, customEndpointRegion, headers, _d, _e, _f, _g, _h, _j, body, init, endpoint, error, response, err_1, errors;
229
+ var _k;
230
+ return tslib_1.__generator(this, function (_l) {
231
+ switch (_l.label) {
232
+ case 0:
233
+ this.createInstanceIfNotCreated();
234
+ _b = this._options, region = _b.aws_appsync_region, appSyncGraphqlEndpoint = _b.aws_appsync_graphqlEndpoint, _c = _b.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c, customGraphqlEndpoint = _b.graphql_endpoint, customEndpointRegion = _b.graphql_endpoint_iam_region;
235
+ _d = [{}];
236
+ _e = !customGraphqlEndpoint;
237
+ if (!_e) return [3 /*break*/, 2];
238
+ return [4 /*yield*/, this._headerBasedAuth(authMode, additionalHeaders)];
239
+ case 1:
240
+ _e = (_l.sent());
241
+ _l.label = 2;
242
+ case 2:
243
+ _f = [tslib_1.__assign.apply(void 0, _d.concat([(_e)]))];
244
+ _g = customGraphqlEndpoint;
245
+ if (!_g) return [3 /*break*/, 6];
246
+ if (!customEndpointRegion) return [3 /*break*/, 4];
247
+ return [4 /*yield*/, this._headerBasedAuth(authMode, additionalHeaders)];
248
+ case 3:
249
+ _h = _l.sent();
250
+ return [3 /*break*/, 5];
251
+ case 4:
252
+ _h = { Authorization: null };
253
+ _l.label = 5;
254
+ case 5:
255
+ _g = (_h);
256
+ _l.label = 6;
257
+ case 6:
258
+ _j = [tslib_1.__assign.apply(void 0, _f.concat([(_g)]))];
259
+ return [4 /*yield*/, graphql_headers({ query: query, variables: variables })];
260
+ case 7:
261
+ headers = tslib_1.__assign.apply(void 0, [tslib_1.__assign.apply(void 0, [tslib_1.__assign.apply(void 0, _j.concat([(_l.sent())])), additionalHeaders]), (!customGraphqlEndpoint && (_k = {},
262
+ _k[USER_AGENT_HEADER] = core_1.getAmplifyUserAgentString(customUserAgentDetails),
263
+ _k))]);
264
+ body = {
265
+ query: graphql_1.print(query),
266
+ variables: variables,
267
+ };
268
+ init = Object.assign({
269
+ headers: headers,
270
+ body: body,
271
+ signerServiceInfo: {
272
+ service: !customGraphqlEndpoint ? 'appsync' : 'execute-api',
273
+ region: !customGraphqlEndpoint ? region : customEndpointRegion,
274
+ },
275
+ }, initParams);
276
+ endpoint = customGraphqlEndpoint || appSyncGraphqlEndpoint;
277
+ if (!endpoint) {
278
+ error = new graphql_1.GraphQLError('No graphql endpoint provided.');
279
+ throw {
280
+ data: {},
281
+ errors: [error],
282
+ };
283
+ }
284
+ _l.label = 8;
285
+ case 8:
286
+ _l.trys.push([8, 10, , 11]);
287
+ return [4 /*yield*/, this._api.post(endpoint, init)];
288
+ case 9:
289
+ response = _l.sent();
290
+ return [3 /*break*/, 11];
291
+ case 10:
292
+ err_1 = _l.sent();
293
+ // If the exception is because user intentionally
294
+ // cancelled the request, do not modify the exception
295
+ // so that clients can identify the exception correctly.
296
+ if (this._api.isCancel(err_1)) {
297
+ throw err_1;
298
+ }
299
+ response = {
300
+ data: {},
301
+ errors: [new graphql_1.GraphQLError(err_1.message, null, null, null, null, err_1)],
302
+ };
303
+ return [3 /*break*/, 11];
304
+ case 11:
305
+ errors = response.errors;
306
+ if (errors && errors.length) {
307
+ throw response;
308
+ }
309
+ return [2 /*return*/, response];
310
+ }
311
+ });
312
+ });
313
+ };
314
+ InternalGraphQLAPIClass.prototype.createInstanceIfNotCreated = function () {
315
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
316
+ return tslib_1.__generator(this, function (_a) {
317
+ switch (_a.label) {
318
+ case 0:
319
+ if (!!this._api) return [3 /*break*/, 2];
320
+ return [4 /*yield*/, this.createInstance()];
321
+ case 1:
322
+ _a.sent();
323
+ _a.label = 2;
324
+ case 2: return [2 /*return*/];
325
+ }
326
+ });
327
+ });
328
+ };
329
+ /**
330
+ * Checks to see if an error thrown is from an api request cancellation
331
+ * @param {any} error - Any error
332
+ * @return {boolean} - A boolean indicating if the error was from an api request cancellation
333
+ */
334
+ InternalGraphQLAPIClass.prototype.isCancel = function (error) {
335
+ return this._api.isCancel(error);
336
+ };
337
+ /**
338
+ * Cancels an inflight request. Only applicable for graphql queries and mutations
339
+ * @param {any} request - request to cancel
340
+ * @return {boolean} - A boolean indicating if the request was cancelled
341
+ */
342
+ InternalGraphQLAPIClass.prototype.cancel = function (request, message) {
343
+ return this._api.cancel(request, message);
344
+ };
345
+ /**
346
+ * Check if the request has a corresponding cancel token in the WeakMap.
347
+ * @params request - The request promise
348
+ * @return if the request has a corresponding cancel token.
349
+ */
350
+ InternalGraphQLAPIClass.prototype.hasCancelToken = function (request) {
351
+ return this._api.hasCancelToken(request);
352
+ };
353
+ InternalGraphQLAPIClass.prototype._graphqlSubscribe = function (_a, additionalHeaders, customUserAgentDetails) {
354
+ var query = _a.query, variables = _a.variables, defaultAuthenticationType = _a.authMode, authToken = _a.authToken;
355
+ if (additionalHeaders === void 0) { additionalHeaders = {}; }
356
+ var _b = this._options, region = _b.aws_appsync_region, appSyncGraphqlEndpoint = _b.aws_appsync_graphqlEndpoint, aws_appsync_authenticationType = _b.aws_appsync_authenticationType, apiKey = _b.aws_appsync_apiKey, _c = _b.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c;
357
+ var authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM';
358
+ if (internals_1.InternalPubSub && typeof internals_1.InternalPubSub.subscribe === 'function') {
359
+ return internals_1.InternalPubSub.subscribe('', {
360
+ provider: core_1.INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER,
361
+ appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,
362
+ authenticationType: authenticationType,
363
+ apiKey: apiKey,
364
+ query: graphql_1.print(query),
365
+ region: region,
366
+ variables: variables,
367
+ graphql_headers: graphql_headers,
368
+ additionalHeaders: additionalHeaders,
369
+ authToken: authToken,
370
+ }, customUserAgentDetails);
371
+ }
372
+ else {
373
+ logger.debug('No pubsub module applied for subscription');
374
+ throw new Error('No pubsub module applied for subscription');
375
+ }
376
+ };
377
+ /**
378
+ * @private
379
+ */
380
+ InternalGraphQLAPIClass.prototype._ensureCredentials = function () {
381
+ var _this = this;
382
+ return this.Credentials.get()
383
+ .then(function (credentials) {
384
+ if (!credentials)
385
+ return false;
386
+ var cred = _this.Credentials.shear(credentials);
387
+ logger.debug('set credentials for api', cred);
388
+ return true;
389
+ })
390
+ .catch(function (err) {
391
+ logger.warn('ensure credentials error', err);
392
+ return false;
393
+ });
394
+ };
395
+ return InternalGraphQLAPIClass;
396
+ }());
397
+ exports.InternalGraphQLAPIClass = InternalGraphQLAPIClass;
398
+ exports.InternalGraphQLAPI = new InternalGraphQLAPIClass(null);
399
+ core_1.Amplify.register(exports.InternalGraphQLAPI);
400
+ //# sourceMappingURL=InternalGraphQLAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalGraphQLAPI.js","sourceRoot":"","sources":["../../src/internals/InternalGraphQLAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { InternalGraphQLAPI, InternalGraphQLAPIClass, } from './InternalGraphQLAPI';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ // SPDX-License-Identifier: Apache-2.0
5
+ var InternalGraphQLAPI_1 = require("./InternalGraphQLAPI");
6
+ exports.InternalGraphQLAPI = InternalGraphQLAPI_1.InternalGraphQLAPI;
7
+ exports.InternalGraphQLAPIClass = InternalGraphQLAPI_1.InternalGraphQLAPIClass;
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internals/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,2DAG8B;AAF7B,kDAAA,kBAAkB,CAAA;AAClB,uDAAA,uBAAuB,CAAA"}
@@ -7,6 +7,9 @@ export interface GraphQLOptions {
7
7
  variables?: object;
8
8
  authMode?: keyof typeof GRAPHQL_AUTH_MODE;
9
9
  authToken?: string;
10
+ /**
11
+ * @deprecated This property should not be used
12
+ */
10
13
  userAgentSuffix?: string;
11
14
  }
12
15
  export interface GraphQLResult<T = object> {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;AAIA,0CAAsD;AAC7C,4BADA,wBAAiB,CACA;AAkB1B,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC3B,wDAAoC,CAAA;IACpC,uDAAmC,CAAA;IACnC,qDAAiC,CAAA;IACjC,yDAAqC,CAAA;IACrC,6DAAyC,CAAA;AAC1C,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;AAIA,0CAAsD;AAC7C,4BADA,wBAAiB,CACA;AAsB1B,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC3B,wDAAoC,CAAA;IACpC,uDAAmC,CAAA;IACnC,qDAAiC,CAAA;IACjC,yDAAqC,CAAA;IACrC,6DAAyC,CAAA;AAC1C,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B"}
@@ -1,47 +1,16 @@
1
- import { OperationTypeNode } from 'graphql';
1
+ import { GraphQLOptions, GraphQLResult } from './types';
2
+ import { InternalGraphQLAPIClass } from './internals';
2
3
  import Observable from 'zen-observable-ts';
3
- import { GraphQLOptions, GraphQLResult, GraphQLOperation } from './types';
4
- export declare const graphqlOperation: (query: any, variables?: {}, authToken?: string, userAgentSuffix?: string) => {
4
+ export declare const graphqlOperation: (query: any, variables?: {}, authToken?: string) => {
5
5
  query: any;
6
6
  variables: {};
7
7
  authToken: string;
8
- userAgentSuffix: string;
9
8
  };
10
9
  /**
11
10
  * Export Cloud Logic APIs
12
11
  */
13
- export declare class GraphQLAPIClass {
14
- /**
15
- * @private
16
- */
17
- private _options;
18
- private _api;
19
- Auth: import("@aws-amplify/auth/lib-esm/Auth").AuthClass;
20
- Cache: import("@aws-amplify/cache/lib-esm/types").ICache;
21
- Credentials: import("@aws-amplify/core").CredentialsClass;
22
- /**
23
- * Initialize GraphQL API with AWS configuration
24
- * @param {Object} options - Configuration object for API
25
- */
26
- constructor(options: any);
12
+ export declare class GraphQLAPIClass extends InternalGraphQLAPIClass {
27
13
  getModuleName(): string;
28
- /**
29
- * Configure API
30
- * @param {Object} config - Configuration of the API
31
- * @return {Object} - The current configuration
32
- */
33
- configure(options: any): any;
34
- /**
35
- * Create an instance of API for the library
36
- * @return - A promise of true if Success
37
- */
38
- createInstance(): true | Promise<never>;
39
- private _headerBasedAuth;
40
- /**
41
- * to get the operation type
42
- * @param operation
43
- */
44
- getGraphqlOperationType(operation: GraphQLOperation): OperationTypeNode;
45
14
  /**
46
15
  * Executes a GraphQL operation
47
16
  *
@@ -49,33 +18,8 @@ export declare class GraphQLAPIClass {
49
18
  * @param [additionalHeaders] - headers to merge in after any `graphql_headers` set in the config
50
19
  * @returns An Observable if the query is a subscription query, else a promise of the graphql result.
51
20
  */
52
- graphql<T = any>({ query: paramQuery, variables, authMode, authToken, userAgentSuffix, }: GraphQLOptions, additionalHeaders?: {
21
+ graphql<T = any>(options: GraphQLOptions, additionalHeaders?: {
53
22
  [key: string]: string;
54
23
  }): Observable<GraphQLResult<T>> | Promise<GraphQLResult<T>>;
55
- private _graphql;
56
- createInstanceIfNotCreated(): Promise<void>;
57
- /**
58
- * Checks to see if an error thrown is from an api request cancellation
59
- * @param {any} error - Any error
60
- * @return {boolean} - A boolean indicating if the error was from an api request cancellation
61
- */
62
- isCancel(error: any): any;
63
- /**
64
- * Cancels an inflight request. Only applicable for graphql queries and mutations
65
- * @param {any} request - request to cancel
66
- * @return {boolean} - A boolean indicating if the request was cancelled
67
- */
68
- cancel(request: Promise<any>, message?: string): any;
69
- /**
70
- * Check if the request has a corresponding cancel token in the WeakMap.
71
- * @params request - The request promise
72
- * @return if the request has a corresponding cancel token.
73
- */
74
- hasCancelToken(request: Promise<any>): any;
75
- private _graphqlSubscribe;
76
- /**
77
- * @private
78
- */
79
- _ensureCredentials(): any;
80
24
  }
81
25
  export declare const GraphQLAPI: GraphQLAPIClass;