@feathersjs/adapter-commons 5.0.0-pre.35 → 5.0.0-pre.36
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/CHANGELOG.md +10 -0
- package/LICENSE +1 -1
- package/README.md +1 -2
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -5
- package/lib/index.js.map +1 -1
- package/lib/query.d.ts +8 -1
- package/lib/query.js +25 -11
- package/lib/query.js.map +1 -1
- package/package.json +5 -5
- package/src/index.ts +1 -1
- package/src/query.ts +29 -14
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **databases:** Ensure that query sanitization is not necessary when using query schemas ([#3022](https://github.com/feathersjs/feathers/issues/3022)) ([dbf514e](https://github.com/feathersjs/feathers/commit/dbf514e85d1508b95c007462a39b3cadd4ff391d))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **database:** Add and to the query syntax ([#3021](https://github.com/feathersjs/feathers/issues/3021)) ([00cb0d9](https://github.com/feathersjs/feathers/commit/00cb0d9c302ae951ae007d3d6ceba33e254edd9c))
|
|
15
|
+
|
|
6
16
|
# [5.0.0-pre.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
|
|
7
17
|
|
|
8
18
|
### Features
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -10,13 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
This is a repository for handling Feathers common database syntax. See the [API documentation](https://docs.feathersjs.com/api/databases/common.html) for more information.
|
|
12
12
|
|
|
13
|
-
|
|
14
13
|
## Authors
|
|
15
14
|
|
|
16
15
|
[Feathers contributors](https://github.com/feathersjs/adapter-commons/graphs/contributors)
|
|
17
16
|
|
|
18
17
|
## License
|
|
19
18
|
|
|
20
|
-
Copyright (c)
|
|
19
|
+
Copyright (c) 2023 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
|
|
21
20
|
|
|
22
21
|
Licensed under the [MIT license](LICENSE).
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Params } from '@feathersjs/feathers';
|
|
2
2
|
export * from './declarations';
|
|
3
3
|
export * from './service';
|
|
4
|
-
export
|
|
4
|
+
export * from './query';
|
|
5
5
|
export * from './sort';
|
|
6
6
|
export declare function select(params: Params, ...otherFields: string[]): (result: any) => any;
|
package/lib/index.js
CHANGED
|
@@ -14,14 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.select =
|
|
17
|
+
exports.select = void 0;
|
|
18
18
|
const commons_1 = require("@feathersjs/commons");
|
|
19
19
|
__exportStar(require("./declarations"), exports);
|
|
20
20
|
__exportStar(require("./service"), exports);
|
|
21
|
-
|
|
22
|
-
Object.defineProperty(exports, "filterQuery", { enumerable: true, get: function () { return query_1.filterQuery; } });
|
|
23
|
-
Object.defineProperty(exports, "FILTERS", { enumerable: true, get: function () { return query_1.FILTERS; } });
|
|
24
|
-
Object.defineProperty(exports, "OPERATORS", { enumerable: true, get: function () { return query_1.OPERATORS; } });
|
|
21
|
+
__exportStar(require("./query"), exports);
|
|
25
22
|
__exportStar(require("./sort"), exports);
|
|
26
23
|
// Return a function that filters a result object or array
|
|
27
24
|
// and picks only the fields passed as `params.query.$select`
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAuC;AAGvC,iDAA8B;AAC9B,4CAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAuC;AAGvC,iDAA8B;AAC9B,4CAAyB;AACzB,0CAAuB;AACvB,yCAAsB;AAEtB,0DAA0D;AAC1D,6DAA6D;AAC7D,+BAA+B;AAC/B,SAAgB,MAAM,CAAC,MAAc,EAAE,GAAG,WAAqB;;IAC7D,MAAM,WAAW,GAAyB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,OAAO,CAAA;IAEhE,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAA;KAC/B;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,WAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAA;IAEhE,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;SAC3B;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC,CAAA;AACH,CAAC;AAjBD,wBAiBC"}
|
package/lib/query.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { Query } from '@feathersjs/feathers';
|
|
2
|
-
import { FilterQueryOptions, FilterSettings } from './declarations';
|
|
2
|
+
import { FilterQueryOptions, FilterSettings, PaginationParams } from './declarations';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the converted `$limit` value based on the `paginate` configuration.
|
|
5
|
+
* @param _limit The limit value
|
|
6
|
+
* @param paginate The pagination options
|
|
7
|
+
* @returns The converted $limit value
|
|
8
|
+
*/
|
|
9
|
+
export declare const getLimit: (_limit: any, paginate?: PaginationParams) => number;
|
|
3
10
|
export declare const OPERATORS: string[];
|
|
4
11
|
export declare const FILTERS: FilterSettings;
|
|
5
12
|
/**
|
package/lib/query.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.filterQuery = exports.FILTERS = exports.OPERATORS = void 0;
|
|
3
|
+
exports.filterQuery = exports.FILTERS = exports.OPERATORS = exports.getLimit = void 0;
|
|
4
4
|
const commons_1 = require("@feathersjs/commons");
|
|
5
5
|
const errors_1 = require("@feathersjs/errors");
|
|
6
6
|
const parse = (value) => (typeof value !== 'undefined' ? parseInt(value, 10) : value);
|
|
@@ -50,6 +50,23 @@ const getQuery = (query, settings) => {
|
|
|
50
50
|
return result;
|
|
51
51
|
}, {});
|
|
52
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Returns the converted `$limit` value based on the `paginate` configuration.
|
|
55
|
+
* @param _limit The limit value
|
|
56
|
+
* @param paginate The pagination options
|
|
57
|
+
* @returns The converted $limit value
|
|
58
|
+
*/
|
|
59
|
+
const getLimit = (_limit, paginate) => {
|
|
60
|
+
const limit = parse(_limit);
|
|
61
|
+
if (paginate && (paginate.default || paginate.max)) {
|
|
62
|
+
const base = paginate.default || 0;
|
|
63
|
+
const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base;
|
|
64
|
+
const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE;
|
|
65
|
+
return Math.min(lower, upper);
|
|
66
|
+
}
|
|
67
|
+
return limit;
|
|
68
|
+
};
|
|
69
|
+
exports.getLimit = getLimit;
|
|
53
70
|
exports.OPERATORS = ['$in', '$nin', '$lt', '$lte', '$gt', '$gte', '$ne', '$or'];
|
|
54
71
|
exports.FILTERS = {
|
|
55
72
|
$skip: (value) => parse(value),
|
|
@@ -62,16 +79,7 @@ exports.FILTERS = {
|
|
|
62
79
|
return result;
|
|
63
80
|
}, {});
|
|
64
81
|
},
|
|
65
|
-
$limit: (_limit, { paginate }) =>
|
|
66
|
-
const limit = parse(_limit);
|
|
67
|
-
if (paginate && (paginate.default || paginate.max)) {
|
|
68
|
-
const base = paginate.default || 0;
|
|
69
|
-
const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base;
|
|
70
|
-
const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE;
|
|
71
|
-
return Math.min(lower, upper);
|
|
72
|
-
}
|
|
73
|
-
return limit;
|
|
74
|
-
},
|
|
82
|
+
$limit: (_limit, { paginate }) => (0, exports.getLimit)(_limit, paginate),
|
|
75
83
|
$select: (select) => {
|
|
76
84
|
if (Array.isArray(select)) {
|
|
77
85
|
return select.map((current) => `${current}`);
|
|
@@ -83,6 +91,12 @@ exports.FILTERS = {
|
|
|
83
91
|
return or.map((current) => validateQueryProperty(current, operators));
|
|
84
92
|
}
|
|
85
93
|
return or;
|
|
94
|
+
},
|
|
95
|
+
$and: (and, { operators }) => {
|
|
96
|
+
if (Array.isArray(and)) {
|
|
97
|
+
return and.map((current) => validateQueryProperty(current, operators));
|
|
98
|
+
}
|
|
99
|
+
return and;
|
|
86
100
|
}
|
|
87
101
|
};
|
|
88
102
|
/**
|
package/lib/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feathersjs/adapter-commons",
|
|
3
|
-
"version": "5.0.0-pre.
|
|
3
|
+
"version": "5.0.0-pre.36",
|
|
4
4
|
"description": "Shared database adapter utility functions",
|
|
5
5
|
"homepage": "https://feathersjs.com",
|
|
6
6
|
"keywords": [
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@feathersjs/commons": "^5.0.0-pre.
|
|
54
|
-
"@feathersjs/errors": "^5.0.0-pre.
|
|
55
|
-
"@feathersjs/feathers": "^5.0.0-pre.
|
|
53
|
+
"@feathersjs/commons": "^5.0.0-pre.36",
|
|
54
|
+
"@feathersjs/errors": "^5.0.0-pre.36",
|
|
55
|
+
"@feathersjs/feathers": "^5.0.0-pre.36"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/mocha": "^10.0.1",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"ts-node": "^10.9.1",
|
|
65
65
|
"typescript": "^4.9.4"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "9a107b463cc80d7f3c28553c908987e05b0b634a"
|
|
68
68
|
}
|
package/src/index.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Params } from '@feathersjs/feathers'
|
|
|
3
3
|
|
|
4
4
|
export * from './declarations'
|
|
5
5
|
export * from './service'
|
|
6
|
-
export
|
|
6
|
+
export * from './query'
|
|
7
7
|
export * from './sort'
|
|
8
8
|
|
|
9
9
|
// Return a function that filters a result object or array
|
package/src/query.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { _ } from '@feathersjs/commons'
|
|
2
2
|
import { BadRequest } from '@feathersjs/errors'
|
|
3
3
|
import { Query } from '@feathersjs/feathers'
|
|
4
|
-
import { FilterQueryOptions, FilterSettings } from './declarations'
|
|
4
|
+
import { FilterQueryOptions, FilterSettings, PaginationParams } from './declarations'
|
|
5
5
|
|
|
6
6
|
const parse = (value: any) => (typeof value !== 'undefined' ? parseInt(value, 10) : value)
|
|
7
7
|
|
|
@@ -64,6 +64,26 @@ const getQuery = (query: Query, settings: FilterQueryOptions) => {
|
|
|
64
64
|
}, {} as Query)
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Returns the converted `$limit` value based on the `paginate` configuration.
|
|
69
|
+
* @param _limit The limit value
|
|
70
|
+
* @param paginate The pagination options
|
|
71
|
+
* @returns The converted $limit value
|
|
72
|
+
*/
|
|
73
|
+
export const getLimit = (_limit: any, paginate?: PaginationParams) => {
|
|
74
|
+
const limit = parse(_limit)
|
|
75
|
+
|
|
76
|
+
if (paginate && (paginate.default || paginate.max)) {
|
|
77
|
+
const base = paginate.default || 0
|
|
78
|
+
const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base
|
|
79
|
+
const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE
|
|
80
|
+
|
|
81
|
+
return Math.min(lower, upper)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return limit
|
|
85
|
+
}
|
|
86
|
+
|
|
67
87
|
export const OPERATORS = ['$in', '$nin', '$lt', '$lte', '$gt', '$gte', '$ne', '$or']
|
|
68
88
|
|
|
69
89
|
export const FILTERS: FilterSettings = {
|
|
@@ -79,19 +99,7 @@ export const FILTERS: FilterSettings = {
|
|
|
79
99
|
return result
|
|
80
100
|
}, {} as { [key: string]: number })
|
|
81
101
|
},
|
|
82
|
-
$limit: (_limit: any, { paginate }: FilterQueryOptions) =>
|
|
83
|
-
const limit = parse(_limit)
|
|
84
|
-
|
|
85
|
-
if (paginate && (paginate.default || paginate.max)) {
|
|
86
|
-
const base = paginate.default || 0
|
|
87
|
-
const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base
|
|
88
|
-
const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE
|
|
89
|
-
|
|
90
|
-
return Math.min(lower, upper)
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return limit
|
|
94
|
-
},
|
|
102
|
+
$limit: (_limit: any, { paginate }: FilterQueryOptions) => getLimit(_limit, paginate),
|
|
95
103
|
$select: (select: any) => {
|
|
96
104
|
if (Array.isArray(select)) {
|
|
97
105
|
return select.map((current) => `${current}`)
|
|
@@ -105,6 +113,13 @@ export const FILTERS: FilterSettings = {
|
|
|
105
113
|
}
|
|
106
114
|
|
|
107
115
|
return or
|
|
116
|
+
},
|
|
117
|
+
$and: (and: any, { operators }: FilterQueryOptions) => {
|
|
118
|
+
if (Array.isArray(and)) {
|
|
119
|
+
return and.map((current) => validateQueryProperty(current, operators))
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return and
|
|
108
123
|
}
|
|
109
124
|
}
|
|
110
125
|
|