@aws-amplify/api-graphql 3.4.4-graphql-api-functional-options.1 → 3.4.4-graphql-api-functional-options.2

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,48 @@
1
+ import { GraphQLResult } from './index';
2
+ declare type UnionKeys<T> = T extends T ? keyof T : never;
3
+ declare type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, undefined>> : never;
4
+ export declare type StrictUnion<T> = StrictUnionHelper<T, T>;
5
+ export declare type SimpleAuthMode = {
6
+ authMode?: 'AMAZON_COGNITO_USERPOOLS' | 'API_KEY' | 'AWS_IAM';
7
+ };
8
+ export declare type LambdaAuthMode = {
9
+ authMode: 'AWS_LAMBDA';
10
+ authToken: string;
11
+ };
12
+ export declare type AuthMode = StrictUnion<SimpleAuthMode | LambdaAuthMode>;
13
+ export declare type GeneratedQuery<InputType, OutputType> = string & {
14
+ __generatedQueryInput: InputType;
15
+ __generatedQueryOutput: OutputType;
16
+ };
17
+ export declare type GraphqlQueryOverrides<IN extends {}, OUT extends {}> = {
18
+ variables: IN;
19
+ result: OUT;
20
+ };
21
+ export declare type GraphqlQueryParams<TYPED_GQL_STRING extends string, FALLBACK_TYPES> = AuthMode & {
22
+ variables: TYPED_GQL_STRING extends GeneratedQuery<infer IN, infer OUT> ? IN : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT> ? IN : any;
23
+ };
24
+ export declare type GraphqlQueryResult<T extends string, S> = T extends GeneratedQuery<infer IN, infer OUT> ? GraphQLResult<OUT> : S extends GraphqlQueryOverrides<infer IN, infer OUT> ? GraphQLResult<OUT> : any;
25
+ /** GraphQL mutate */
26
+ export declare type GeneratedMutation<InputType, OutputType> = string & {
27
+ __generatedMutationInput: InputType;
28
+ __generatedMutationOutput: OutputType;
29
+ };
30
+ export declare type GraphqlMutationParams<TYPED_GQL_STRING extends string, OVERRIDE_TYPE> = AuthMode & {
31
+ variables: TYPED_GQL_STRING extends GeneratedMutation<infer IN, infer OUT> ? IN : OVERRIDE_TYPE extends GraphqlQueryOverrides<infer OVERRIDE_IN, infer OUT> ? OVERRIDE_IN : any;
32
+ };
33
+ export declare type GraphqlMutationResult<TYPED_GQL_STRING extends string, FALLBACK_TYPES> = TYPED_GQL_STRING extends GeneratedMutation<infer IN, infer OUT> ? GraphQLResult<OUT> : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT> ? GraphQLResult<OUT> : any;
34
+ /** GraphQL subscribe */
35
+ export declare type GeneratedSubscription<InputType, OutputType> = string & {
36
+ __generatedSubscriptionInput: InputType;
37
+ __generatedSubscriptionOutput: OutputType;
38
+ };
39
+ export declare type GraphqlSubscriptionParams<TYPED_GQL_STRING extends string, FALLBACK_TYPES> = AuthMode & {
40
+ variables: TYPED_GQL_STRING extends GeneratedSubscription<infer IN, infer OUT> ? IN : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT> ? IN : any;
41
+ };
42
+ export declare type GraphqlSubscriptionResult<TYPED_GQL_STRING extends string, FALLBACK_TYPES> = {
43
+ provider: any;
44
+ value: {
45
+ data: TYPED_GQL_STRING extends GeneratedSubscription<infer IN, infer OUT> ? OUT : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT> ? OUT : any;
46
+ };
47
+ };
48
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=v6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v6.js","sourceRoot":"","sources":["../../src/types/v6.ts"],"names":[],"mappings":""}
package/lib/v6.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { Observable } from 'zen-observable-ts';
2
+ import { GraphqlQueryParams, GraphqlQueryResult, GraphqlMutationParams, GraphqlMutationResult, GraphqlSubscriptionParams, GraphqlSubscriptionResult } from './types/v6';
3
+ import { GraphQLOptions, GraphQLResult } from './types';
4
+ /**
5
+ * The proposed interface additions to the TypeBeast
6
+ */
7
+ declare class V6Client {
8
+ graphql<T = any>(options: GraphQLOptions, additionalHeaders?: {
9
+ [key: string]: string;
10
+ }): Observable<GraphqlSubscriptionResult<'', T>> | Promise<GraphQLResult<T>>;
11
+ query<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(document: TYPED_GQL_STRING, queryParams?: GraphqlQueryParams<TYPED_GQL_STRING, FALLBACK_TYPES>, additionalHeaders?: {
12
+ [key: string]: string;
13
+ }): Promise<GraphqlQueryResult<TYPED_GQL_STRING, FALLBACK_TYPES>>;
14
+ mutate<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(document: TYPED_GQL_STRING, queryParams?: GraphqlMutationParams<TYPED_GQL_STRING, FALLBACK_TYPES>, additionalHeaders?: {
15
+ [key: string]: string;
16
+ }): Promise<GraphqlMutationResult<TYPED_GQL_STRING, FALLBACK_TYPES>>;
17
+ subscribe<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(document: TYPED_GQL_STRING, queryParams?: GraphqlSubscriptionParams<TYPED_GQL_STRING, FALLBACK_TYPES>, additionalHeaders?: {
18
+ [key: string]: string;
19
+ }): Observable<GraphqlSubscriptionResult<TYPED_GQL_STRING, FALLBACK_TYPES>>;
20
+ }
21
+ export declare function generateClient(): V6Client;
22
+ export {};
package/lib/v6.js ADDED
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var GraphQLAPI_1 = require("./GraphQLAPI");
5
+ var graphql_1 = require("graphql");
6
+ /**
7
+ * The proposed interface additions to the TypeBeast
8
+ */
9
+ var V6Client = /** @class */ (function () {
10
+ function V6Client() {
11
+ }
12
+ V6Client.prototype.graphql = function (options, additionalHeaders) {
13
+ var parsedQuery = typeof options.query === 'string'
14
+ ? graphql_1.parse(options.query)
15
+ : graphql_1.parse(graphql_1.print(options.query));
16
+ var _a = tslib_1.__read(parsedQuery.definitions.filter(function (def) { return def.kind === 'OperationDefinition'; }), 1), _b = _a[0], operationDef = _b === void 0 ? {} : _b;
17
+ var operationType = operationDef.operation;
18
+ var childOptions = tslib_1.__assign(tslib_1.__assign({}, options), { query: graphql_1.print(parsedQuery) }); // todo
19
+ switch (operationType) {
20
+ case 'query':
21
+ return this.query(childOptions.query, childOptions, additionalHeaders);
22
+ case 'mutation':
23
+ return this.mutate(childOptions.query, childOptions, additionalHeaders);
24
+ case 'subscription':
25
+ return this.subscribe(childOptions.query, childOptions, additionalHeaders);
26
+ default:
27
+ throw new Error("invalid operation type: " + operationType);
28
+ }
29
+ };
30
+ V6Client.prototype.query = function (document, queryParams, additionalHeaders) {
31
+ return GraphQLAPI_1.GraphQLAPI.graphql(tslib_1.__assign(tslib_1.__assign({}, (queryParams || {})), { query: document }), additionalHeaders);
32
+ };
33
+ V6Client.prototype.mutate = function (document, queryParams, additionalHeaders) {
34
+ return GraphQLAPI_1.GraphQLAPI.graphql(tslib_1.__assign(tslib_1.__assign({}, (queryParams || {})), { query: document }), additionalHeaders);
35
+ };
36
+ V6Client.prototype.subscribe = function (document, queryParams, additionalHeaders) {
37
+ return GraphQLAPI_1.GraphQLAPI.graphql(tslib_1.__assign(tslib_1.__assign({}, (queryParams || {})), { query: document }), additionalHeaders);
38
+ };
39
+ return V6Client;
40
+ }());
41
+ function generateClient() {
42
+ return new V6Client();
43
+ }
44
+ exports.generateClient = generateClient;
45
+ //# sourceMappingURL=v6.js.map
package/lib/v6.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v6.js","sourceRoot":"","sources":["../src/v6.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAE1C,mCAAgE;AAahE;;GAEG;AACH;IAAA;IAgFA,CAAC;IA/EA,0BAAO,GAAP,UACC,OAAuB,EACvB,iBAA6C;QAE7C,IAAM,WAAW,GAChB,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;YAChC,CAAC,CAAC,eAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACtB,CAAC,CAAC,eAAK,CAAC,eAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1B,IAAA,qHAEL,EAFM,UAAiB,EAAjB,sCAEN,CAAC;QACM,IAAA,sCAAwB,CACS;QAEzC,IAAM,YAAY,GAAG,sCACjB,OAAO,KACV,KAAK,EAAE,eAAK,CAAC,WAAW,CAAC,GAClB,CAAC,CAAC,OAAO;QAEjB,QAAQ,aAAa,EAAE;YACtB,KAAK,OAAO;gBACX,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACxE,KAAK,UAAU;gBACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACzE,KAAK,cAAc;gBAClB,OAAO,IAAI,CAAC,SAAS,CACpB,YAAY,CAAC,KAAK,EAClB,YAAY,EACZ,iBAAiB,CACjB,CAAC;YACH;gBACC,MAAM,IAAI,KAAK,CAAC,6BAA2B,aAAe,CAAC,CAAC;SAC7D;IACF,CAAC;IAED,wBAAK,GAAL,UACC,QAA0B,EAC1B,WAAkE,EAClE,iBAA6C;QAE7C,OAAO,uBAAU,CAAC,OAAO,uCAEnB,CAAC,WAAW,IAAI,EAAE,CAAS,KAC/B,KAAK,EAAE,QAAQ,KAEhB,iBAAiB,CACgD,CAAC;IACpE,CAAC;IAED,yBAAM,GAAN,UACC,QAA0B,EAC1B,WAAqE,EACrE,iBAA6C;QAE7C,OAAO,uBAAU,CAAC,OAAO,uCAEnB,CAAC,WAAW,IAAI,EAAE,CAAS,KAC/B,KAAK,EAAE,QAAQ,KAEhB,iBAAiB,CACmD,CAAC;IACvE,CAAC;IAED,4BAAS,GAAT,UACC,QAA0B,EAC1B,WAAyE,EACzE,iBAA6C;QAE7C,OAAO,uBAAU,CAAC,OAAO,uCAEnB,CAAC,WAAW,IAAI,EAAE,CAAS,KAC/B,KAAK,EAAE,QAAQ,KAEhB,iBAAiB,CAGjB,CAAC;IACH,CAAC;IACF,eAAC;AAAD,CAAC,AAhFD,IAgFC;AAED,SAAgB,cAAc;IAC7B,OAAO,IAAI,QAAQ,EAAE,CAAC;AACvB,CAAC;AAFD,wCAEC"}
@@ -0,0 +1,48 @@
1
+ import { GraphQLResult } from './index';
2
+ declare type UnionKeys<T> = T extends T ? keyof T : never;
3
+ declare type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, undefined>> : never;
4
+ export declare type StrictUnion<T> = StrictUnionHelper<T, T>;
5
+ export declare type SimpleAuthMode = {
6
+ authMode?: 'AMAZON_COGNITO_USERPOOLS' | 'API_KEY' | 'AWS_IAM';
7
+ };
8
+ export declare type LambdaAuthMode = {
9
+ authMode: 'AWS_LAMBDA';
10
+ authToken: string;
11
+ };
12
+ export declare type AuthMode = StrictUnion<SimpleAuthMode | LambdaAuthMode>;
13
+ export declare type GeneratedQuery<InputType, OutputType> = string & {
14
+ __generatedQueryInput: InputType;
15
+ __generatedQueryOutput: OutputType;
16
+ };
17
+ export declare type GraphqlQueryOverrides<IN extends {}, OUT extends {}> = {
18
+ variables: IN;
19
+ result: OUT;
20
+ };
21
+ export declare type GraphqlQueryParams<TYPED_GQL_STRING extends string, FALLBACK_TYPES> = AuthMode & {
22
+ variables: TYPED_GQL_STRING extends GeneratedQuery<infer IN, infer OUT> ? IN : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT> ? IN : any;
23
+ };
24
+ export declare type GraphqlQueryResult<T extends string, S> = T extends GeneratedQuery<infer IN, infer OUT> ? GraphQLResult<OUT> : S extends GraphqlQueryOverrides<infer IN, infer OUT> ? GraphQLResult<OUT> : any;
25
+ /** GraphQL mutate */
26
+ export declare type GeneratedMutation<InputType, OutputType> = string & {
27
+ __generatedMutationInput: InputType;
28
+ __generatedMutationOutput: OutputType;
29
+ };
30
+ export declare type GraphqlMutationParams<TYPED_GQL_STRING extends string, OVERRIDE_TYPE> = AuthMode & {
31
+ variables: TYPED_GQL_STRING extends GeneratedMutation<infer IN, infer OUT> ? IN : OVERRIDE_TYPE extends GraphqlQueryOverrides<infer OVERRIDE_IN, infer OUT> ? OVERRIDE_IN : any;
32
+ };
33
+ export declare type GraphqlMutationResult<TYPED_GQL_STRING extends string, FALLBACK_TYPES> = TYPED_GQL_STRING extends GeneratedMutation<infer IN, infer OUT> ? GraphQLResult<OUT> : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT> ? GraphQLResult<OUT> : any;
34
+ /** GraphQL subscribe */
35
+ export declare type GeneratedSubscription<InputType, OutputType> = string & {
36
+ __generatedSubscriptionInput: InputType;
37
+ __generatedSubscriptionOutput: OutputType;
38
+ };
39
+ export declare type GraphqlSubscriptionParams<TYPED_GQL_STRING extends string, FALLBACK_TYPES> = AuthMode & {
40
+ variables: TYPED_GQL_STRING extends GeneratedSubscription<infer IN, infer OUT> ? IN : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT> ? IN : any;
41
+ };
42
+ export declare type GraphqlSubscriptionResult<TYPED_GQL_STRING extends string, FALLBACK_TYPES> = {
43
+ provider: any;
44
+ value: {
45
+ data: TYPED_GQL_STRING extends GeneratedSubscription<infer IN, infer OUT> ? OUT : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT> ? OUT : any;
46
+ };
47
+ };
48
+ export {};
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=v6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v6.js","sourceRoot":"","sources":["../../src/types/v6.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { Observable } from 'zen-observable-ts';
2
+ import { GraphqlQueryParams, GraphqlQueryResult, GraphqlMutationParams, GraphqlMutationResult, GraphqlSubscriptionParams, GraphqlSubscriptionResult } from './types/v6';
3
+ import { GraphQLOptions, GraphQLResult } from './types';
4
+ /**
5
+ * The proposed interface additions to the TypeBeast
6
+ */
7
+ declare class V6Client {
8
+ graphql<T = any>(options: GraphQLOptions, additionalHeaders?: {
9
+ [key: string]: string;
10
+ }): Observable<GraphqlSubscriptionResult<'', T>> | Promise<GraphQLResult<T>>;
11
+ query<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(document: TYPED_GQL_STRING, queryParams?: GraphqlQueryParams<TYPED_GQL_STRING, FALLBACK_TYPES>, additionalHeaders?: {
12
+ [key: string]: string;
13
+ }): Promise<GraphqlQueryResult<TYPED_GQL_STRING, FALLBACK_TYPES>>;
14
+ mutate<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(document: TYPED_GQL_STRING, queryParams?: GraphqlMutationParams<TYPED_GQL_STRING, FALLBACK_TYPES>, additionalHeaders?: {
15
+ [key: string]: string;
16
+ }): Promise<GraphqlMutationResult<TYPED_GQL_STRING, FALLBACK_TYPES>>;
17
+ subscribe<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(document: TYPED_GQL_STRING, queryParams?: GraphqlSubscriptionParams<TYPED_GQL_STRING, FALLBACK_TYPES>, additionalHeaders?: {
18
+ [key: string]: string;
19
+ }): Observable<GraphqlSubscriptionResult<TYPED_GQL_STRING, FALLBACK_TYPES>>;
20
+ }
21
+ export declare function generateClient(): V6Client;
22
+ export {};
package/lib-esm/v6.js ADDED
@@ -0,0 +1,42 @@
1
+ import { __assign, __read } from "tslib";
2
+ import { GraphQLAPI } from './GraphQLAPI';
3
+ import { parse, print } from 'graphql';
4
+ /**
5
+ * The proposed interface additions to the TypeBeast
6
+ */
7
+ var V6Client = /** @class */ (function () {
8
+ function V6Client() {
9
+ }
10
+ V6Client.prototype.graphql = function (options, additionalHeaders) {
11
+ var parsedQuery = typeof options.query === 'string'
12
+ ? parse(options.query)
13
+ : parse(print(options.query));
14
+ var _a = __read(parsedQuery.definitions.filter(function (def) { return def.kind === 'OperationDefinition'; }), 1), _b = _a[0], operationDef = _b === void 0 ? {} : _b;
15
+ var operationType = operationDef.operation;
16
+ var childOptions = __assign(__assign({}, options), { query: print(parsedQuery) }); // todo
17
+ switch (operationType) {
18
+ case 'query':
19
+ return this.query(childOptions.query, childOptions, additionalHeaders);
20
+ case 'mutation':
21
+ return this.mutate(childOptions.query, childOptions, additionalHeaders);
22
+ case 'subscription':
23
+ return this.subscribe(childOptions.query, childOptions, additionalHeaders);
24
+ default:
25
+ throw new Error("invalid operation type: " + operationType);
26
+ }
27
+ };
28
+ V6Client.prototype.query = function (document, queryParams, additionalHeaders) {
29
+ return GraphQLAPI.graphql(__assign(__assign({}, (queryParams || {})), { query: document }), additionalHeaders);
30
+ };
31
+ V6Client.prototype.mutate = function (document, queryParams, additionalHeaders) {
32
+ return GraphQLAPI.graphql(__assign(__assign({}, (queryParams || {})), { query: document }), additionalHeaders);
33
+ };
34
+ V6Client.prototype.subscribe = function (document, queryParams, additionalHeaders) {
35
+ return GraphQLAPI.graphql(__assign(__assign({}, (queryParams || {})), { query: document }), additionalHeaders);
36
+ };
37
+ return V6Client;
38
+ }());
39
+ export function generateClient() {
40
+ return new V6Client();
41
+ }
42
+ //# sourceMappingURL=v6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v6.js","sourceRoot":"","sources":["../src/v6.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAA2B,MAAM,SAAS,CAAC;AAahE;;GAEG;AACH;IAAA;IAgFA,CAAC;IA/EA,0BAAO,GAAP,UACC,OAAuB,EACvB,iBAA6C;QAE7C,IAAM,WAAW,GAChB,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;YAChC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACtB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1B,IAAA,6GAEL,EAFM,UAAiB,EAAjB,sCAEN,CAAC;QACM,IAAA,sCAAwB,CACS;QAEzC,IAAM,YAAY,GAAG,sBACjB,OAAO,KACV,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,GAClB,CAAC,CAAC,OAAO;QAEjB,QAAQ,aAAa,EAAE;YACtB,KAAK,OAAO;gBACX,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACxE,KAAK,UAAU;gBACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACzE,KAAK,cAAc;gBAClB,OAAO,IAAI,CAAC,SAAS,CACpB,YAAY,CAAC,KAAK,EAClB,YAAY,EACZ,iBAAiB,CACjB,CAAC;YACH;gBACC,MAAM,IAAI,KAAK,CAAC,6BAA2B,aAAe,CAAC,CAAC;SAC7D;IACF,CAAC;IAED,wBAAK,GAAL,UACC,QAA0B,EAC1B,WAAkE,EAClE,iBAA6C;QAE7C,OAAO,UAAU,CAAC,OAAO,uBAEnB,CAAC,WAAW,IAAI,EAAE,CAAS,KAC/B,KAAK,EAAE,QAAQ,KAEhB,iBAAiB,CACgD,CAAC;IACpE,CAAC;IAED,yBAAM,GAAN,UACC,QAA0B,EAC1B,WAAqE,EACrE,iBAA6C;QAE7C,OAAO,UAAU,CAAC,OAAO,uBAEnB,CAAC,WAAW,IAAI,EAAE,CAAS,KAC/B,KAAK,EAAE,QAAQ,KAEhB,iBAAiB,CACmD,CAAC;IACvE,CAAC;IAED,4BAAS,GAAT,UACC,QAA0B,EAC1B,WAAyE,EACzE,iBAA6C;QAE7C,OAAO,UAAU,CAAC,OAAO,uBAEnB,CAAC,WAAW,IAAI,EAAE,CAAS,KAC/B,KAAK,EAAE,QAAQ,KAEhB,iBAAiB,CAGjB,CAAC;IACH,CAAC;IACF,eAAC;AAAD,CAAC,AAhFD,IAgFC;AAED,MAAM,UAAU,cAAc;IAC7B,OAAO,IAAI,QAAQ,EAAE,CAAC;AACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/api-graphql",
3
- "version": "3.4.4-graphql-api-functional-options.1+d5fd0e258",
3
+ "version": "3.4.4-graphql-api-functional-options.2+627f308ed",
4
4
  "description": "Api-graphql category of aws-amplify",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib-esm/index.js",
@@ -50,11 +50,11 @@
50
50
  "internals"
51
51
  ],
52
52
  "dependencies": {
53
- "@aws-amplify/api-rest": "3.3.3-graphql-api-functional-options.1+d5fd0e258",
54
- "@aws-amplify/auth": "5.5.4-graphql-api-functional-options.1+d5fd0e258",
55
- "@aws-amplify/cache": "5.1.4-graphql-api-functional-options.1+d5fd0e258",
56
- "@aws-amplify/core": "5.5.3-graphql-api-functional-options.1+d5fd0e258",
57
- "@aws-amplify/pubsub": "5.3.4-graphql-api-functional-options.1+d5fd0e258",
53
+ "@aws-amplify/api-rest": "3.3.3-graphql-api-functional-options.2+627f308ed",
54
+ "@aws-amplify/auth": "5.5.4-graphql-api-functional-options.2+627f308ed",
55
+ "@aws-amplify/cache": "5.1.4-graphql-api-functional-options.2+627f308ed",
56
+ "@aws-amplify/core": "5.5.3-graphql-api-functional-options.2+627f308ed",
57
+ "@aws-amplify/pubsub": "5.3.4-graphql-api-functional-options.2+627f308ed",
58
58
  "graphql": "15.8.0",
59
59
  "tslib": "^1.8.0",
60
60
  "uuid": "^3.2.1",
@@ -115,5 +115,5 @@
115
115
  "lib-esm"
116
116
  ]
117
117
  },
118
- "gitHead": "d5fd0e2582fd98135b60e8ba98be50040a6f1b8b"
118
+ "gitHead": "627f308ed709b6c0ab8ec750d7235f3e007a669a"
119
119
  }
@@ -0,0 +1,110 @@
1
+ import { GraphQLResult } from './index';
2
+
3
+ // #region shared API types ... probably to be pulled from core or something later.
4
+
5
+ type UnionKeys<T> = T extends T ? keyof T : never;
6
+ type StrictUnionHelper<T, TAll> = T extends any
7
+ ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, undefined>>
8
+ : never;
9
+ export type StrictUnion<T> = StrictUnionHelper<T, T>;
10
+ export type SimpleAuthMode = {
11
+ authMode?: 'AMAZON_COGNITO_USERPOOLS' | 'API_KEY' | 'AWS_IAM';
12
+ };
13
+
14
+ export type LambdaAuthMode = {
15
+ authMode: 'AWS_LAMBDA';
16
+ authToken: string;
17
+ };
18
+
19
+ export type AuthMode = StrictUnion<SimpleAuthMode | LambdaAuthMode>;
20
+
21
+ // #endregion
22
+
23
+ export type GeneratedQuery<InputType, OutputType> = string & {
24
+ __generatedQueryInput: InputType;
25
+ __generatedQueryOutput: OutputType;
26
+ };
27
+
28
+ export type GraphqlQueryOverrides<IN extends {}, OUT extends {}> = {
29
+ variables: IN;
30
+ result: OUT;
31
+ };
32
+
33
+ export type GraphqlQueryParams<
34
+ TYPED_GQL_STRING extends string,
35
+ FALLBACK_TYPES
36
+ > = AuthMode & {
37
+ variables: TYPED_GQL_STRING extends GeneratedQuery<infer IN, infer OUT>
38
+ ? IN
39
+ : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT>
40
+ ? IN
41
+ : any;
42
+ };
43
+
44
+ export type GraphqlQueryResult<T extends string, S> = T extends GeneratedQuery<
45
+ infer IN,
46
+ infer OUT
47
+ >
48
+ ? GraphQLResult<OUT>
49
+ : S extends GraphqlQueryOverrides<infer IN, infer OUT>
50
+ ? GraphQLResult<OUT>
51
+ : any;
52
+
53
+ /** GraphQL mutate */
54
+
55
+ export type GeneratedMutation<InputType, OutputType> = string & {
56
+ __generatedMutationInput: InputType;
57
+ __generatedMutationOutput: OutputType;
58
+ };
59
+
60
+ export type GraphqlMutationParams<
61
+ TYPED_GQL_STRING extends string,
62
+ OVERRIDE_TYPE
63
+ > = AuthMode & {
64
+ variables: TYPED_GQL_STRING extends GeneratedMutation<infer IN, infer OUT>
65
+ ? IN
66
+ : OVERRIDE_TYPE extends GraphqlQueryOverrides<infer OVERRIDE_IN, infer OUT>
67
+ ? OVERRIDE_IN
68
+ : any;
69
+ };
70
+
71
+ export type GraphqlMutationResult<
72
+ TYPED_GQL_STRING extends string,
73
+ FALLBACK_TYPES
74
+ > = TYPED_GQL_STRING extends GeneratedMutation<infer IN, infer OUT>
75
+ ? GraphQLResult<OUT>
76
+ : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT>
77
+ ? GraphQLResult<OUT>
78
+ : any;
79
+
80
+ /** GraphQL subscribe */
81
+
82
+ export type GeneratedSubscription<InputType, OutputType> = string & {
83
+ __generatedSubscriptionInput: InputType;
84
+ __generatedSubscriptionOutput: OutputType;
85
+ };
86
+
87
+ export type GraphqlSubscriptionParams<
88
+ TYPED_GQL_STRING extends string,
89
+ FALLBACK_TYPES
90
+ > = AuthMode & {
91
+ variables: TYPED_GQL_STRING extends GeneratedSubscription<infer IN, infer OUT>
92
+ ? IN
93
+ : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT>
94
+ ? IN
95
+ : any;
96
+ };
97
+
98
+ export type GraphqlSubscriptionResult<
99
+ TYPED_GQL_STRING extends string,
100
+ FALLBACK_TYPES
101
+ > = {
102
+ provider: any;
103
+ value: {
104
+ data: TYPED_GQL_STRING extends GeneratedSubscription<infer IN, infer OUT>
105
+ ? OUT
106
+ : FALLBACK_TYPES extends GraphqlQueryOverrides<infer IN, infer OUT>
107
+ ? OUT
108
+ : any;
109
+ };
110
+ };
package/src/v6.ts ADDED
@@ -0,0 +1,103 @@
1
+ import { GraphQLAPI } from './GraphQLAPI';
2
+ import { Observable } from 'zen-observable-ts';
3
+ import { parse, print, OperationDefinitionNode } from 'graphql';
4
+
5
+ import {
6
+ GraphqlQueryParams,
7
+ GraphqlQueryResult,
8
+ GraphqlMutationParams,
9
+ GraphqlMutationResult,
10
+ GraphqlSubscriptionParams,
11
+ GraphqlSubscriptionResult,
12
+ } from './types/v6';
13
+
14
+ import { GraphQLOptions, GraphQLResult } from './types';
15
+
16
+ /**
17
+ * The proposed interface additions to the TypeBeast
18
+ */
19
+ class V6Client {
20
+ graphql<T = any>(
21
+ options: GraphQLOptions,
22
+ additionalHeaders?: { [key: string]: string }
23
+ ): Observable<GraphqlSubscriptionResult<'', T>> | Promise<GraphQLResult<T>> {
24
+ const parsedQuery =
25
+ typeof options.query === 'string'
26
+ ? parse(options.query)
27
+ : parse(print(options.query));
28
+
29
+ const [operationDef = {}] = parsedQuery.definitions.filter(
30
+ def => def.kind === 'OperationDefinition'
31
+ );
32
+ const { operation: operationType } =
33
+ operationDef as OperationDefinitionNode;
34
+
35
+ const childOptions = {
36
+ ...options,
37
+ query: print(parsedQuery),
38
+ } as any; // todo
39
+
40
+ switch (operationType) {
41
+ case 'query':
42
+ return this.query(childOptions.query, childOptions, additionalHeaders);
43
+ case 'mutation':
44
+ return this.mutate(childOptions.query, childOptions, additionalHeaders);
45
+ case 'subscription':
46
+ return this.subscribe(
47
+ childOptions.query,
48
+ childOptions,
49
+ additionalHeaders
50
+ );
51
+ default:
52
+ throw new Error(`invalid operation type: ${operationType}`);
53
+ }
54
+ }
55
+
56
+ query<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(
57
+ document: TYPED_GQL_STRING,
58
+ queryParams?: GraphqlQueryParams<TYPED_GQL_STRING, FALLBACK_TYPES>,
59
+ additionalHeaders?: { [key: string]: string }
60
+ ): Promise<GraphqlQueryResult<TYPED_GQL_STRING, FALLBACK_TYPES>> {
61
+ return GraphQLAPI.graphql(
62
+ {
63
+ ...((queryParams || {}) as any), // todo
64
+ query: document,
65
+ },
66
+ additionalHeaders
67
+ ) as Promise<GraphqlQueryResult<TYPED_GQL_STRING, FALLBACK_TYPES>>;
68
+ }
69
+
70
+ mutate<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(
71
+ document: TYPED_GQL_STRING,
72
+ queryParams?: GraphqlMutationParams<TYPED_GQL_STRING, FALLBACK_TYPES>,
73
+ additionalHeaders?: { [key: string]: string }
74
+ ): Promise<GraphqlMutationResult<TYPED_GQL_STRING, FALLBACK_TYPES>> {
75
+ return GraphQLAPI.graphql(
76
+ {
77
+ ...((queryParams || {}) as any), // todo
78
+ query: document,
79
+ },
80
+ additionalHeaders
81
+ ) as Promise<GraphqlMutationResult<TYPED_GQL_STRING, FALLBACK_TYPES>>;
82
+ }
83
+
84
+ subscribe<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(
85
+ document: TYPED_GQL_STRING,
86
+ queryParams?: GraphqlSubscriptionParams<TYPED_GQL_STRING, FALLBACK_TYPES>,
87
+ additionalHeaders?: { [key: string]: string }
88
+ ): Observable<GraphqlSubscriptionResult<TYPED_GQL_STRING, FALLBACK_TYPES>> {
89
+ return GraphQLAPI.graphql(
90
+ {
91
+ ...((queryParams || {}) as any), // todo
92
+ query: document,
93
+ },
94
+ additionalHeaders
95
+ ) as Observable<
96
+ GraphqlSubscriptionResult<TYPED_GQL_STRING, FALLBACK_TYPES>
97
+ >;
98
+ }
99
+ }
100
+
101
+ export function generateClient() {
102
+ return new V6Client();
103
+ }