filter-kit 2.0.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/README.md +294 -0
- package/dist/cjs/filters/buildDateFilter.d.ts +11 -0
- package/dist/cjs/filters/buildDateFilter.d.ts.map +1 -0
- package/dist/cjs/filters/buildDateFilter.js +39 -0
- package/dist/cjs/filters/buildDateFilter.js.map +1 -0
- package/dist/cjs/filters/buildDynamicFilters.d.ts +3 -0
- package/dist/cjs/filters/buildDynamicFilters.d.ts.map +1 -0
- package/dist/cjs/filters/buildDynamicFilters.js +110 -0
- package/dist/cjs/filters/buildDynamicFilters.js.map +1 -0
- package/dist/cjs/filters/buildPagination.d.ts +15 -0
- package/dist/cjs/filters/buildPagination.d.ts.map +1 -0
- package/dist/cjs/filters/buildPagination.js +30 -0
- package/dist/cjs/filters/buildPagination.js.map +1 -0
- package/dist/cjs/filters/buildPopulate.d.ts +3 -0
- package/dist/cjs/filters/buildPopulate.d.ts.map +1 -0
- package/dist/cjs/filters/buildPopulate.js +45 -0
- package/dist/cjs/filters/buildPopulate.js.map +1 -0
- package/dist/cjs/filters/buildSearch.d.ts +4 -0
- package/dist/cjs/filters/buildSearch.d.ts.map +1 -0
- package/dist/cjs/filters/buildSearch.js +57 -0
- package/dist/cjs/filters/buildSearch.js.map +1 -0
- package/dist/cjs/filters/buildSort.d.ts +2 -0
- package/dist/cjs/filters/buildSort.d.ts.map +1 -0
- package/dist/cjs/filters/buildSort.js +19 -0
- package/dist/cjs/filters/buildSort.js.map +1 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/queryBuilder.d.ts +3 -0
- package/dist/cjs/queryBuilder.d.ts.map +1 -0
- package/dist/cjs/queryBuilder.js +75 -0
- package/dist/cjs/queryBuilder.js.map +1 -0
- package/dist/cjs/types.d.ts +48 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/filters/buildDateFilter.d.ts +11 -0
- package/dist/esm/filters/buildDateFilter.d.ts.map +1 -0
- package/dist/esm/filters/buildDateFilter.js +36 -0
- package/dist/esm/filters/buildDateFilter.js.map +1 -0
- package/dist/esm/filters/buildDynamicFilters.d.ts +3 -0
- package/dist/esm/filters/buildDynamicFilters.d.ts.map +1 -0
- package/dist/esm/filters/buildDynamicFilters.js +107 -0
- package/dist/esm/filters/buildDynamicFilters.js.map +1 -0
- package/dist/esm/filters/buildPagination.d.ts +15 -0
- package/dist/esm/filters/buildPagination.d.ts.map +1 -0
- package/dist/esm/filters/buildPagination.js +27 -0
- package/dist/esm/filters/buildPagination.js.map +1 -0
- package/dist/esm/filters/buildPopulate.d.ts +3 -0
- package/dist/esm/filters/buildPopulate.d.ts.map +1 -0
- package/dist/esm/filters/buildPopulate.js +42 -0
- package/dist/esm/filters/buildPopulate.js.map +1 -0
- package/dist/esm/filters/buildSearch.d.ts +4 -0
- package/dist/esm/filters/buildSearch.d.ts.map +1 -0
- package/dist/esm/filters/buildSearch.js +54 -0
- package/dist/esm/filters/buildSearch.js.map +1 -0
- package/dist/esm/filters/buildSort.d.ts +2 -0
- package/dist/esm/filters/buildSort.d.ts.map +1 -0
- package/dist/esm/filters/buildSort.js +16 -0
- package/dist/esm/filters/buildSort.js.map +1 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/queryBuilder.d.ts +3 -0
- package/dist/esm/queryBuilder.d.ts.map +1 -0
- package/dist/esm/queryBuilder.js +72 -0
- package/dist/esm/queryBuilder.js.map +1 -0
- package/dist/esm/types.d.ts +48 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryBuilder.d.ts","sourceRoot":"","sources":["../../src/queryBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAkB,MAAM,SAAS,CAAC;AAQlF,wBAAsB,YAAY,CAAC,CAAC,GAAG,GAAG,EACxC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAwHhC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { buildSearch } from './filters/buildSearch';
|
|
2
|
+
import { buildPagination } from './filters/buildPagination';
|
|
3
|
+
import { buildSort } from './filters/buildSort';
|
|
4
|
+
import { buildDateFilter } from './filters/buildDateFilter';
|
|
5
|
+
import { buildPopulate } from './filters/buildPopulate';
|
|
6
|
+
import { buildDynamicFilters } from './filters/buildDynamicFilters';
|
|
7
|
+
export async function queryBuilder(options) {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
const { model, query, searchFields, searchMode = 'or', allowedFilters, defaultSort = 'createdAt', defaultOrder = 'desc', defaultLimit = 10, maxLimit = 100, populate: optionPopulate, select: optionSelect, dateField, dateFields, lean = false, customFilter, softDelete, withCount = true, } = options;
|
|
10
|
+
const filterParts = [];
|
|
11
|
+
const searchFilter = buildSearch(query['search'], searchFields, searchMode);
|
|
12
|
+
if (Object.keys(searchFilter).length > 0)
|
|
13
|
+
filterParts.push(searchFilter);
|
|
14
|
+
// Single dateField (backward compat)
|
|
15
|
+
if (dateField) {
|
|
16
|
+
const dateFilter = buildDateFilter(query['from'], query['to'], dateField);
|
|
17
|
+
if (Object.keys(dateFilter).length > 0)
|
|
18
|
+
filterParts.push(dateFilter);
|
|
19
|
+
}
|
|
20
|
+
// Multiple dateFields
|
|
21
|
+
for (const cfg of dateFields !== null && dateFields !== void 0 ? dateFields : []) {
|
|
22
|
+
const dateFilter = buildDateFilter(query[(_a = cfg.fromParam) !== null && _a !== void 0 ? _a : 'from'], query[(_b = cfg.toParam) !== null && _b !== void 0 ? _b : 'to'], cfg.field);
|
|
23
|
+
if (Object.keys(dateFilter).length > 0)
|
|
24
|
+
filterParts.push(dateFilter);
|
|
25
|
+
}
|
|
26
|
+
const dynamicFilter = buildDynamicFilters(query, allowedFilters, model);
|
|
27
|
+
if (Object.keys(dynamicFilter).length > 0)
|
|
28
|
+
filterParts.push(dynamicFilter);
|
|
29
|
+
if (customFilter && Object.keys(customFilter).length > 0) {
|
|
30
|
+
filterParts.push(customFilter);
|
|
31
|
+
}
|
|
32
|
+
if (softDelete) {
|
|
33
|
+
const excludeVal = softDelete.value !== undefined ? softDelete.value : true;
|
|
34
|
+
filterParts.push({ [softDelete.field]: { $ne: excludeVal } });
|
|
35
|
+
}
|
|
36
|
+
const filter = filterParts.length > 1
|
|
37
|
+
? { $and: filterParts }
|
|
38
|
+
: filterParts.length === 1
|
|
39
|
+
? filterParts[0]
|
|
40
|
+
: {};
|
|
41
|
+
const { page, limit, skip } = buildPagination(query['page'], query['limit'], defaultLimit, maxLimit);
|
|
42
|
+
const sort = buildSort(query['sort'], query['order'], defaultSort, defaultOrder);
|
|
43
|
+
const populateFields = buildPopulate(query['populate'], optionPopulate);
|
|
44
|
+
const selectParam = query['select'];
|
|
45
|
+
const selectValue = selectParam && selectParam.trim() !== ''
|
|
46
|
+
? selectParam.replace(/,/g, ' ')
|
|
47
|
+
: optionSelect;
|
|
48
|
+
let findQuery = model.find(filter).sort(sort).skip(skip).limit(limit);
|
|
49
|
+
for (const pop of populateFields) {
|
|
50
|
+
findQuery = findQuery.populate(pop);
|
|
51
|
+
}
|
|
52
|
+
if (selectValue !== undefined && selectValue !== null) {
|
|
53
|
+
findQuery = findQuery.select(selectValue);
|
|
54
|
+
}
|
|
55
|
+
if (lean) {
|
|
56
|
+
findQuery = findQuery.lean();
|
|
57
|
+
}
|
|
58
|
+
const [data, total] = withCount
|
|
59
|
+
? await Promise.all([findQuery.exec(), model.countDocuments(filter)])
|
|
60
|
+
: [await findQuery.exec(), 0];
|
|
61
|
+
const pages = withCount ? Math.ceil(total / limit) : 0;
|
|
62
|
+
const pagination = {
|
|
63
|
+
total,
|
|
64
|
+
page,
|
|
65
|
+
limit,
|
|
66
|
+
pages,
|
|
67
|
+
hasNext: withCount ? page < pages : false,
|
|
68
|
+
hasPrev: page > 1,
|
|
69
|
+
};
|
|
70
|
+
return { data, pagination };
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=queryBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryBuilder.js","sourceRoot":"","sources":["../../src/queryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Model, PopulateOptions, ProjectionType } from 'mongoose';
|
|
2
|
+
export type SearchFieldType = 'string' | 'number' | 'exact';
|
|
3
|
+
export interface SearchFieldConfig {
|
|
4
|
+
field: string;
|
|
5
|
+
type?: SearchFieldType;
|
|
6
|
+
}
|
|
7
|
+
export type SearchField = string | SearchFieldConfig;
|
|
8
|
+
export interface DateFieldConfig {
|
|
9
|
+
field: string;
|
|
10
|
+
fromParam?: string;
|
|
11
|
+
toParam?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SoftDeleteConfig {
|
|
14
|
+
field: string;
|
|
15
|
+
value?: any;
|
|
16
|
+
}
|
|
17
|
+
export interface QueryBuilderOptions<T = any> {
|
|
18
|
+
model: Model<T>;
|
|
19
|
+
query: Record<string, any>;
|
|
20
|
+
searchFields?: SearchField[];
|
|
21
|
+
searchMode?: 'or' | 'and';
|
|
22
|
+
allowedFilters?: string[];
|
|
23
|
+
defaultSort?: string;
|
|
24
|
+
defaultOrder?: 'asc' | 'desc';
|
|
25
|
+
defaultLimit?: number;
|
|
26
|
+
maxLimit?: number;
|
|
27
|
+
populate?: string | string[] | PopulateOptions | PopulateOptions[];
|
|
28
|
+
select?: ProjectionType<T> | string;
|
|
29
|
+
dateField?: string;
|
|
30
|
+
dateFields?: DateFieldConfig[];
|
|
31
|
+
lean?: boolean;
|
|
32
|
+
customFilter?: Record<string, any>;
|
|
33
|
+
softDelete?: SoftDeleteConfig;
|
|
34
|
+
withCount?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface PaginationMeta {
|
|
37
|
+
total: number;
|
|
38
|
+
page: number;
|
|
39
|
+
limit: number;
|
|
40
|
+
pages: number;
|
|
41
|
+
hasNext: boolean;
|
|
42
|
+
hasPrev: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface QueryBuilderResult<T = any> {
|
|
45
|
+
data: T[];
|
|
46
|
+
pagination: PaginationMeta;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,GAAG;IAC1C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;IACnE,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,UAAU,EAAE,cAAc,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "filter-kit",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Powerful Mongoose query builder — smart search (string + number), deep populate (4 levels), multi-sort, operator filters, date ranges, soft-delete, pagination",
|
|
5
|
+
"main": "dist/cjs/index.js",
|
|
6
|
+
"module": "dist/esm/index.js",
|
|
7
|
+
"types": "dist/cjs/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": {
|
|
11
|
+
"types": "./dist/esm/index.d.ts",
|
|
12
|
+
"default": "./dist/esm/index.js"
|
|
13
|
+
},
|
|
14
|
+
"require": {
|
|
15
|
+
"types": "./dist/cjs/index.d.ts",
|
|
16
|
+
"default": "./dist/cjs/index.js"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": ["dist"],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"clean": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
23
|
+
"build": "npm run clean && npm run build:cjs && npm run build:esm && node scripts/postbuild.js",
|
|
24
|
+
"build:cjs": "tsc -p tsconfig.build.json",
|
|
25
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
26
|
+
"dev": "tsc -w -p tsconfig.build.json",
|
|
27
|
+
"test": "jest",
|
|
28
|
+
"test:watch": "jest --watch",
|
|
29
|
+
"test:coverage": "jest --coverage",
|
|
30
|
+
"lint": "eslint src --ext .ts",
|
|
31
|
+
"prepublishOnly": "npm run build"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"mongoose", "mongodb", "query-builder", "filter", "pagination",
|
|
35
|
+
"search", "sorting", "date-filter", "populate", "dynamic-filter",
|
|
36
|
+
"admin-panel", "rest-api", "express", "nestjs", "mongoose-query",
|
|
37
|
+
"mongodb-filter", "mongoose-pagination", "mongoose-search",
|
|
38
|
+
"api-query", "mongoose-utils", "javascript", "typescript"
|
|
39
|
+
],
|
|
40
|
+
"author": "parthpatel2597",
|
|
41
|
+
"license": "MIT",
|
|
42
|
+
"peerDependencies": { "mongoose": ">=6.0.0" },
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/jest": "^29.5.0",
|
|
45
|
+
"@types/node": "^20.0.0",
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
47
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
48
|
+
"eslint": "^8.0.0",
|
|
49
|
+
"jest": "^29.0.0",
|
|
50
|
+
"mongoose": "^8.0.0",
|
|
51
|
+
"ts-jest": "^29.0.0",
|
|
52
|
+
"typescript": "^5.0.0"
|
|
53
|
+
}
|
|
54
|
+
}
|