UNPKG

@ptc-org/nestjs-query-graphql

Version:
33 lines 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isStaticQueryArgsType = void 0; exports.QueryArgsType = QueryArgsType; const common_1 = require("../../common"); const decorators_1 = require("../../decorators"); const paging_1 = require("./paging"); const query_args_1 = require("./query-args"); const getMergedQueryOpts = (DTOClass, opts) => { const decoratorOpts = (0, decorators_1.getQueryOptions)(DTOClass); return { ...query_args_1.DEFAULT_QUERY_OPTS, pagingStrategy: paging_1.PagingStrategies.CURSOR, ...(0, common_1.removeUndefinedValues)(decoratorOpts ?? {}), ...(0, common_1.removeUndefinedValues)(opts ?? {}) }; }; // tests if the object is a QueryArgs Class // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types const isStaticQueryArgsType = (obj) => typeof obj === 'function' && 'PageType' in obj && 'SortType' in obj && 'FilterType' in obj; exports.isStaticQueryArgsType = isStaticQueryArgsType; function QueryArgsType(DTOClass, opts) { // override any options from the DTO with the options passed in const mergedOpts = getMergedQueryOpts(DTOClass, opts); if (mergedOpts.pagingStrategy === paging_1.PagingStrategies.OFFSET) { return (0, query_args_1.createOffsetQueryArgs)(DTOClass, mergedOpts); } if (mergedOpts.pagingStrategy === paging_1.PagingStrategies.NONE) { return (0, query_args_1.createNonePagingQueryArgsType)(DTOClass, mergedOpts); } return (0, query_args_1.createCursorQueryArgsType)(DTOClass, mergedOpts); } //# sourceMappingURL=query-args.type.js.map