{"version":3,"file":"list.mjs","sources":["../../../../../src/runtime/internals/operations/list.ts"],"sourcesContent":["import { authModeParams, buildGraphQLVariables, flattenItems, generateGraphQLDocument, getCustomHeaders, initializeModel, } from '../APIClient';\nimport { handleListGraphQlError } from './utils';\nimport { selfAwareAsync } from '../../utils';\nimport { extendCancellability } from '../cancellation';\nimport { createUserAgentOverride } from '../ai/getCustomUserAgentDetails';\nexport function listFactory(client, modelIntrospection, model, getInternals, context = false, customUserAgentDetails) {\n    const listWithContext = (contextSpec, args) => {\n        return _list(client, modelIntrospection, model, getInternals, args, contextSpec, customUserAgentDetails);\n    };\n    const list = (args) => {\n        return _list(client, modelIntrospection, model, getInternals, args, undefined, customUserAgentDetails);\n    };\n    return context ? listWithContext : list;\n}\nfunction _list(client, modelIntrospection, model, getInternals, args, contextSpec, customUserAgentDetails) {\n    return selfAwareAsync(async (resultPromise) => {\n        const { name } = model;\n        const query = generateGraphQLDocument(modelIntrospection, model, 'LIST', args);\n        const variables = buildGraphQLVariables(model, 'LIST', args, modelIntrospection);\n        const auth = authModeParams(client, getInternals, args);\n        const headers = getCustomHeaders(client, getInternals, args?.headers);\n        const userAgentOverride = createUserAgentOverride(customUserAgentDetails);\n        try {\n            const basePromise = contextSpec\n                ? client.graphql(contextSpec, {\n                    ...auth,\n                    query,\n                    variables,\n                }, headers)\n                : client.graphql({\n                    ...auth,\n                    query,\n                    variables,\n                    ...userAgentOverride,\n                }, headers);\n            const extendedPromise = extendCancellability(basePromise, resultPromise);\n            const { data, extensions } = await extendedPromise;\n            // flatten response\n            if (data !== undefined) {\n                const [key] = Object.keys(data);\n                if (data[key].items) {\n                    const flattenedResult = data[key].items.map((value) => flattenItems(modelIntrospection, name, value));\n                    // don't init if custom selection set\n                    if (args?.selectionSet) {\n                        return {\n                            data: flattenedResult,\n                            nextToken: data[key].nextToken,\n                            extensions,\n                        };\n                    }\n                    else {\n                        const initialized = initializeModel(client, name, flattenedResult, modelIntrospection, auth.authMode, auth.authToken, !!contextSpec);\n                        return {\n                            data: initialized,\n                            nextToken: data[key].nextToken,\n                            extensions,\n                        };\n                    }\n                }\n                return {\n                    data: data[key],\n                    nextToken: data[key].nextToken,\n                    extensions,\n                };\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 `data: { listPosts: null }`\n             * 4) actual records `data: { listPosts: 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 &&\n                data !== null &&\n                Object.keys(data).length !== 0 &&\n                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                        // don't init if custom selection set\n                        if (args?.selectionSet) {\n                            return {\n                                data: flattenedResult,\n                                nextToken: data[key]?.nextToken,\n                                errors,\n                            };\n                        }\n                        else {\n                            const initialized = initializeModel(client, name, flattenedResult, modelIntrospection, auth.authMode, auth.authToken, !!contextSpec);\n                            // data is full record w/out selection set:\n                            return {\n                                data: initialized,\n                                nextToken: data[key]?.nextToken,\n                                errors,\n                            };\n                        }\n                    }\n                    return {\n                        data: data[key],\n                        nextToken: data[key]?.nextToken,\n                        errors,\n                    };\n                }\n                else {\n                    // response is of type `data: { getPost: null }`)\n                    return handleListGraphQlError(error);\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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"}