@aws-amplify/data-schema 1.3.10 → 1.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.
- package/dist/cjs/ModelType.js +5 -0
- package/dist/cjs/ModelType.js.map +1 -1
- package/dist/cjs/SchemaProcessor.js +58 -1
- package/dist/cjs/SchemaProcessor.js.map +1 -1
- package/dist/cjs/runtime/addSchemaToClient.js +1 -0
- package/dist/cjs/runtime/addSchemaToClient.js.map +1 -1
- package/dist/cjs/runtime/addSchemaToClientWithInstance.js +1 -0
- package/dist/cjs/runtime/addSchemaToClientWithInstance.js.map +1 -1
- package/dist/cjs/runtime/internals/APIClient.js +63 -42
- package/dist/cjs/runtime/internals/APIClient.js.map +1 -1
- package/dist/cjs/runtime/internals/cancellation.js +48 -0
- package/dist/cjs/runtime/internals/cancellation.js.map +1 -0
- package/dist/cjs/runtime/internals/clientUtils.js +45 -3
- package/dist/cjs/runtime/internals/clientUtils.js.map +1 -1
- package/dist/cjs/runtime/internals/index.js +3 -1
- package/dist/cjs/runtime/internals/index.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/custom.js +91 -85
- package/dist/cjs/runtime/internals/operations/custom.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/get.js +71 -65
- package/dist/cjs/runtime/internals/operations/get.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/indexQuery.js +66 -60
- package/dist/cjs/runtime/internals/operations/indexQuery.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/list.js +90 -84
- package/dist/cjs/runtime/internals/operations/list.js.map +1 -1
- package/dist/cjs/runtime/internals/server/generateModelsProperty.js +3 -3
- package/dist/cjs/runtime/internals/server/generateModelsProperty.js.map +1 -1
- package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js +3 -3
- package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js.map +1 -1
- package/dist/cjs/runtime/utils/index.js +3 -1
- package/dist/cjs/runtime/utils/index.js.map +1 -1
- package/dist/cjs/runtime/utils/selfAwareAsync.js +40 -0
- package/dist/cjs/runtime/utils/selfAwareAsync.js.map +1 -0
- package/dist/esm/Authorization.d.ts +1 -1
- package/dist/esm/ClientSchema/Core/ClientModel.d.ts +20 -1
- package/dist/esm/ClientSchema/utilities/ResolveField.d.ts +5 -1
- package/dist/esm/ModelType.d.ts +6 -0
- package/dist/esm/ModelType.mjs +5 -0
- package/dist/esm/ModelType.mjs.map +1 -1
- package/dist/esm/SchemaProcessor.mjs +58 -1
- package/dist/esm/SchemaProcessor.mjs.map +1 -1
- package/dist/esm/runtime/addSchemaToClient.mjs +2 -0
- package/dist/esm/runtime/addSchemaToClient.mjs.map +1 -1
- package/dist/esm/runtime/addSchemaToClientWithInstance.mjs +2 -0
- package/dist/esm/runtime/addSchemaToClientWithInstance.mjs.map +1 -1
- package/dist/esm/runtime/bridge-types.d.ts +2 -2
- package/dist/esm/runtime/client/index.d.ts +6 -6
- package/dist/esm/runtime/internals/APIClient.d.ts +2 -2
- package/dist/esm/runtime/internals/APIClient.mjs +64 -42
- package/dist/esm/runtime/internals/APIClient.mjs.map +1 -1
- package/dist/esm/runtime/internals/cancellation.d.ts +10 -0
- package/dist/esm/runtime/internals/cancellation.mjs +44 -0
- package/dist/esm/runtime/internals/cancellation.mjs.map +1 -0
- package/dist/esm/runtime/internals/clientUtils.d.ts +78 -1
- package/dist/esm/runtime/internals/clientUtils.mjs +45 -3
- package/dist/esm/runtime/internals/clientUtils.mjs.map +1 -1
- package/dist/esm/runtime/internals/index.d.ts +1 -0
- package/dist/esm/runtime/internals/index.mjs +1 -0
- package/dist/esm/runtime/internals/index.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/custom.d.ts +1 -1
- package/dist/esm/runtime/internals/operations/custom.mjs +91 -85
- package/dist/esm/runtime/internals/operations/custom.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/get.d.ts +1 -1
- package/dist/esm/runtime/internals/operations/get.mjs +71 -65
- package/dist/esm/runtime/internals/operations/get.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/indexQuery.d.ts +1 -1
- package/dist/esm/runtime/internals/operations/indexQuery.mjs +66 -60
- package/dist/esm/runtime/internals/operations/indexQuery.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/list.d.ts +1 -1
- package/dist/esm/runtime/internals/operations/list.mjs +90 -84
- package/dist/esm/runtime/internals/operations/list.mjs.map +1 -1
- package/dist/esm/runtime/internals/server/generateModelsProperty.mjs +4 -4
- package/dist/esm/runtime/internals/server/generateModelsProperty.mjs.map +1 -1
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs +4 -4
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs.map +1 -1
- package/dist/esm/runtime/utils/index.d.ts +1 -0
- package/dist/esm/runtime/utils/index.mjs +1 -0
- package/dist/esm/runtime/utils/index.mjs.map +1 -1
- package/dist/esm/runtime/utils/selfAwareAsync.d.ts +19 -0
- package/dist/esm/runtime/utils/selfAwareAsync.mjs +37 -0
- package/dist/esm/runtime/utils/selfAwareAsync.mjs.map +1 -0
- package/dist/meta/cjs.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/ClientSchema/Core/ClientModel.ts +29 -0
- package/src/ClientSchema/utilities/ResolveField.ts +26 -6
- package/src/ModelType.ts +31 -0
- package/src/SchemaProcessor.ts +77 -2
- package/src/runtime/addSchemaToClient.ts +2 -0
- package/src/runtime/addSchemaToClientWithInstance.ts +2 -0
- package/src/runtime/bridge-types.ts +2 -2
- package/src/runtime/client/index.ts +207 -184
- package/src/runtime/internals/APIClient.ts +67 -23
- package/src/runtime/internals/cancellation.ts +57 -0
- package/src/runtime/internals/clientUtils.ts +61 -1
- package/src/runtime/internals/index.ts +1 -0
- package/src/runtime/internals/operations/custom.ts +117 -109
- package/src/runtime/internals/operations/get.ts +111 -95
- package/src/runtime/internals/operations/indexQuery.ts +100 -94
- package/src/runtime/internals/operations/list.ts +132 -119
- package/src/runtime/internals/server/generateModelsProperty.ts +31 -28
- package/src/runtime/internals/utils/clientProperties/generateModelsProperty.ts +36 -33
- package/src/runtime/utils/index.ts +1 -0
- package/src/runtime/utils/selfAwareAsync.ts +39 -0
|
@@ -1,92 +1,98 @@
|
|
|
1
1
|
import { generateGraphQLDocument, buildGraphQLVariables, authModeParams, getCustomHeaders, flattenItems, initializeModel } from '../APIClient.mjs';
|
|
2
2
|
import { handleSingularGraphQlError } from './utils.mjs';
|
|
3
|
+
import { selfAwareAsync } from '../../utils/selfAwareAsync.mjs';
|
|
4
|
+
import { extendCancellability } from '../cancellation.mjs';
|
|
3
5
|
|
|
4
6
|
function getFactory(client, modelIntrospection, model, operation, getInternals, useContext = false) {
|
|
5
|
-
const getWithContext =
|
|
7
|
+
const getWithContext = (contextSpec, arg, options) => {
|
|
6
8
|
return _get(client, modelIntrospection, model, arg, options, operation, getInternals, contextSpec);
|
|
7
9
|
};
|
|
8
|
-
const get =
|
|
10
|
+
const get = (arg, options) => {
|
|
9
11
|
return _get(client, modelIntrospection, model, arg, options, operation, getInternals);
|
|
10
12
|
};
|
|
11
13
|
return useContext ? getWithContext : get;
|
|
12
14
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
15
|
+
function _get(client, modelIntrospection, model, arg, options, operation, getInternals, context) {
|
|
16
|
+
return selfAwareAsync(async (resultPromise) => {
|
|
17
|
+
const { name } = model;
|
|
18
|
+
const query = generateGraphQLDocument(modelIntrospection, name, operation, options);
|
|
19
|
+
const variables = buildGraphQLVariables(model, operation, arg, modelIntrospection);
|
|
20
|
+
const auth = authModeParams(client, getInternals, options);
|
|
21
|
+
try {
|
|
22
|
+
const headers = getCustomHeaders(client, getInternals, options?.headers);
|
|
23
|
+
const basePromise = context
|
|
24
|
+
? client.graphql(context, {
|
|
25
|
+
...auth,
|
|
26
|
+
query,
|
|
27
|
+
variables,
|
|
28
|
+
}, headers)
|
|
29
|
+
: client.graphql({
|
|
30
|
+
...auth,
|
|
31
|
+
query,
|
|
32
|
+
variables,
|
|
33
|
+
}, headers);
|
|
34
|
+
const extendedPromise = extendCancellability(basePromise, resultPromise);
|
|
35
|
+
const { data, extensions } = await extendedPromise;
|
|
36
|
+
// flatten response
|
|
37
|
+
if (data) {
|
|
38
|
+
const [key] = Object.keys(data);
|
|
39
|
+
const flattenedResult = flattenItems(modelIntrospection, name, data[key]);
|
|
40
|
+
if (flattenedResult === null) {
|
|
41
|
+
return { data: null, extensions };
|
|
42
|
+
}
|
|
43
|
+
else if (options?.selectionSet) {
|
|
44
|
+
return { data: flattenedResult, extensions };
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// TODO: refactor to avoid destructuring here
|
|
48
|
+
const [initialized] = initializeModel(client, name, [flattenedResult], modelIntrospection, auth.authMode, auth.authToken, !!context);
|
|
49
|
+
return { data: initialized, extensions };
|
|
50
|
+
}
|
|
40
51
|
}
|
|
41
52
|
else {
|
|
42
|
-
|
|
43
|
-
const [initialized] = initializeModel(client, name, [flattenedResult], modelIntrospection, auth.authMode, auth.authToken, !!context);
|
|
44
|
-
return { data: initialized, extensions };
|
|
53
|
+
return { data: null, extensions };
|
|
45
54
|
}
|
|
46
55
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
* 3) "populated" but with a `null` value `{ getPost: null }`
|
|
57
|
-
* 4) an actual record `{ getPost: { id: '1', title: 'Hello, World!' } }`
|
|
58
|
-
*/
|
|
59
|
-
const { data, errors } = error;
|
|
60
|
-
/**
|
|
61
|
-
* `data` is not `null`, and is not an empty object:
|
|
62
|
-
*/
|
|
63
|
-
if (data && Object.keys(data).length !== 0 && errors) {
|
|
64
|
-
const [key] = Object.keys(data);
|
|
65
|
-
const flattenedResult = flattenItems(modelIntrospection, name, data[key]);
|
|
56
|
+
catch (error) {
|
|
57
|
+
/**
|
|
58
|
+
* The `data` type returned by `error` here could be:
|
|
59
|
+
* 1) `null`
|
|
60
|
+
* 2) an empty object
|
|
61
|
+
* 3) "populated" but with a `null` value `{ getPost: null }`
|
|
62
|
+
* 4) an actual record `{ getPost: { id: '1', title: 'Hello, World!' } }`
|
|
63
|
+
*/
|
|
64
|
+
const { data, errors } = error;
|
|
66
65
|
/**
|
|
67
|
-
* `
|
|
68
|
-
* if `flattenedResult`, result is an actual record:
|
|
66
|
+
* `data` is not `null`, and is not an empty object:
|
|
69
67
|
*/
|
|
70
|
-
if (
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
if (data && Object.keys(data).length !== 0 && errors) {
|
|
69
|
+
const [key] = Object.keys(data);
|
|
70
|
+
const flattenedResult = flattenItems(modelIntrospection, name, data[key]);
|
|
71
|
+
/**
|
|
72
|
+
* `flattenedResult` could be `null` here (e.g. `data: { getPost: null }`)
|
|
73
|
+
* if `flattenedResult`, result is an actual record:
|
|
74
|
+
*/
|
|
75
|
+
if (flattenedResult) {
|
|
76
|
+
if (options?.selectionSet) {
|
|
77
|
+
return { data: flattenedResult, errors };
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// TODO: refactor to avoid destructuring here
|
|
81
|
+
const [initialized] = initializeModel(client, name, [flattenedResult], modelIntrospection, auth.authMode, auth.authToken, !!context);
|
|
82
|
+
return { data: initialized, errors };
|
|
83
|
+
}
|
|
73
84
|
}
|
|
74
85
|
else {
|
|
75
|
-
//
|
|
76
|
-
|
|
77
|
-
return { data: initialized, errors };
|
|
86
|
+
// was `data: { getPost: null }`)
|
|
87
|
+
return handleSingularGraphQlError(error);
|
|
78
88
|
}
|
|
79
89
|
}
|
|
80
90
|
else {
|
|
81
|
-
//
|
|
91
|
+
// `data` is `null`:
|
|
82
92
|
return handleSingularGraphQlError(error);
|
|
83
93
|
}
|
|
84
94
|
}
|
|
85
|
-
|
|
86
|
-
// `data` is `null`:
|
|
87
|
-
return handleSingularGraphQlError(error);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
95
|
+
});
|
|
90
96
|
}
|
|
91
97
|
|
|
92
98
|
export { getFactory };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.mjs","sources":["../../../../../src/runtime/internals/operations/get.ts"],"sourcesContent":["import { authModeParams, buildGraphQLVariables, flattenItems, generateGraphQLDocument, getCustomHeaders, initializeModel, } from '../APIClient';\nimport { handleSingularGraphQlError } from './utils';\nexport function getFactory(client, modelIntrospection, model, operation, getInternals, useContext = false) {\n const getWithContext =
|
|
1
|
+
{"version":3,"file":"get.mjs","sources":["../../../../../src/runtime/internals/operations/get.ts"],"sourcesContent":["import { authModeParams, buildGraphQLVariables, flattenItems, generateGraphQLDocument, getCustomHeaders, initializeModel, } from '../APIClient';\nimport { handleSingularGraphQlError } from './utils';\nimport { selfAwareAsync } from '../../utils';\nimport { extendCancellability } from '../cancellation';\nexport function getFactory(client, modelIntrospection, model, operation, getInternals, useContext = false) {\n const getWithContext = (contextSpec, arg, options) => {\n return _get(client, modelIntrospection, model, arg, options, operation, getInternals, contextSpec);\n };\n const get = (arg, options) => {\n return _get(client, modelIntrospection, model, arg, options, operation, getInternals);\n };\n return useContext ? getWithContext : get;\n}\nfunction _get(client, modelIntrospection, model, arg, options, operation, getInternals, context) {\n return selfAwareAsync(async (resultPromise) => {\n const { name } = model;\n const query = generateGraphQLDocument(modelIntrospection, name, operation, options);\n const variables = buildGraphQLVariables(model, operation, arg, modelIntrospection);\n const auth = authModeParams(client, getInternals, options);\n try {\n const headers = getCustomHeaders(client, getInternals, options?.headers);\n const basePromise = context\n ? client.graphql(context, {\n ...auth,\n query,\n variables,\n }, headers)\n : client.graphql({\n ...auth,\n query,\n variables,\n }, headers);\n const extendedPromise = extendCancellability(basePromise, resultPromise);\n const { data, extensions } = await extendedPromise;\n // flatten response\n if (data) {\n const [key] = Object.keys(data);\n const flattenedResult = flattenItems(modelIntrospection, name, data[key]);\n if (flattenedResult === null) {\n return { data: null, extensions };\n }\n else if (options?.selectionSet) {\n return { data: flattenedResult, extensions };\n }\n else {\n // TODO: refactor to avoid destructuring here\n const [initialized] = initializeModel(client, name, [flattenedResult], modelIntrospection, auth.authMode, auth.authToken, !!context);\n return { data: initialized, extensions };\n }\n }\n else {\n return { data: null, extensions };\n }\n }\n catch (error) {\n /**\n * The `data` type returned by `error` here could be:\n * 1) `null`\n * 2) an empty object\n * 3) \"populated\" but with a `null` value `{ getPost: null }`\n * 4) an actual record `{ getPost: { id: '1', title: 'Hello, World!' } }`\n */\n const { data, errors } = error;\n /**\n * `data` is not `null`, and is not an empty object:\n */\n if (data && Object.keys(data).length !== 0 && errors) {\n const [key] = Object.keys(data);\n const flattenedResult = flattenItems(modelIntrospection, name, data[key]);\n /**\n * `flattenedResult` could be `null` here (e.g. `data: { getPost: null }`)\n * if `flattenedResult`, result is an actual record:\n */\n if (flattenedResult) {\n if (options?.selectionSet) {\n return { data: flattenedResult, errors };\n }\n else {\n // TODO: refactor to avoid destructuring here\n const [initialized] = initializeModel(client, name, [flattenedResult], modelIntrospection, auth.authMode, auth.authToken, !!context);\n return { data: initialized, errors };\n }\n }\n else {\n // was `data: { getPost: null }`)\n return handleSingularGraphQlError(error);\n }\n }\n else {\n // `data` is `null`:\n return handleSingularGraphQlError(error);\n }\n }\n });\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,4 @@ export interface IndexMeta {
|
|
|
4
4
|
pk: string;
|
|
5
5
|
sk?: string[];
|
|
6
6
|
}
|
|
7
|
-
export declare function indexQueryFactory(client: BaseClient, modelIntrospection: ModelIntrospectionSchema, model: SchemaModel, indexMeta: IndexMeta, getInternals: ClientInternalsGetter, context?: boolean): ((contextSpec: AmplifyServer.ContextSpec, args: QueryArgs, options?: ListArgs) => Promise<
|
|
7
|
+
export declare function indexQueryFactory(client: BaseClient, modelIntrospection: ModelIntrospectionSchema, model: SchemaModel, indexMeta: IndexMeta, getInternals: ClientInternalsGetter, context?: boolean): ((contextSpec: AmplifyServer.ContextSpec, args: QueryArgs, options?: ListArgs) => Promise<unknown>) | ((args: QueryArgs, options?: ListArgs) => Promise<unknown>);
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { generateGraphQLDocument, buildGraphQLVariables, authModeParams, getCustomHeaders, flattenItems, initializeModel } from '../APIClient.mjs';
|
|
2
2
|
import { handleListGraphQlError } from './utils.mjs';
|
|
3
|
+
import { selfAwareAsync } from '../../utils/selfAwareAsync.mjs';
|
|
4
|
+
import { extendCancellability } from '../cancellation.mjs';
|
|
3
5
|
|
|
4
6
|
function indexQueryFactory(client, modelIntrospection, model, indexMeta, getInternals, context = false) {
|
|
5
|
-
const indexQueryWithContext =
|
|
7
|
+
const indexQueryWithContext = (contextSpec, args, options) => {
|
|
6
8
|
return _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, {
|
|
7
9
|
...args,
|
|
8
10
|
...options,
|
|
9
11
|
}, contextSpec);
|
|
10
12
|
};
|
|
11
|
-
const indexQuery =
|
|
13
|
+
const indexQuery = (args, options) => {
|
|
12
14
|
return _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, {
|
|
13
15
|
...args,
|
|
14
16
|
...options,
|
|
@@ -34,68 +36,72 @@ function processGraphQlResponse(modelIntroSchema, modelName, result, selectionSe
|
|
|
34
36
|
extensions,
|
|
35
37
|
};
|
|
36
38
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
39
|
+
function _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, args, contextSpec) {
|
|
40
|
+
return selfAwareAsync(async (resultPromise) => {
|
|
41
|
+
const { name } = model;
|
|
42
|
+
const query = generateGraphQLDocument(modelIntrospection, name, 'INDEX_QUERY', args, indexMeta);
|
|
43
|
+
const variables = buildGraphQLVariables(model, 'INDEX_QUERY', args, modelIntrospection, indexMeta);
|
|
44
|
+
const auth = authModeParams(client, getInternals, args);
|
|
45
|
+
const modelInitializer = (flattenedResult) => initializeModel(client, name, flattenedResult, modelIntrospection, auth.authMode, auth.authToken, !!contextSpec);
|
|
46
|
+
try {
|
|
47
|
+
const headers = getCustomHeaders(client, getInternals, args?.headers);
|
|
48
|
+
const graphQlParams = {
|
|
49
|
+
...auth,
|
|
50
|
+
query,
|
|
51
|
+
variables,
|
|
52
|
+
};
|
|
53
|
+
const requestArgs = [graphQlParams, headers];
|
|
54
|
+
if (contextSpec !== undefined) {
|
|
55
|
+
requestArgs.unshift(contextSpec);
|
|
56
|
+
}
|
|
57
|
+
const basePromise = client.graphql(...requestArgs);
|
|
58
|
+
const extendedPromise = extendCancellability(basePromise, resultPromise);
|
|
59
|
+
const response = await extendedPromise;
|
|
60
|
+
if (response.data !== undefined) {
|
|
61
|
+
return processGraphQlResponse(modelIntrospection, name, response, args?.selectionSet, modelInitializer);
|
|
62
|
+
}
|
|
57
63
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
:
|
|
84
|
-
|
|
85
|
-
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
/**
|
|
66
|
+
* The `data` type returned by `error` here could be:
|
|
67
|
+
* 1) `null`
|
|
68
|
+
* 2) an empty object
|
|
69
|
+
* 3) "populated" but with a `null` value:
|
|
70
|
+
* `data: { listByExampleId: null }`
|
|
71
|
+
* 4) an actual record:
|
|
72
|
+
* `data: { listByExampleId: items: [{ id: '1', ...etc } }]`
|
|
73
|
+
*/
|
|
74
|
+
const { data, errors } = error;
|
|
75
|
+
// `data` is not `null`, and is not an empty object:
|
|
76
|
+
if (data !== undefined && Object.keys(data).length !== 0 && errors) {
|
|
77
|
+
const [key] = Object.keys(data);
|
|
78
|
+
if (data[key]?.items) {
|
|
79
|
+
const flattenedResult = data[key]?.items.map((value) => flattenItems(modelIntrospection, name, value));
|
|
80
|
+
/**
|
|
81
|
+
* Check exists since `flattenedResult` could be `null`.
|
|
82
|
+
* if `flattenedResult` exists, result is an actual record.
|
|
83
|
+
*/
|
|
84
|
+
if (flattenedResult) {
|
|
85
|
+
return {
|
|
86
|
+
data: args?.selectionSet
|
|
87
|
+
? flattenedResult
|
|
88
|
+
: modelInitializer(flattenedResult),
|
|
89
|
+
nextToken: data[key]?.nextToken,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
86
92
|
}
|
|
93
|
+
// response is of type `data: { listByExampleId: null }`
|
|
94
|
+
return {
|
|
95
|
+
data: data[key],
|
|
96
|
+
nextToken: data[key]?.nextToken,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// `data` is `null` or an empty object:
|
|
101
|
+
return handleListGraphQlError(error);
|
|
87
102
|
}
|
|
88
|
-
// response is of type `data: { listByExampleId: null }`
|
|
89
|
-
return {
|
|
90
|
-
data: data[key],
|
|
91
|
-
nextToken: data[key]?.nextToken,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
// `data` is `null` or an empty object:
|
|
96
|
-
return handleListGraphQlError(error);
|
|
97
103
|
}
|
|
98
|
-
}
|
|
104
|
+
});
|
|
99
105
|
}
|
|
100
106
|
|
|
101
107
|
export { indexQueryFactory };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexQuery.mjs","sources":["../../../../../src/runtime/internals/operations/indexQuery.ts"],"sourcesContent":["import { authModeParams, buildGraphQLVariables, flattenItems, generateGraphQLDocument, getCustomHeaders, initializeModel, } from '../APIClient';\nimport { handleListGraphQlError } from './utils';\nexport function indexQueryFactory(client, modelIntrospection, model, indexMeta, getInternals, context = false) {\n const indexQueryWithContext =
|
|
1
|
+
{"version":3,"file":"indexQuery.mjs","sources":["../../../../../src/runtime/internals/operations/indexQuery.ts"],"sourcesContent":["import { authModeParams, buildGraphQLVariables, flattenItems, generateGraphQLDocument, getCustomHeaders, initializeModel, } from '../APIClient';\nimport { handleListGraphQlError } from './utils';\nimport { selfAwareAsync } from '../../utils';\nimport { extendCancellability } from '../cancellation';\nexport function indexQueryFactory(client, modelIntrospection, model, indexMeta, getInternals, context = false) {\n const indexQueryWithContext = (contextSpec, args, options) => {\n return _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, {\n ...args,\n ...options,\n }, contextSpec);\n };\n const indexQuery = (args, options) => {\n return _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, {\n ...args,\n ...options,\n });\n };\n return context ? indexQueryWithContext : indexQuery;\n}\nfunction processGraphQlResponse(modelIntroSchema, modelName, result, selectionSet, modelInitializer) {\n const { data, extensions } = result;\n const [key] = Object.keys(data);\n if (data[key].items) {\n const flattenedResult = data[key].items.map((value) => flattenItems(modelIntroSchema, modelName, value));\n return {\n data: selectionSet ? flattenedResult : modelInitializer(flattenedResult),\n nextToken: data[key].nextToken,\n extensions,\n };\n }\n // Index queries are always list queries. No `items`? No flattening needed.\n return {\n data: data[key],\n nextToken: data[key].nextToken,\n extensions,\n };\n}\nfunction _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, args, contextSpec) {\n return selfAwareAsync(async (resultPromise) => {\n const { name } = model;\n const query = generateGraphQLDocument(modelIntrospection, name, 'INDEX_QUERY', args, indexMeta);\n const variables = buildGraphQLVariables(model, 'INDEX_QUERY', args, modelIntrospection, indexMeta);\n const auth = authModeParams(client, getInternals, args);\n const modelInitializer = (flattenedResult) => initializeModel(client, name, flattenedResult, modelIntrospection, auth.authMode, auth.authToken, !!contextSpec);\n try {\n const headers = getCustomHeaders(client, getInternals, args?.headers);\n const graphQlParams = {\n ...auth,\n query,\n variables,\n };\n const requestArgs = [graphQlParams, headers];\n if (contextSpec !== undefined) {\n requestArgs.unshift(contextSpec);\n }\n const basePromise = client.graphql(...requestArgs);\n const extendedPromise = extendCancellability(basePromise, resultPromise);\n const response = await extendedPromise;\n if (response.data !== undefined) {\n return processGraphQlResponse(modelIntrospection, name, response, args?.selectionSet, modelInitializer);\n }\n }\n catch (error) {\n /**\n * The `data` type returned by `error` here could be:\n * 1) `null`\n * 2) an empty object\n * 3) \"populated\" but with a `null` value:\n * `data: { listByExampleId: null }`\n * 4) an actual record:\n * `data: { listByExampleId: items: [{ id: '1', ...etc } }]`\n */\n const { data, errors } = error;\n // `data` is not `null`, and is not an empty object:\n if (data !== undefined && Object.keys(data).length !== 0 && errors) {\n const [key] = Object.keys(data);\n if (data[key]?.items) {\n const flattenedResult = data[key]?.items.map((value) => flattenItems(modelIntrospection, name, value));\n /**\n * Check exists since `flattenedResult` could be `null`.\n * if `flattenedResult` exists, result is an actual record.\n */\n if (flattenedResult) {\n return {\n data: args?.selectionSet\n ? flattenedResult\n : modelInitializer(flattenedResult),\n nextToken: data[key]?.nextToken,\n };\n }\n }\n // response is of type `data: { listByExampleId: null }`\n return {\n data: data[key],\n nextToken: data[key]?.nextToken,\n };\n }\n else {\n // `data` is `null` or an empty object:\n return handleListGraphQlError(error);\n }\n }\n });\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { AmplifyServer, BaseClient, ClientInternalsGetter, ListArgs, ModelIntrospectionSchema, SchemaModel } from '../../bridge-types';
|
|
2
|
-
export declare function listFactory(client: BaseClient, modelIntrospection: ModelIntrospectionSchema, model: SchemaModel, getInternals: ClientInternalsGetter, context?: boolean): ((contextSpec: AmplifyServer.ContextSpec, args?: ListArgs) => Promise<
|
|
2
|
+
export declare function listFactory(client: BaseClient, modelIntrospection: ModelIntrospectionSchema, model: SchemaModel, getInternals: ClientInternalsGetter, context?: boolean): ((contextSpec: AmplifyServer.ContextSpec, args?: ListArgs) => Promise<unknown>) | ((args?: Record<string, any>) => Promise<unknown>);
|