{"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, model, '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 &&\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                        return {\n                            data: args?.selectionSet\n                                ? flattenedResult\n                                : modelInitializer(flattenedResult),\n                            nextToken: data[key]?.nextToken,\n                            errors,\n                        };\n                    }\n                }\n                // response is of type `data: { listByExampleId: null }`\n                return {\n                    data: data[key],\n                    nextToken: data[key]?.nextToken,\n                    errors,\n                };\n            }\n            else {\n                // `data` is `null` or an empty object:\n                return handleListGraphQlError(error);\n            }\n        }\n    });\n}\n"],"names":[],"mappings":";;;;;AAIO,SAAS,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,KAAK,EAAE;AAC/G,IAAI,MAAM,qBAAqB,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,KAAK;AAClE,QAAQ,OAAO,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE;AACvF,YAAY,GAAG,IAAI;AACnB,YAAY,GAAG,OAAO;AACtB,SAAS,EAAE,WAAW,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AAC1C,QAAQ,OAAO,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE;AACvF,YAAY,GAAG,IAAI;AACnB,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV,IAAI,CAAC;AACL,IAAI,OAAO,OAAO,GAAG,qBAAqB,GAAG,UAAU;AACvD;AACA,SAAS,sBAAsB,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE;AACrG,IAAI,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM;AACvC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AACzB,QAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAChH,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,YAAY,GAAG,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC;AACpF,YAAY,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS;AAC1C,YAAY,UAAU;AACtB,SAAS;AACT,IAAI;AACJ;AACA,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACvB,QAAQ,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS;AACtC,QAAQ,UAAU;AAClB,KAAK;AACL;AACA,SAAS,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE;AACpG,IAAI,OAAO,cAAc,CAAC,OAAO,aAAa,KAAK;AACnD,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK;AAC9B,QAAQ,MAAM,KAAK,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC;AACxG,QAAQ,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAC1G,QAAQ,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC;AAC/D,QAAQ,MAAM,gBAAgB,GAAG,CAAC,eAAe,KAAK,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC;AACtK,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC;AACjF,YAAY,MAAM,aAAa,GAAG;AAClC,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,KAAK;AACrB,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC;AACxD,YAAY,IAAI,WAAW,KAAK,SAAS,EAAE;AAC3C,gBAAgB,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;AAChD,YAAY;AACZ,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;AAC9D,YAAY,MAAM,eAAe,GAAG,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC;AACpF,YAAY,MAAM,QAAQ,GAAG,MAAM,eAAe;AAClD,YAAY,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;AAC7C,gBAAgB,OAAO,sBAAsB,CAAC,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,CAAC;AACvH,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK;AAC1C;AACA,YAAY,IAAI,IAAI,KAAK,SAAS;AAClC,gBAAgB,IAAI,KAAK,IAAI;AAC7B,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;AAC9C,gBAAgB,MAAM,EAAE;AACxB,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/C,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE;AACtC,oBAAoB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1H;AACA;AACA;AACA;AACA,oBAAoB,IAAI,eAAe,EAAE;AACzC,wBAAwB,OAAO;AAC/B,4BAA4B,IAAI,EAAE,IAAI,EAAE;AACxC,kCAAkC;AAClC,kCAAkC,gBAAgB,CAAC,eAAe,CAAC;AACnE,4BAA4B,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS;AAC3D,4BAA4B,MAAM;AAClC,yBAAyB;AACzB,oBAAoB;AACpB,gBAAgB;AAChB;AACA,gBAAgB,OAAO;AACvB,oBAAoB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACnC,oBAAoB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS;AACnD,oBAAoB,MAAM;AAC1B,iBAAiB;AACjB,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,OAAO,sBAAsB,CAAC,KAAK,CAAC;AACpD,YAAY;AACZ,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;;;;"}