@feathersjs/adapter-commons 5.0.0-pre.21 → 5.0.0-pre.24

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 CHANGED
@@ -3,6 +3,33 @@
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.24](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.23...v5.0.0-pre.24) (2022-06-21)
7
+
8
+
9
+ ### Features
10
+
11
+ * **knex:** Add KnexJS SQL database adapter to core ([#2671](https://github.com/feathersjs/feathers/issues/2671)) ([9380fff](https://github.com/feathersjs/feathers/commit/9380fff58596e8bb90b8bb098d2795b7eadfec20))
12
+
13
+
14
+
15
+
16
+
17
+ # [5.0.0-pre.23](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.22...v5.0.0-pre.23) (2022-06-06)
18
+
19
+ **Note:** Version bump only for package @feathersjs/adapter-commons
20
+
21
+
22
+
23
+
24
+
25
+ # [5.0.0-pre.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
26
+
27
+ **Note:** Version bump only for package @feathersjs/adapter-commons
28
+
29
+
30
+
31
+
32
+
6
33
  # [5.0.0-pre.21](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.20...v5.0.0-pre.21) (2022-05-23)
7
34
 
8
35
  **Note:** Version bump only for package @feathersjs/adapter-commons
@@ -40,8 +40,8 @@ export interface AdapterServiceOptions {
40
40
  */
41
41
  events?: string[];
42
42
  /**
43
- * @deprecated renamed to `operators`.
44
- */
43
+ * @deprecated renamed to `operators`.
44
+ */
45
45
  whitelist?: string[];
46
46
  }
47
47
  export interface AdapterQuery extends Query {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAwC;AAGxC,iDAA+B;AAC/B,4CAA0B;AAC1B,iCAA0D;AAAjD,oGAAA,WAAW,OAAA;AAAE,gGAAA,OAAO,OAAA;AAAE,kGAAA,SAAS,OAAA;AACxC,yCAAuB;AAEvB,0DAA0D;AAC1D,6DAA6D;AAC7D,+BAA+B;AAC/B,SAAgB,MAAM,CAAE,MAAc,EAAE,GAAG,WAAqB;;IAC9D,MAAM,WAAW,GAAyB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,OAAO,CAAC;IAEjE,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC;KAChC;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,WAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;IAEjE,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC5B;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AAjBD,wBAiBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAuC;AAGvC,iDAA8B;AAC9B,4CAAyB;AACzB,iCAAyD;AAAhD,oGAAA,WAAW,OAAA;AAAE,gGAAA,OAAO,OAAA;AAAE,kGAAA,SAAS,OAAA;AACxC,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.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.filterQuery = exports.FILTERS = exports.OPERATORS = void 0;
4
4
  const commons_1 = require("@feathersjs/commons");
5
5
  const errors_1 = require("@feathersjs/errors");
6
- const parse = (value) => typeof value !== 'undefined' ? parseInt(value, 10) : value;
6
+ const parse = (value) => (typeof value !== 'undefined' ? parseInt(value, 10) : value);
7
7
  const isPlainObject = (value) => commons_1._.isObject(value) && value.constructor === {}.constructor;
8
8
  const validateQueryProperty = (query, operators = []) => {
9
9
  if (!isPlainObject(query)) {
@@ -58,8 +58,7 @@ exports.FILTERS = {
58
58
  return sort;
59
59
  }
60
60
  return Object.keys(sort).reduce((result, key) => {
61
- result[key] = typeof sort[key] === 'object'
62
- ? sort[key] : parse(sort[key]);
61
+ result[key] = typeof sort[key] === 'object' ? sort[key] : parse(sort[key]);
63
62
  return result;
64
63
  }, {});
65
64
  },
@@ -75,13 +74,13 @@ exports.FILTERS = {
75
74
  },
76
75
  $select: (select) => {
77
76
  if (Array.isArray(select)) {
78
- return select.map(current => `${current}`);
77
+ return select.map((current) => `${current}`);
79
78
  }
80
79
  return select;
81
80
  },
82
81
  $or: (or, { operators }) => {
83
82
  if (Array.isArray(or)) {
84
- return or.map(current => validateQueryProperty(current, operators));
83
+ return or.map((current) => validateQueryProperty(current, operators));
85
84
  }
86
85
  return or;
87
86
  }
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/lib/service.js CHANGED
@@ -117,8 +117,8 @@ class AdapterBase {
117
117
  throw new errors_1.MethodNotAllowed('Can not create multiple entries');
118
118
  }
119
119
  const payload = Array.isArray(data)
120
- ? (await Promise.all(data.map(current => this.sanitizeData(current, params))))
121
- : (await this.sanitizeData(data, params));
120
+ ? await Promise.all(data.map((current) => this.sanitizeData(current, params)))
121
+ : await this.sanitizeData(data, params);
122
122
  return this.$create(payload, params);
123
123
  }
124
124
  /**
@@ -132,7 +132,7 @@ class AdapterBase {
132
132
  */
133
133
  async _update(id, data, params) {
134
134
  if (id === null || Array.isArray(data)) {
135
- throw new errors_1.BadRequest('You can not replace multiple instances. Did you mean \'patch\'?');
135
+ throw new errors_1.BadRequest("You can not replace multiple instances. Did you mean 'patch'?");
136
136
  }
137
137
  const payload = await this.sanitizeData(data, params);
138
138
  const query = await this.sanitizeQuery(params);
@@ -145,7 +145,7 @@ class AdapterBase {
145
145
  if (id === null && !this.allowsMulti('patch', params)) {
146
146
  throw new errors_1.MethodNotAllowed('Can not patch multiple entries');
147
147
  }
148
- const query = await this.sanitizeQuery(params);
148
+ const { $limit, ...query } = await this.sanitizeQuery(params);
149
149
  const payload = await this.sanitizeData(data, params);
150
150
  return this.$patch(id, payload, {
151
151
  ...params,
@@ -156,7 +156,7 @@ class AdapterBase {
156
156
  if (id === null && !this.allowsMulti('remove', params)) {
157
157
  throw new errors_1.MethodNotAllowed('Can not remove multiple entries');
158
158
  }
159
- const query = await this.sanitizeQuery(params);
159
+ const { $limit, ...query } = await this.sanitizeQuery(params);
160
160
  return this.$remove(id, {
161
161
  ...params,
162
162
  query
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/lib/sort.js CHANGED
@@ -93,7 +93,7 @@ exports.compare = compare;
93
93
  // $sort special query parameter
94
94
  function sorter($sort) {
95
95
  const get = (value, path) => path.reduce((value, key) => value[key], value);
96
- const compares = Object.keys($sort).map(key => {
96
+ const compares = Object.keys($sort).map((key) => {
97
97
  const direction = $sort[key];
98
98
  const path = key.split('.');
99
99
  if (path.length === 1) {
package/lib/sort.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sort.js","sourceRoot":"","sources":["../src/sort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sort.js","sourceRoot":"","sources":["../src/sort.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.21",
3
+ "version": "5.0.0-pre.24",
4
4
  "description": "Shared database adapter utility functions",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "keywords": [
@@ -49,19 +49,19 @@
49
49
  "access": "public"
50
50
  },
51
51
  "dependencies": {
52
- "@feathersjs/commons": "^5.0.0-pre.20",
53
- "@feathersjs/errors": "^5.0.0-pre.21",
54
- "@feathersjs/feathers": "^5.0.0-pre.21"
52
+ "@feathersjs/commons": "^5.0.0-pre.24",
53
+ "@feathersjs/errors": "^5.0.0-pre.24",
54
+ "@feathersjs/feathers": "^5.0.0-pre.24"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/mocha": "^9.1.1",
58
58
  "@types/mongodb": "^4.0.6",
59
- "@types/node": "^17.0.31",
59
+ "@types/node": "^17.0.40",
60
60
  "mocha": "^10.0.0",
61
- "mongodb": "^4.5.0",
61
+ "mongodb": "^4.6.0",
62
62
  "shx": "^0.3.4",
63
- "ts-node": "^10.7.0",
64
- "typescript": "^4.6.4"
63
+ "ts-node": "^10.8.1",
64
+ "typescript": "^4.7.3"
65
65
  },
66
- "gitHead": "ac3baed231f72370a80a06c5944538915479b96e"
66
+ "gitHead": "72779fa2938f43d7b345b6861ff0035481a07de3"
67
67
  }
@@ -1,9 +1,9 @@
1
- import { Query, Params, Paginated, Id, NullableId } from '@feathersjs/feathers';
1
+ import { Query, Params, Paginated, Id, NullableId } from '@feathersjs/feathers'
2
2
 
3
3
  export type FilterQueryOptions = {
4
- filters?: FilterSettings;
5
- operators?: string[];
6
- paginate?: PaginationParams;
4
+ filters?: FilterSettings
5
+ operators?: string[]
6
+ paginate?: PaginationParams
7
7
  }
8
8
 
9
9
  export type QueryFilter = (value: any, options: FilterQueryOptions) => any
@@ -13,56 +13,59 @@ export type FilterSettings = {
13
13
  }
14
14
 
15
15
  export interface PaginationOptions {
16
- default?: number;
17
- max?: number;
16
+ default?: number
17
+ max?: number
18
18
  }
19
19
 
20
- export type PaginationParams = false | PaginationOptions;
20
+ export type PaginationParams = false | PaginationOptions
21
21
 
22
22
  export interface AdapterServiceOptions {
23
23
  /**
24
24
  * Whether to allow multiple updates for everything (`true`) or specific methods (e.g. `['create', 'remove']`)
25
25
  */
26
- multi?: boolean | string[];
26
+ multi?: boolean | string[]
27
27
  /**
28
28
  * The name of the id property
29
29
  */
30
- id?: string;
30
+ id?: string
31
31
  /**
32
32
  * Pagination settings for this service
33
33
  */
34
- paginate?: PaginationParams;
34
+ paginate?: PaginationParams
35
35
  /**
36
36
  * A list of additional property query operators to allow in a query
37
37
  */
38
- operators?: string[];
38
+ operators?: string[]
39
39
  /**
40
40
  * An object of additional top level query filters, e.g. `{ $populate: true }`
41
41
  * Can also be a converter function like `{ $ignoreCase: (value) => value === 'true' ? true : false }`
42
42
  */
43
- filters?: FilterSettings;
43
+ filters?: FilterSettings
44
44
  /**
45
45
  * @deprecated Use service `events` option when registering the service with `app.use`.
46
46
  */
47
- events?: string[];
47
+ events?: string[]
48
48
  /**
49
- * @deprecated renamed to `operators`.
50
- */
51
- whitelist?: string[];
49
+ * @deprecated renamed to `operators`.
50
+ */
51
+ whitelist?: string[]
52
52
  }
53
53
 
54
54
  export interface AdapterQuery extends Query {
55
- $limit?: number,
56
- $skip?: number,
57
- $select?: string[],
58
- $sort?: { [key: string]: 1|-1 }
55
+ $limit?: number
56
+ $skip?: number
57
+ $select?: string[]
58
+ $sort?: { [key: string]: 1 | -1 }
59
59
  }
60
60
  /**
61
61
  * Additional `params` that can be passed to an adapter service method call.
62
62
  */
63
- export interface AdapterParams<Q = AdapterQuery, A extends Partial<AdapterServiceOptions> = Partial<AdapterServiceOptions>> extends Params<Q> {
64
- adapter?: A;
65
- paginate?: PaginationParams;
63
+ export interface AdapterParams<
64
+ Q = AdapterQuery,
65
+ A extends Partial<AdapterServiceOptions> = Partial<AdapterServiceOptions>
66
+ > extends Params<Q> {
67
+ adapter?: A
68
+ paginate?: PaginationParams
66
69
  }
67
70
 
68
71
  /**
@@ -84,9 +87,9 @@ export interface InternalServiceMethods<T = any, D = Partial<T>, P extends Adapt
84
87
  *
85
88
  * @param _params - Service call parameters {@link Params}
86
89
  */
87
- $find(_params?: P & { paginate?: PaginationOptions }): Promise<Paginated<T>>;
88
- $find(_params?: P & { paginate: false }): Promise<T[]>;
89
- $find(params?: P): Promise<T[] | Paginated<T>>;
90
+ $find(_params?: P & { paginate?: PaginationOptions }): Promise<Paginated<T>>
91
+ $find(_params?: P & { paginate: false }): Promise<T[]>
92
+ $find(params?: P): Promise<T[] | Paginated<T>>
90
93
 
91
94
  /**
92
95
  * Retrieve a single resource matching the given ID, skipping any service-level hooks.
@@ -97,7 +100,7 @@ export interface InternalServiceMethods<T = any, D = Partial<T>, P extends Adapt
97
100
  * @see {@link HookLessServiceMethods}
98
101
  * @see {@link https://docs.feathersjs.com/api/services.html#get-id-params|Feathers API Documentation: .get(id, params)}
99
102
  */
100
- $get(id: Id, params?: P): Promise<T>;
103
+ $get(id: Id, params?: P): Promise<T>
101
104
 
102
105
  /**
103
106
  * Create a new resource for this service, skipping any service-level hooks.
@@ -108,9 +111,9 @@ export interface InternalServiceMethods<T = any, D = Partial<T>, P extends Adapt
108
111
  * @see {@link HookLessServiceMethods}
109
112
  * @see {@link https://docs.feathersjs.com/api/services.html#create-data-params|Feathers API Documentation: .create(data, params)}
110
113
  */
111
- $create(data: Partial<D>, params?: P): Promise<T>;
112
- $create(data: Partial<D>[], params?: P): Promise<T[]>;
113
- $create(data: Partial<D> | Partial<D>[], params?: P): Promise<T | T[]>;
114
+ $create(data: Partial<D>, params?: P): Promise<T>
115
+ $create(data: Partial<D>[], params?: P): Promise<T[]>
116
+ $create(data: Partial<D> | Partial<D>[], params?: P): Promise<T | T[]>
114
117
 
115
118
  /**
116
119
  * Completely replace the resource identified by id, skipping any service-level hooks.
@@ -122,7 +125,7 @@ export interface InternalServiceMethods<T = any, D = Partial<T>, P extends Adapt
122
125
  * @see {@link HookLessServiceMethods}
123
126
  * @see {@link https://docs.feathersjs.com/api/services.html#update-id-data-params|Feathers API Documentation: .update(id, data, params)}
124
127
  */
125
- $update(id: Id, data: D, params?: P): Promise<T>;
128
+ $update(id: Id, data: D, params?: P): Promise<T>
126
129
 
127
130
  /**
128
131
  * Merge any resources matching the given ID with the given data, skipping any service-level hooks.
@@ -134,9 +137,9 @@ export interface InternalServiceMethods<T = any, D = Partial<T>, P extends Adapt
134
137
  * @see {@link HookLessServiceMethods}
135
138
  * @see {@link https://docs.feathersjs.com/api/services.html#patch-id-data-params|Feathers API Documentation: .patch(id, data, params)}
136
139
  */
137
- $patch(id: null, data: Partial<D>, params?: P): Promise<T[]>;
138
- $patch(id: Id, data: Partial<D>, params?: P): Promise<T>;
139
- $patch(id: NullableId, data: Partial<D>, params?: P): Promise<T | T[]>;
140
+ $patch(id: null, data: Partial<D>, params?: P): Promise<T[]>
141
+ $patch(id: Id, data: Partial<D>, params?: P): Promise<T>
142
+ $patch(id: NullableId, data: Partial<D>, params?: P): Promise<T | T[]>
140
143
 
141
144
  /**
142
145
  * Remove resources matching the given ID from the this service, skipping any service-level hooks.
@@ -147,7 +150,7 @@ export interface InternalServiceMethods<T = any, D = Partial<T>, P extends Adapt
147
150
  * @see {@link HookLessServiceMethods}
148
151
  * @see {@link https://docs.feathersjs.com/api/services.html#remove-id-params|Feathers API Documentation: .remove(id, params)}
149
152
  */
150
- $remove(id: null, params?: P): Promise<T[]>;
151
- $remove(id: Id, params?: P): Promise<T>;
152
- $remove(id: NullableId, params?: P): Promise<T | T[]>;
153
- }
153
+ $remove(id: null, params?: P): Promise<T[]>
154
+ $remove(id: Id, params?: P): Promise<T>
155
+ $remove(id: NullableId, params?: P): Promise<T | T[]>
156
+ }
package/src/index.ts CHANGED
@@ -1,29 +1,29 @@
1
- import { _ } from '@feathersjs/commons';
2
- import { Params } from '@feathersjs/feathers';
1
+ import { _ } from '@feathersjs/commons'
2
+ import { Params } from '@feathersjs/feathers'
3
3
 
4
- export * from './declarations';
5
- export * from './service';
6
- export { filterQuery, FILTERS, OPERATORS } from './query';
7
- export * from './sort';
4
+ export * from './declarations'
5
+ export * from './service'
6
+ export { filterQuery, FILTERS, OPERATORS } from './query'
7
+ export * from './sort'
8
8
 
9
9
  // Return a function that filters a result object or array
10
10
  // and picks only the fields passed as `params.query.$select`
11
11
  // and additional `otherFields`
12
- export function select (params: Params, ...otherFields: string[]) {
13
- const queryFields: string[] | undefined = params?.query?.$select;
12
+ export function select(params: Params, ...otherFields: string[]) {
13
+ const queryFields: string[] | undefined = params?.query?.$select
14
14
 
15
15
  if (!queryFields) {
16
- return (result: any) => result;
16
+ return (result: any) => result
17
17
  }
18
18
 
19
- const resultFields = queryFields.concat(otherFields);
20
- const convert = (result: any) => _.pick(result, ...resultFields);
19
+ const resultFields = queryFields.concat(otherFields)
20
+ const convert = (result: any) => _.pick(result, ...resultFields)
21
21
 
22
22
  return (result: any) => {
23
23
  if (Array.isArray(result)) {
24
- return result.map(convert);
24
+ return result.map(convert)
25
25
  }
26
26
 
27
- return convert(result);
28
- };
27
+ return convert(result)
28
+ }
29
29
  }
package/src/query.ts CHANGED
@@ -1,26 +1,26 @@
1
- import { _ } from '@feathersjs/commons';
2
- import { BadRequest } from '@feathersjs/errors';
3
- import { Query } from '@feathersjs/feathers';
4
- import { FilterQueryOptions, FilterSettings } from './declarations';
1
+ import { _ } from '@feathersjs/commons'
2
+ import { BadRequest } from '@feathersjs/errors'
3
+ import { Query } from '@feathersjs/feathers'
4
+ import { FilterQueryOptions, FilterSettings } from './declarations'
5
5
 
6
- const parse = (value: any) => typeof value !== 'undefined' ? parseInt(value, 10) : value;
6
+ const parse = (value: any) => (typeof value !== 'undefined' ? parseInt(value, 10) : value)
7
7
 
8
- const isPlainObject = (value: any) => _.isObject(value) && value.constructor === {}.constructor;
8
+ const isPlainObject = (value: any) => _.isObject(value) && value.constructor === {}.constructor
9
9
 
10
10
  const validateQueryProperty = (query: any, operators: string[] = []): Query => {
11
11
  if (!isPlainObject(query)) {
12
- return query;
12
+ return query
13
13
  }
14
14
 
15
15
  for (const key of Object.keys(query)) {
16
16
  if (key.startsWith('$') && !operators.includes(key)) {
17
- throw new BadRequest(`Invalid query parameter ${key}`, query);
17
+ throw new BadRequest(`Invalid query parameter ${key}`, query)
18
18
  }
19
19
 
20
- const value = query[key];
20
+ const value = query[key]
21
21
 
22
22
  if (isPlainObject(value)) {
23
- query[key] = validateQueryProperty(value, operators);
23
+ query[key] = validateQueryProperty(value, operators)
24
24
  }
25
25
  }
26
26
 
@@ -30,82 +30,81 @@ const validateQueryProperty = (query: any, operators: string[] = []): Query => {
30
30
  }
31
31
 
32
32
  const getFilters = (query: Query, settings: FilterQueryOptions) => {
33
- const filterNames = Object.keys(settings.filters);
33
+ const filterNames = Object.keys(settings.filters)
34
34
 
35
35
  return filterNames.reduce((current, key) => {
36
- const queryValue = query[key];
37
- const filter = settings.filters[key];
36
+ const queryValue = query[key]
37
+ const filter = settings.filters[key]
38
38
 
39
39
  if (filter) {
40
- const value = typeof filter === 'function' ? filter(queryValue, settings) : queryValue;
40
+ const value = typeof filter === 'function' ? filter(queryValue, settings) : queryValue
41
41
 
42
42
  if (value !== undefined) {
43
- current[key] = value;
43
+ current[key] = value
44
44
  }
45
45
  }
46
46
 
47
- return current;
48
- }, {} as { [key: string]: any });
47
+ return current
48
+ }, {} as { [key: string]: any })
49
49
  }
50
50
 
51
51
  const getQuery = (query: Query, settings: FilterQueryOptions) => {
52
- const keys = Object.keys(query).concat(Object.getOwnPropertySymbols(query) as any as string[]);
52
+ const keys = Object.keys(query).concat(Object.getOwnPropertySymbols(query) as any as string[])
53
53
 
54
54
  return keys.reduce((result, key) => {
55
55
  if (typeof key === 'string' && key.startsWith('$')) {
56
56
  if (settings.filters[key] === undefined) {
57
- throw new BadRequest(`Invalid filter value ${key}`);
57
+ throw new BadRequest(`Invalid filter value ${key}`)
58
58
  }
59
59
  } else {
60
- result[key] = validateQueryProperty(query[key], settings.operators);
60
+ result[key] = validateQueryProperty(query[key], settings.operators)
61
61
  }
62
62
 
63
- return result;
63
+ return result
64
64
  }, {} as Query)
65
65
  }
66
66
 
67
- export const OPERATORS = ['$in', '$nin', '$lt', '$lte', '$gt', '$gte', '$ne', '$or'];
67
+ export const OPERATORS = ['$in', '$nin', '$lt', '$lte', '$gt', '$gte', '$ne', '$or']
68
68
 
69
69
  export const FILTERS: FilterSettings = {
70
70
  $skip: (value: any) => parse(value),
71
71
  $sort: (sort: any): { [key: string]: number } => {
72
72
  if (typeof sort !== 'object' || Array.isArray(sort)) {
73
- return sort;
73
+ return sort
74
74
  }
75
75
 
76
76
  return Object.keys(sort).reduce((result, key) => {
77
- result[key] = typeof sort[key] === 'object'
78
- ? sort[key] : parse(sort[key]);
77
+ result[key] = typeof sort[key] === 'object' ? sort[key] : parse(sort[key])
79
78
 
80
- return result;
81
- }, {} as { [key: string]: number });
79
+ return result
80
+ }, {} as { [key: string]: number })
82
81
  },
83
82
  $limit: (_limit: any, { paginate }: FilterQueryOptions) => {
84
- const limit = parse(_limit);
83
+ const limit = parse(_limit)
85
84
 
86
85
  if (paginate && (paginate.default || paginate.max)) {
87
- const base = paginate.default || 0;
88
- const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base;
89
- const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE;
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
90
89
 
91
- return Math.min(lower, upper);
90
+ return Math.min(lower, upper)
92
91
  }
93
92
 
94
- return limit;
93
+ return limit
95
94
  },
96
95
  $select: (select: any) => {
97
96
  if (Array.isArray(select)) {
98
- return select.map(current => `${current}`);
97
+ return select.map((current) => `${current}`)
99
98
  }
100
99
 
101
- return select;
100
+ return select
102
101
  },
103
102
  $or: (or: any, { operators }: FilterQueryOptions) => {
104
103
  if (Array.isArray(or)) {
105
- return or.map(current => validateQueryProperty(current, operators));
104
+ return or.map((current) => validateQueryProperty(current, operators))
106
105
  }
107
106
 
108
- return or;
107
+ return or
109
108
  }
110
109
  }
111
110
 
@@ -120,8 +119,8 @@ export const FILTERS: FilterSettings = {
120
119
  * @returns An object with `query` which contains the query without `filters`
121
120
  * and `filters` which contains the converted values for each filter.
122
121
  */
123
- export function filterQuery (_query: Query, options: FilterQueryOptions = {}) {
124
- const query = _query || {};
122
+ export function filterQuery(_query: Query, options: FilterQueryOptions = {}) {
123
+ const query = _query || {}
125
124
  const settings = {
126
125
  ...options,
127
126
  filters: {
package/src/service.ts CHANGED
@@ -1,13 +1,18 @@
1
- import { BadRequest, MethodNotAllowed } from '@feathersjs/errors';
2
- import { Id, NullableId, Paginated, Query } from '@feathersjs/feathers';
3
- import { AdapterParams, AdapterServiceOptions, InternalServiceMethods, PaginationOptions } from './declarations';
4
- import { filterQuery } from './query';
1
+ import { BadRequest, MethodNotAllowed } from '@feathersjs/errors'
2
+ import { Id, NullableId, Paginated, Query } from '@feathersjs/feathers'
3
+ import {
4
+ AdapterParams,
5
+ AdapterServiceOptions,
6
+ InternalServiceMethods,
7
+ PaginationOptions
8
+ } from './declarations'
9
+ import { filterQuery } from './query'
5
10
 
6
11
  const alwaysMulti: { [key: string]: boolean } = {
7
12
  find: true,
8
13
  get: false,
9
14
  update: false
10
- };
15
+ }
11
16
 
12
17
  /**
13
18
  * An abstract base class that a database adapter can extend from to implement the
@@ -18,10 +23,11 @@ export abstract class AdapterBase<
18
23
  D = Partial<T>,
19
24
  P extends AdapterParams = AdapterParams,
20
25
  O extends AdapterServiceOptions = AdapterServiceOptions
21
- > implements InternalServiceMethods<T, D, P> {
22
- options: O;
26
+ > implements InternalServiceMethods<T, D, P>
27
+ {
28
+ options: O
23
29
 
24
- constructor (options: O) {
30
+ constructor(options: O) {
25
31
  this.options = {
26
32
  id: 'id',
27
33
  events: [],
@@ -30,15 +36,15 @@ export abstract class AdapterBase<
30
36
  filters: {},
31
37
  operators: [],
32
38
  ...options
33
- };
39
+ }
34
40
  }
35
41
 
36
- get id () {
37
- return this.options.id;
42
+ get id() {
43
+ return this.options.id
38
44
  }
39
45
 
40
- get events () {
41
- return this.options.events;
46
+ get events() {
47
+ return this.options.events
42
48
  }
43
49
 
44
50
  /**
@@ -47,20 +53,20 @@ export abstract class AdapterBase<
47
53
  * @param params The service call params.
48
54
  * @returns Wether or not multiple updates are allowed.
49
55
  */
50
- allowsMulti (method: string, params: P = {} as P) {
51
- const always = alwaysMulti[method];
56
+ allowsMulti(method: string, params: P = {} as P) {
57
+ const always = alwaysMulti[method]
52
58
 
53
59
  if (typeof always !== 'undefined') {
54
- return always;
60
+ return always
55
61
  }
56
62
 
57
- const { multi } = this.getOptions(params);
63
+ const { multi } = this.getOptions(params)
58
64
 
59
65
  if (multi === true || multi === false) {
60
- return multi;
66
+ return multi
61
67
  }
62
68
 
63
- return multi.includes(method);
69
+ return multi.includes(method)
64
70
  }
65
71
 
66
72
  /**
@@ -70,8 +76,8 @@ export abstract class AdapterBase<
70
76
  * @param params The parameters for the service method call
71
77
  * @returns The actual options for this call
72
78
  */
73
- getOptions (params: P): O {
74
- const paginate = params.paginate !== undefined ? params.paginate : this.options.paginate;
79
+ getOptions(params: P): O {
80
+ const paginate = params.paginate !== undefined ? params.paginate : this.options.paginate
75
81
 
76
82
  return {
77
83
  ...this.options,
@@ -87,8 +93,8 @@ export abstract class AdapterBase<
87
93
  * @param _params Service call parameters
88
94
  * @returns The sanitized data
89
95
  */
90
- async sanitizeData<X = Partial<D>> (data: X, _params: P) {
91
- return data;
96
+ async sanitizeData<X = Partial<D>>(data: X, _params: P) {
97
+ return data
92
98
  }
93
99
 
94
100
  /**
@@ -100,19 +106,19 @@ export abstract class AdapterBase<
100
106
  * @param params The service call parameter.
101
107
  * @returns A new object containing the sanitized query.
102
108
  */
103
- async sanitizeQuery (params: P = {} as P): Promise<Query> {
104
- const options = this.getOptions(params);
109
+ async sanitizeQuery(params: P = {} as P): Promise<Query> {
110
+ const options = this.getOptions(params)
105
111
  const { query, filters } = filterQuery(params.query, options)
106
112
 
107
113
  return {
108
114
  ...filters,
109
115
  ...query
110
- };
116
+ }
111
117
  }
112
118
 
113
- abstract $find(_params?: P & { paginate?: PaginationOptions }): Promise<Paginated<T>>;
114
- abstract $find(_params?: P & { paginate: false }): Promise<T[]>;
115
- abstract $find(params?: P): Promise<T[] | Paginated<T>>;
119
+ abstract $find(_params?: P & { paginate?: PaginationOptions }): Promise<Paginated<T>>
120
+ abstract $find(_params?: P & { paginate: false }): Promise<T[]>
121
+ abstract $find(params?: P): Promise<T[] | Paginated<T>>
116
122
 
117
123
  /**
118
124
  * Retrieve all resources from this service, skipping any service-level hooks but sanitize the query
@@ -122,19 +128,19 @@ export abstract class AdapterBase<
122
128
  * @see {@link HookLessServiceMethods}
123
129
  * @see {@link https://docs.feathersjs.com/api/services.html#find-params|Feathers API Documentation: .find(params)}
124
130
  */
125
- async _find(_params?: P & { paginate?: PaginationOptions }): Promise<Paginated<T>>;
126
- async _find(_params?: P & { paginate: false }): Promise<T[]>;
127
- async _find(params?: P): Promise<T | T[] | Paginated<T>>;
128
- async _find (params?: P): Promise<T | T[] | Paginated<T>> {
129
- const query = await this.sanitizeQuery(params);
131
+ async _find(_params?: P & { paginate?: PaginationOptions }): Promise<Paginated<T>>
132
+ async _find(_params?: P & { paginate: false }): Promise<T[]>
133
+ async _find(params?: P): Promise<T | T[] | Paginated<T>>
134
+ async _find(params?: P): Promise<T | T[] | Paginated<T>> {
135
+ const query = await this.sanitizeQuery(params)
130
136
 
131
137
  return this.$find({
132
138
  ...params,
133
139
  query
134
- });
140
+ })
135
141
  }
136
142
 
137
- abstract $get(id: Id, params?: P): Promise<T>;
143
+ abstract $get(id: Id, params?: P): Promise<T>
138
144
 
139
145
  /**
140
146
  * Retrieve a single resource matching the given ID, skipping any service-level hooks but sanitize the query
@@ -145,18 +151,18 @@ export abstract class AdapterBase<
145
151
  * @see {@link HookLessServiceMethods}
146
152
  * @see {@link https://docs.feathersjs.com/api/services.html#get-id-params|Feathers API Documentation: .get(id, params)}
147
153
  */
148
- async _get (id: Id, params?: P): Promise<T> {
149
- const query = await this.sanitizeQuery(params);
154
+ async _get(id: Id, params?: P): Promise<T> {
155
+ const query = await this.sanitizeQuery(params)
150
156
 
151
157
  return this.$get(id, {
152
158
  ...params,
153
159
  query
154
- });
160
+ })
155
161
  }
156
162
 
157
- abstract $create(data: Partial<D>, params?: P): Promise<T>;
158
- abstract $create(data: Partial<D>[], params?: P): Promise<T[]>;
159
- abstract $create(data: Partial<D> | Partial<D>[], params?: P): Promise<T | T[]>;
163
+ abstract $create(data: Partial<D>, params?: P): Promise<T>
164
+ abstract $create(data: Partial<D>[], params?: P): Promise<T[]>
165
+ abstract $create(data: Partial<D> | Partial<D>[], params?: P): Promise<T | T[]>
160
166
 
161
167
  /**
162
168
  * Create a new resource for this service, skipping any service-level hooks, sanitize the data
@@ -167,22 +173,22 @@ export abstract class AdapterBase<
167
173
  * @see {@link HookLessServiceMethods}
168
174
  * @see {@link https://docs.feathersjs.com/api/services.html#create-data-params|Feathers API Documentation: .create(data, params)}
169
175
  */
170
- async _create(data: Partial<D>, params?: P): Promise<T>;
171
- async _create(data: Partial<D>[], params?: P): Promise<T[]>;
172
- async _create(data: Partial<D> | Partial<D>[], params?: P): Promise<T | T[]>;
173
- async _create (data: Partial<D> | Partial<D>[], params?: P): Promise<T | T[]> {
176
+ async _create(data: Partial<D>, params?: P): Promise<T>
177
+ async _create(data: Partial<D>[], params?: P): Promise<T[]>
178
+ async _create(data: Partial<D> | Partial<D>[], params?: P): Promise<T | T[]>
179
+ async _create(data: Partial<D> | Partial<D>[], params?: P): Promise<T | T[]> {
174
180
  if (Array.isArray(data) && !this.allowsMulti('create', params)) {
175
- throw new MethodNotAllowed('Can not create multiple entries');
181
+ throw new MethodNotAllowed('Can not create multiple entries')
176
182
  }
177
183
 
178
184
  const payload = Array.isArray(data)
179
- ? (await Promise.all(data.map(current => this.sanitizeData(current, params))))
180
- : (await this.sanitizeData(data, params));
185
+ ? await Promise.all(data.map((current) => this.sanitizeData(current, params)))
186
+ : await this.sanitizeData(data, params)
181
187
 
182
- return this.$create(payload, params);
188
+ return this.$create(payload, params)
183
189
  }
184
190
 
185
- abstract $update(id: Id, data: D, params?: P): Promise<T>;
191
+ abstract $update(id: Id, data: D, params?: P): Promise<T>
186
192
 
187
193
  /**
188
194
  * Replace any resources matching the given ID with the given data, skipping any service-level hooks.
@@ -193,25 +199,23 @@ export abstract class AdapterBase<
193
199
  * @see {@link HookLessServiceMethods}
194
200
  * @see {@link https://docs.feathersjs.com/api/services.html#update-id-data-params|Feathers API Documentation: .update(id, data, params)}
195
201
  */
196
- async _update (id: Id, data: D, params?: P): Promise<T> {
202
+ async _update(id: Id, data: D, params?: P): Promise<T> {
197
203
  if (id === null || Array.isArray(data)) {
198
- throw new BadRequest(
199
- 'You can not replace multiple instances. Did you mean \'patch\'?'
200
- );
204
+ throw new BadRequest("You can not replace multiple instances. Did you mean 'patch'?")
201
205
  }
202
206
 
203
- const payload = await this.sanitizeData(data, params);
204
- const query = await this.sanitizeQuery(params);
207
+ const payload = await this.sanitizeData(data, params)
208
+ const query = await this.sanitizeQuery(params)
205
209
 
206
210
  return this.$update(id, payload, {
207
211
  ...params,
208
212
  query
209
- });
213
+ })
210
214
  }
211
215
 
212
- abstract $patch(id: null, data: Partial<D>, params?: P): Promise<T[]>;
213
- abstract $patch(id: Id, data: Partial<D>, params?: P): Promise<T>;
214
- abstract $patch(id: NullableId, data: Partial<D>, params?: P): Promise<T | T[]>;
216
+ abstract $patch(id: null, data: Partial<D>, params?: P): Promise<T[]>
217
+ abstract $patch(id: Id, data: Partial<D>, params?: P): Promise<T>
218
+ abstract $patch(id: NullableId, data: Partial<D>, params?: P): Promise<T | T[]>
215
219
 
216
220
  /**
217
221
  * Merge any resources matching the given ID with the given data, skipping any service-level hooks.
@@ -223,26 +227,26 @@ export abstract class AdapterBase<
223
227
  * @see {@link HookLessServiceMethods}
224
228
  * @see {@link https://docs.feathersjs.com/api/services.html#patch-id-data-params|Feathers API Documentation: .patch(id, data, params)}
225
229
  */
226
- async _patch(id: null, data: Partial<D>, params?: P): Promise<T[]>;
227
- async _patch(id: Id, data: Partial<D>, params?: P): Promise<T>;
228
- async _patch(id: NullableId, data: Partial<D>, params?: P): Promise<T | T[]>;
229
- async _patch (id: NullableId, data: Partial<D>, params?: P): Promise<T | T[]> {
230
+ async _patch(id: null, data: Partial<D>, params?: P): Promise<T[]>
231
+ async _patch(id: Id, data: Partial<D>, params?: P): Promise<T>
232
+ async _patch(id: NullableId, data: Partial<D>, params?: P): Promise<T | T[]>
233
+ async _patch(id: NullableId, data: Partial<D>, params?: P): Promise<T | T[]> {
230
234
  if (id === null && !this.allowsMulti('patch', params)) {
231
- throw new MethodNotAllowed('Can not patch multiple entries');
235
+ throw new MethodNotAllowed('Can not patch multiple entries')
232
236
  }
233
237
 
234
- const query = await this.sanitizeQuery(params);
235
- const payload = await this.sanitizeData(data, params);
238
+ const { $limit, ...query } = await this.sanitizeQuery(params)
239
+ const payload = await this.sanitizeData(data, params)
236
240
 
237
241
  return this.$patch(id, payload, {
238
242
  ...params,
239
243
  query
240
- });
244
+ })
241
245
  }
242
246
 
243
- abstract $remove(id: null, params?: P): Promise<T[]>;
244
- abstract $remove(id: Id, params?: P): Promise<T>;
245
- abstract $remove(id: NullableId, params?: P): Promise<T | T[]>;
247
+ abstract $remove(id: null, params?: P): Promise<T[]>
248
+ abstract $remove(id: Id, params?: P): Promise<T>
249
+ abstract $remove(id: NullableId, params?: P): Promise<T | T[]>
246
250
 
247
251
  /**
248
252
  * Remove resources matching the given ID from the this service, skipping any service-level hooks.
@@ -253,19 +257,19 @@ export abstract class AdapterBase<
253
257
  * @see {@link HookLessServiceMethods}
254
258
  * @see {@link https://docs.feathersjs.com/api/services.html#remove-id-params|Feathers API Documentation: .remove(id, params)}
255
259
  */
256
- async _remove(id: null, params?: P): Promise<T[]>;
257
- async _remove(id: Id, params?: P): Promise<T>;
258
- async _remove(id: NullableId, params?: P): Promise<T | T[]>;
259
- async _remove (id: NullableId, params?: P): Promise<T | T[]> {
260
+ async _remove(id: null, params?: P): Promise<T[]>
261
+ async _remove(id: Id, params?: P): Promise<T>
262
+ async _remove(id: NullableId, params?: P): Promise<T | T[]>
263
+ async _remove(id: NullableId, params?: P): Promise<T | T[]> {
260
264
  if (id === null && !this.allowsMulti('remove', params)) {
261
- throw new MethodNotAllowed('Can not remove multiple entries');
265
+ throw new MethodNotAllowed('Can not remove multiple entries')
262
266
  }
263
267
 
264
- const query = await this.sanitizeQuery(params);
268
+ const { $limit, ...query } = await this.sanitizeQuery(params)
265
269
 
266
270
  return this.$remove(id, {
267
271
  ...params,
268
272
  query
269
- });
273
+ })
270
274
  }
271
275
  }
package/src/sort.ts CHANGED
@@ -1,90 +1,130 @@
1
1
  // Sorting algorithm taken from NeDB (https://github.com/louischatriot/nedb)
2
2
  // See https://github.com/louischatriot/nedb/blob/e3f0078499aa1005a59d0c2372e425ab789145c1/lib/model.js#L189
3
3
 
4
- export function compareNSB (a: any, b: any) {
5
- if (a < b) { return -1; }
6
- if (a > b) { return 1; }
7
- return 0;
4
+ export function compareNSB(a: any, b: any) {
5
+ if (a < b) {
6
+ return -1
7
+ }
8
+ if (a > b) {
9
+ return 1
10
+ }
11
+ return 0
8
12
  }
9
13
 
10
- export function compareArrays (a: any[], b: any[]) {
14
+ export function compareArrays(a: any[], b: any[]) {
11
15
  for (let i = 0, l = Math.min(a.length, b.length); i < l; i++) {
12
- const comparison = compare(a[i], b[i]);
16
+ const comparison = compare(a[i], b[i])
13
17
 
14
- if (comparison !== 0) { return comparison; }
18
+ if (comparison !== 0) {
19
+ return comparison
20
+ }
15
21
  }
16
22
 
17
23
  // Common section was identical, longest one wins
18
- return compareNSB(a.length, b.length);
24
+ return compareNSB(a.length, b.length)
19
25
  }
20
26
 
21
- export function compare (a: any, b: any, compareStrings: any = compareNSB): 0 | 1 | -1 {
22
- if (a === b) { return 0; }
27
+ export function compare(a: any, b: any, compareStrings: any = compareNSB): 0 | 1 | -1 {
28
+ if (a === b) {
29
+ return 0
30
+ }
23
31
 
24
32
  // undefined
25
- if (a === undefined) { return -1; }
26
- if (b === undefined) { return 1; }
33
+ if (a === undefined) {
34
+ return -1
35
+ }
36
+ if (b === undefined) {
37
+ return 1
38
+ }
27
39
 
28
40
  // null
29
- if (a === null) { return -1; }
30
- if (b === null) { return 1; }
41
+ if (a === null) {
42
+ return -1
43
+ }
44
+ if (b === null) {
45
+ return 1
46
+ }
31
47
 
32
48
  // Numbers
33
- if (typeof a === 'number') { return typeof b === 'number' ? compareNSB(a, b) : -1; }
34
- if (typeof b === 'number') { return 1; }
49
+ if (typeof a === 'number') {
50
+ return typeof b === 'number' ? compareNSB(a, b) : -1
51
+ }
52
+ if (typeof b === 'number') {
53
+ return 1
54
+ }
35
55
 
36
56
  // Strings
37
- if (typeof a === 'string') { return typeof b === 'string' ? compareStrings(a, b) : -1; }
38
- if (typeof b === 'string') { return 1; }
57
+ if (typeof a === 'string') {
58
+ return typeof b === 'string' ? compareStrings(a, b) : -1
59
+ }
60
+ if (typeof b === 'string') {
61
+ return 1
62
+ }
39
63
 
40
64
  // Booleans
41
- if (typeof a === 'boolean') { return typeof b === 'boolean' ? compareNSB(a, b) : -1; }
42
- if (typeof b === 'boolean') { return 1; }
65
+ if (typeof a === 'boolean') {
66
+ return typeof b === 'boolean' ? compareNSB(a, b) : -1
67
+ }
68
+ if (typeof b === 'boolean') {
69
+ return 1
70
+ }
43
71
 
44
72
  // Dates
45
- if (a instanceof Date) { return b instanceof Date ? compareNSB(a.getTime(), b.getTime()) : -1; }
46
- if (b instanceof Date) { return 1; }
73
+ if (a instanceof Date) {
74
+ return b instanceof Date ? compareNSB(a.getTime(), b.getTime()) : -1
75
+ }
76
+ if (b instanceof Date) {
77
+ return 1
78
+ }
47
79
 
48
80
  // Arrays (first element is most significant and so on)
49
- if (Array.isArray(a)) { return Array.isArray(b) ? compareArrays(a, b) : -1; }
50
- if (Array.isArray(b)) { return 1; }
81
+ if (Array.isArray(a)) {
82
+ return Array.isArray(b) ? compareArrays(a, b) : -1
83
+ }
84
+ if (Array.isArray(b)) {
85
+ return 1
86
+ }
51
87
 
52
88
  // Objects
53
- const aKeys = Object.keys(a).sort();
54
- const bKeys = Object.keys(b).sort();
89
+ const aKeys = Object.keys(a).sort()
90
+ const bKeys = Object.keys(b).sort()
55
91
 
56
92
  for (let i = 0, l = Math.min(aKeys.length, bKeys.length); i < l; i++) {
57
- const comparison = compare(a[aKeys[i]], b[bKeys[i]]);
93
+ const comparison = compare(a[aKeys[i]], b[bKeys[i]])
58
94
 
59
- if (comparison !== 0) { return comparison; }
95
+ if (comparison !== 0) {
96
+ return comparison
97
+ }
60
98
  }
61
99
 
62
- return compareNSB(aKeys.length, bKeys.length);
100
+ return compareNSB(aKeys.length, bKeys.length)
63
101
  }
64
102
 
65
103
  // An in-memory sorting function according to the
66
104
  // $sort special query parameter
67
- export function sorter ($sort: { [key: string]: -1 | 1 }) {
68
- const get = (value: any, path: string[]) => path.reduce((value, key) => value[key], value);
105
+ export function sorter($sort: { [key: string]: -1 | 1 }) {
106
+ const get = (value: any, path: string[]) => path.reduce((value, key) => value[key], value)
69
107
 
70
- const compares = Object.keys($sort).map(key => {
71
- const direction = $sort[key];
72
- const path = key.split('.');
108
+ const compares = Object.keys($sort).map((key) => {
109
+ const direction = $sort[key]
110
+ const path = key.split('.')
73
111
 
74
112
  if (path.length === 1) {
75
- return (a: any, b: any) => direction * compare(a[key], b[key]);
113
+ return (a: any, b: any) => direction * compare(a[key], b[key])
76
114
  } else {
77
- return (a: any, b: any) => direction * compare(get(a, path), get(b, path));
115
+ return (a: any, b: any) => direction * compare(get(a, path), get(b, path))
78
116
  }
79
- });
117
+ })
80
118
 
81
119
  return function (a: any, b: any) {
82
120
  for (const compare of compares) {
83
- const comparasion = compare(a, b);
121
+ const comparasion = compare(a, b)
84
122
 
85
- if (comparasion !== 0) { return comparasion; }
123
+ if (comparasion !== 0) {
124
+ return comparasion
125
+ }
86
126
  }
87
127
 
88
- return 0;
89
- };
128
+ return 0
129
+ }
90
130
  }