UNPKG

@eleven-am/xquery

Version:

XQuery is a sophisticated TypeScript wrapper for TanStack React Query, designed to enhance developer productivity with OpenAPI-generated clients. It enables developers to build and execute queries using fully type-safe factories instead of managing query

73 lines 3.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.queryFactory = queryFactory; const queryBuilders_1 = require("./queryBuilders"); function defaultMapQueryKey(queryKey) { return queryKey; } function queryFactory({ clientGetter, mapResponse, mapQueryKey = defaultMapQueryKey, queryClientGetter }) { function createQueries(namespace, definition) { const result = {}; result.all = { queryKey: [namespace], }; for (const [key, value] of Object.entries(definition)) { if (typeof value === 'function') { result[key] = (...params) => (0, queryBuilders_1.buildQueryKey)(namespace, key, mapQueryKey, clientGetter, mapResponse, value(...params)); } else { result[key] = (0, queryBuilders_1.buildQueryKey)(namespace, key, mapQueryKey, clientGetter, mapResponse, value); } } return result; } function createMutations(definition) { const result = {}; for (const [key, value] of Object.entries(definition)) { if (typeof value === 'function') { result[key] = ((...params) => (0, queryBuilders_1.buildMutationOptions)(queryClientGetter, clientGetter, mapResponse, value(...params))); } else { result[key] = (0, queryBuilders_1.buildMutationOptions)(queryClientGetter, clientGetter, mapResponse, value); } } return result; } function createActions(namespace, definition) { const result = {}; result.all = { queryKey: [namespace], }; for (const [key, value] of Object.entries(definition)) { if (typeof value === 'function') { result[key] = (...params) => (0, queryBuilders_1.buildActionOptions)(namespace, key, mapQueryKey, queryClientGetter, clientGetter, mapResponse, value(...params)); } else { result[key] = (0, queryBuilders_1.buildActionOptions)(namespace, key, mapQueryKey, queryClientGetter, clientGetter, mapResponse, value); } } return result; } function createInfiniteQueries(namespace, definition) { const result = {}; result.all = { queryKey: [namespace], }; for (const [key, value] of Object.entries(definition)) { if (typeof value === 'function') { result[key] = (...params) => (0, queryBuilders_1.buildInfiniteOptions)(namespace, key, mapQueryKey, queryClientGetter, clientGetter, mapResponse, value(...params)); } else { result[key] = (0, queryBuilders_1.buildInfiniteOptions)(namespace, key, mapQueryKey, queryClientGetter, clientGetter, mapResponse, value); } } return result; } return { createQueries, createMutations, createActions, createInfiniteQueries, }; } //# sourceMappingURL=factory.js.map