@lde/search-api-graphql 0.12.3 → 0.13.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/build-schema.d.ts.map +1 -1
- package/dist/build-schema.js +16 -6
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-schema.d.ts","sourceRoot":"","sources":["../src/build-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,aAAa,EAQd,MAAM,SAAS,CAAC;AACjB,OAAO,EAIL,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,YAAY,EAElB,MAAM,aAAa,CAAC;AAWrB,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAGvB,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B;;sDAEkD;IAClD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACjE;AAED;2EAC2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC;yCACqC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;uBACmB;IACnB,QAAQ,CAAC,aAAa,CAAC,EAAE,CACvB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,aAAa,KACnB,WAAW,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC;;kEAE8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC7D,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC;;gDAE4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,yBAA8B,GACtC,aAAa,
|
|
1
|
+
{"version":3,"file":"build-schema.d.ts","sourceRoot":"","sources":["../src/build-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,aAAa,EAQd,MAAM,SAAS,CAAC;AACjB,OAAO,EAIL,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,YAAY,EAElB,MAAM,aAAa,CAAC;AAWrB,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAGvB,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B;;sDAEkD;IAClD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACjE;AAED;2EAC2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC;yCACqC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;uBACmB;IACnB,QAAQ,CAAC,aAAa,CAAC,EAAE,CACvB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,aAAa,KACnB,WAAW,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC;;kEAE8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC7D,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC;;gDAE4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,yBAA8B,GACtC,aAAa,CA8Xf;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,yBAA8B,GACtC,MAAM,CAER"}
|
package/dist/build-schema.js
CHANGED
|
@@ -63,6 +63,16 @@ export function buildGraphQLSchema(schema, options = {}) {
|
|
|
63
63
|
count: { type: new GraphQLNonNull(GraphQLInt) },
|
|
64
64
|
},
|
|
65
65
|
});
|
|
66
|
+
// The pagination actually applied (after queryDefaults), shared across every
|
|
67
|
+
// ‹Type›SearchResult so one client pager fragment serves all root types.
|
|
68
|
+
const paginationType = new GraphQLObjectType({
|
|
69
|
+
name: 'Pagination',
|
|
70
|
+
fields: {
|
|
71
|
+
total: { type: new GraphQLNonNull(GraphQLInt) },
|
|
72
|
+
page: { type: new GraphQLNonNull(GraphQLInt) },
|
|
73
|
+
perPage: { type: new GraphQLNonNull(GraphQLInt) },
|
|
74
|
+
},
|
|
75
|
+
});
|
|
66
76
|
const sortDirection = new GraphQLEnumType({
|
|
67
77
|
name: 'SortDirection',
|
|
68
78
|
values: { ASC: { value: 'asc' }, DESC: { value: 'desc' } },
|
|
@@ -245,9 +255,7 @@ export function buildGraphQLSchema(schema, options = {}) {
|
|
|
245
255
|
name: `${typeName}SearchResult`,
|
|
246
256
|
fields: {
|
|
247
257
|
items: { type: nonNullListOf(outputType) },
|
|
248
|
-
|
|
249
|
-
page: { type: new GraphQLNonNull(GraphQLInt) },
|
|
250
|
-
perPage: { type: new GraphQLNonNull(GraphQLInt) },
|
|
258
|
+
pagination: { type: new GraphQLNonNull(paginationType) },
|
|
251
259
|
// Resolved lazily, per selected key (skip-own-filter); the result object
|
|
252
260
|
// (which carries the per-request facet loader) is the facets source.
|
|
253
261
|
...(facetsType && {
|
|
@@ -279,9 +287,11 @@ export function buildGraphQLSchema(schema, options = {}) {
|
|
|
279
287
|
});
|
|
280
288
|
return {
|
|
281
289
|
items: result.hits.map((hit) => ({ id: hit.id, ...hit.document })),
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
290
|
+
pagination: {
|
|
291
|
+
total: result.total,
|
|
292
|
+
page: pageForOffset(finalQuery.offset, finalQuery.limit),
|
|
293
|
+
perPage: finalQuery.limit,
|
|
294
|
+
},
|
|
285
295
|
// Carried for the facet field resolvers (see facet-batch.ts).
|
|
286
296
|
loadFacet: createFacetLoader(context.engine, searchType, finalQuery, context.onFacetError),
|
|
287
297
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lde/search-api-graphql",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Engine- and domain-agnostic GraphQL surface for @lde/search: builds an executable GraphQLSchema from a whole SearchSchema at runtime (no codegen) – one root query field per SearchType – served by generic resolvers over any SearchEngine – and serves it as a framework-agnostic fetch handler with a self-contained playground, SDL endpoint, CORS and depth/cost limits. You supply the schema and per-type typeNames; it names neither your domain nor your engine.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "git+https://github.com/ldelements/lde.git",
|