@datocms/cda-client
Advanced tools
Comparing version 0.2.4 to 0.2.5
@@ -62,2 +62,3 @@ "use strict"; | ||
exports.convertToAutoPaginationQueryAndVariables = convertToAutoPaginationQueryAndVariables; | ||
exports.mergeAutoPaginationSplittedResults = mergeAutoPaginationSplittedResults; | ||
var graphql_web_1 = require("@0no-co/graphql.web"); | ||
@@ -79,3 +80,3 @@ var executeQuery_1 = require("./executeQuery"); | ||
_b = _c.sent(), result = _b[0], response = _b[1]; | ||
return [2 /*return*/, [mergeSplittedResults(result), response]]; | ||
return [2 /*return*/, [mergeAutoPaginationSplittedResults(result), response]]; | ||
} | ||
@@ -106,4 +107,5 @@ }); | ||
var alreadyFoundCollectionSelectionSetThatNeedsToBeDuped = false; | ||
var newQuery = (0, graphql_web_1.visit)(query, { | ||
var newSelectionQuery = (0, graphql_web_1.visit)(query, { | ||
SelectionSet: { | ||
enter: function () { }, | ||
leave: function (selectionSet) { | ||
@@ -120,3 +122,3 @@ var newSelections = []; | ||
if (alreadyFoundCollectionSelectionSetThatNeedsToBeDuped) { | ||
throw new Error('Cannot manage multiple selections in a single query!'); | ||
throw new Error('Cannot auto-paginate multiple selections in a single query!'); | ||
} | ||
@@ -161,3 +163,6 @@ alreadyFoundCollectionSelectionSetThatNeedsToBeDuped = true; | ||
}, | ||
}); | ||
var newQuery = (0, graphql_web_1.visit)(newSelectionQuery, { | ||
OperationDefinition: { | ||
enter: function () { }, | ||
leave: function (operationDefinition) { | ||
@@ -205,3 +210,7 @@ var _a; | ||
else if (firstArg.value.kind === graphql_web_1.Kind.VARIABLE) { | ||
numberOfTotalRecords = variables[firstArg.value.name.value]; | ||
var value = variables[firstArg.value.name.value]; | ||
if (typeof value !== 'number') { | ||
throw new Error("Expected variable '".concat(firstArg.value.name.value, "' to be a number")); | ||
} | ||
numberOfTotalRecords = value; | ||
variablesToExclude.push(firstArg.value.name.value); | ||
@@ -222,3 +231,3 @@ } | ||
if (typeof variableValue !== 'number') { | ||
throw new Error("Expected variable ".concat(skipArg.value.name.value, " to be a number")); | ||
throw new Error("Expected variable '".concat(skipArg.value.name.value, "' to be a number")); | ||
} | ||
@@ -236,3 +245,3 @@ variablesToExclude.push(skipArg.value.name.value); | ||
} | ||
function mergeSplittedResults(originalData) { | ||
function mergeAutoPaginationSplittedResults(originalData) { | ||
if (!originalData || typeof originalData !== 'object') { | ||
@@ -242,3 +251,5 @@ return originalData; | ||
if (Array.isArray(originalData)) { | ||
return originalData.map(function (record) { return mergeSplittedResults(record); }); | ||
return originalData.map(function (record) { | ||
return mergeAutoPaginationSplittedResults(record); | ||
}); | ||
} | ||
@@ -254,3 +265,3 @@ var finalData = {}; | ||
var record = records_1[_i]; | ||
completeList.push(mergeSplittedResults(record)); | ||
completeList.push(mergeAutoPaginationSplittedResults(record)); | ||
} | ||
@@ -260,3 +271,3 @@ finalData[aliasName] = completeList; | ||
else { | ||
finalData[fullAliasName] = mergeSplittedResults(originalData[fullAliasName]); | ||
finalData[fullAliasName] = mergeAutoPaginationSplittedResults(originalData[fullAliasName]); | ||
} | ||
@@ -263,0 +274,0 @@ } |
@@ -40,1 +40,2 @@ import type * as GraphQLWeb from '@0no-co/graphql.web'; | ||
export declare function convertToAutoPaginationQueryAndVariables<Result = unknown, Variables = unknown>(query: TypedDocumentNode<Result, Variables>, originalVariables?: Variables): [TypedDocumentNode<Result, Partial<Variables>>, Partial<Variables>]; | ||
export declare function mergeAutoPaginationSplittedResults(originalData: unknown): unknown; |
@@ -73,3 +73,3 @@ var __assign = (this && this.__assign) || function () { | ||
_b = _c.sent(), result = _b[0], response = _b[1]; | ||
return [2 /*return*/, [mergeSplittedResults(result), response]]; | ||
return [2 /*return*/, [mergeAutoPaginationSplittedResults(result), response]]; | ||
} | ||
@@ -100,4 +100,5 @@ }); | ||
var alreadyFoundCollectionSelectionSetThatNeedsToBeDuped = false; | ||
var newQuery = visit(query, { | ||
var newSelectionQuery = visit(query, { | ||
SelectionSet: { | ||
enter: function () { }, | ||
leave: function (selectionSet) { | ||
@@ -114,3 +115,3 @@ var newSelections = []; | ||
if (alreadyFoundCollectionSelectionSetThatNeedsToBeDuped) { | ||
throw new Error('Cannot manage multiple selections in a single query!'); | ||
throw new Error('Cannot auto-paginate multiple selections in a single query!'); | ||
} | ||
@@ -155,3 +156,6 @@ alreadyFoundCollectionSelectionSetThatNeedsToBeDuped = true; | ||
}, | ||
}); | ||
var newQuery = visit(newSelectionQuery, { | ||
OperationDefinition: { | ||
enter: function () { }, | ||
leave: function (operationDefinition) { | ||
@@ -199,3 +203,7 @@ var _a; | ||
else if (firstArg.value.kind === Kind.VARIABLE) { | ||
numberOfTotalRecords = variables[firstArg.value.name.value]; | ||
var value = variables[firstArg.value.name.value]; | ||
if (typeof value !== 'number') { | ||
throw new Error("Expected variable '".concat(firstArg.value.name.value, "' to be a number")); | ||
} | ||
numberOfTotalRecords = value; | ||
variablesToExclude.push(firstArg.value.name.value); | ||
@@ -216,3 +224,3 @@ } | ||
if (typeof variableValue !== 'number') { | ||
throw new Error("Expected variable ".concat(skipArg.value.name.value, " to be a number")); | ||
throw new Error("Expected variable '".concat(skipArg.value.name.value, "' to be a number")); | ||
} | ||
@@ -230,3 +238,3 @@ variablesToExclude.push(skipArg.value.name.value); | ||
} | ||
function mergeSplittedResults(originalData) { | ||
export function mergeAutoPaginationSplittedResults(originalData) { | ||
if (!originalData || typeof originalData !== 'object') { | ||
@@ -236,3 +244,5 @@ return originalData; | ||
if (Array.isArray(originalData)) { | ||
return originalData.map(function (record) { return mergeSplittedResults(record); }); | ||
return originalData.map(function (record) { | ||
return mergeAutoPaginationSplittedResults(record); | ||
}); | ||
} | ||
@@ -248,3 +258,3 @@ var finalData = {}; | ||
var record = records_1[_i]; | ||
completeList.push(mergeSplittedResults(record)); | ||
completeList.push(mergeAutoPaginationSplittedResults(record)); | ||
} | ||
@@ -254,3 +264,3 @@ finalData[aliasName] = completeList; | ||
else { | ||
finalData[fullAliasName] = mergeSplittedResults(originalData[fullAliasName]); | ||
finalData[fullAliasName] = mergeAutoPaginationSplittedResults(originalData[fullAliasName]); | ||
} | ||
@@ -257,0 +267,0 @@ } |
@@ -40,1 +40,2 @@ import type * as GraphQLWeb from '@0no-co/graphql.web'; | ||
export declare function convertToAutoPaginationQueryAndVariables<Result = unknown, Variables = unknown>(query: TypedDocumentNode<Result, Variables>, originalVariables?: Variables): [TypedDocumentNode<Result, Partial<Variables>>, Partial<Variables>]; | ||
export declare function mergeAutoPaginationSplittedResults(originalData: unknown): unknown; |
{ | ||
"name": "@datocms/cda-client", | ||
"version": "0.2.4", | ||
"version": "0.2.5", | ||
"description": "JS client for DatoCMS GraphQL Content Delivery API based on the browser Fetch API", | ||
@@ -9,3 +9,3 @@ "main": "dist/cjs/index.js", | ||
"scripts": { | ||
"test": "echo 1", | ||
"test": "vitest --run", | ||
"prebuild": "rimraf dist", | ||
@@ -26,3 +26,4 @@ "build": "tsc && tsc --project ./tsconfig.esnext.json", | ||
"dist", | ||
"src" | ||
"src", | ||
"!src/__test__" | ||
], | ||
@@ -33,10 +34,11 @@ "author": "Stefano Verna <s.verna@datocms.com>", | ||
"dependencies": { | ||
"@0no-co/graphql.web": "^1.0.7" | ||
"@0no-co/graphql.web": "^1.0.11" | ||
}, | ||
"devDependencies": { | ||
"@biomejs/biome": "^1.8.3", | ||
"np": "^10.0.6", | ||
"np": "^10.1.0", | ||
"rimraf": "^5.0.7", | ||
"simple-git-hooks": "^2.11.1", | ||
"typescript": "^5.5.2" | ||
"typescript": "^5.5.2", | ||
"vitest": "^2.1.7" | ||
}, | ||
@@ -43,0 +45,0 @@ "simple-git-hooks": { |
@@ -80,3 +80,3 @@ import { | ||
return [mergeSplittedResults(result) as Result, response]; | ||
return [mergeAutoPaginationSplittedResults(result) as Result, response]; | ||
} | ||
@@ -144,4 +144,5 @@ | ||
const newQuery = visit(query, { | ||
const newSelectionQuery = visit(query, { | ||
SelectionSet: { | ||
enter: () => {}, | ||
leave: (selectionSet) => { | ||
@@ -164,3 +165,3 @@ const newSelections: SelectionNode[] = []; | ||
throw new Error( | ||
'Cannot manage multiple selections in a single query!', | ||
'Cannot auto-paginate multiple selections in a single query!', | ||
); | ||
@@ -172,2 +173,3 @@ } | ||
variables = omit(variables, info.variablesToExclude); | ||
variablesToExclude = [ | ||
@@ -220,2 +222,3 @@ ...variablesToExclude, | ||
}; | ||
newSelections.push(newSelectionNode); | ||
@@ -231,3 +234,7 @@ } | ||
}, | ||
}); | ||
const newQuery = visit(newSelectionQuery, { | ||
OperationDefinition: { | ||
enter: () => {}, | ||
leave: (operationDefinition) => { | ||
@@ -290,3 +297,11 @@ return { | ||
} else if (firstArg.value.kind === Kind.VARIABLE) { | ||
numberOfTotalRecords = variables[firstArg.value.name.value] as number; | ||
const value = variables[firstArg.value.name.value]; | ||
if (typeof value !== 'number') { | ||
throw new Error( | ||
`Expected variable '${firstArg.value.name.value}' to be a number`, | ||
); | ||
} | ||
numberOfTotalRecords = value; | ||
variablesToExclude.push(firstArg.value.name.value); | ||
@@ -312,3 +327,3 @@ } | ||
throw new Error( | ||
`Expected variable ${skipArg.value.name.value} to be a number`, | ||
`Expected variable '${skipArg.value.name.value}' to be a number`, | ||
); | ||
@@ -330,3 +345,5 @@ } | ||
function mergeSplittedResults(originalData: unknown): unknown { | ||
export function mergeAutoPaginationSplittedResults( | ||
originalData: unknown, | ||
): unknown { | ||
if (!originalData || typeof originalData !== 'object') { | ||
@@ -337,3 +354,5 @@ return originalData; | ||
if (Array.isArray(originalData)) { | ||
return originalData.map((record) => mergeSplittedResults(record)); | ||
return originalData.map((record) => | ||
mergeAutoPaginationSplittedResults(record), | ||
); | ||
} | ||
@@ -354,3 +373,3 @@ | ||
for (const record of records) { | ||
completeList.push(mergeSplittedResults(record)); | ||
completeList.push(mergeAutoPaginationSplittedResults(record)); | ||
} | ||
@@ -360,3 +379,3 @@ | ||
} else { | ||
finalData[fullAliasName] = mergeSplittedResults( | ||
finalData[fullAliasName] = mergeAutoPaginationSplittedResults( | ||
(originalData as Record<string, unknown>)[fullAliasName], | ||
@@ -363,0 +382,0 @@ ); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
140329
50
2230
6
Updated@0no-co/graphql.web@^1.0.11