@feathersjs/memory 5.0.0-pre.33 → 5.0.0-pre.35

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,18 @@
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.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
7
+
8
+ ### Features
9
+
10
+ - **generators:** Move core code generators to shared generators package ([#2982](https://github.com/feathersjs/feathers/issues/2982)) ([0328d22](https://github.com/feathersjs/feathers/commit/0328d2292153870bc43958f73d2c6f288a8cec17))
11
+
12
+ # [5.0.0-pre.34](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.33...v5.0.0-pre.34) (2022-12-14)
13
+
14
+ ### Features
15
+
16
+ - **adapter:** Add patch data type to adapters and refactor AdapterBase usage ([#2906](https://github.com/feathersjs/feathers/issues/2906)) ([9ddc2e6](https://github.com/feathersjs/feathers/commit/9ddc2e6b028f026f939d6af68125847e5c6734b4))
17
+
6
18
  # [5.0.0-pre.33](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.32...v5.0.0-pre.33) (2022-11-08)
7
19
 
8
20
  ### Bug Fixes
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { AdapterBase, AdapterServiceOptions, PaginationOptions, AdapterParams } from '@feathersjs/adapter-commons';
2
- import { NullableId, Id, Params, ServiceMethods, Paginated } from '@feathersjs/feathers';
2
+ import { NullableId, Id, Params, Paginated } from '@feathersjs/feathers';
3
3
  export interface MemoryServiceStore<T> {
4
4
  [key: string]: T;
5
5
  }
@@ -9,12 +9,12 @@ export interface MemoryServiceOptions<T = any> extends AdapterServiceOptions {
9
9
  matcher?: (query: any) => any;
10
10
  sorter?: (sort: any) => any;
11
11
  }
12
- export declare class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> extends AdapterBase<T, D, P, MemoryServiceOptions<T>> {
13
- store: MemoryServiceStore<T>;
12
+ export declare class MemoryAdapter<Result = any, Data = Partial<Result>, ServiceParams extends Params = Params, PatchData = Partial<Data>> extends AdapterBase<Result, Data, PatchData, ServiceParams, MemoryServiceOptions<Result>> {
13
+ store: MemoryServiceStore<Result>;
14
14
  _uId: number;
15
- constructor(options?: MemoryServiceOptions<T>);
16
- getEntries(_params?: P): Promise<T[]>;
17
- getQuery(params: P): {
15
+ constructor(options?: MemoryServiceOptions<Result>);
16
+ getEntries(_params?: ServiceParams): Promise<Result[]>;
17
+ getQuery(params: ServiceParams): {
18
18
  query: {
19
19
  [key: string]: any;
20
20
  };
@@ -25,40 +25,40 @@ export declare class MemoryAdapter<T = any, D = Partial<T>, P extends Params = P
25
25
  $select: any;
26
26
  };
27
27
  };
28
- $find(_params?: P & {
28
+ _find(_params?: ServiceParams & {
29
29
  paginate?: PaginationOptions;
30
- }): Promise<Paginated<T>>;
31
- $find(_params?: P & {
30
+ }): Promise<Paginated<Result>>;
31
+ _find(_params?: ServiceParams & {
32
32
  paginate: false;
33
- }): Promise<T[]>;
34
- $find(_params?: P): Promise<Paginated<T> | T[]>;
35
- $get(id: Id, params?: P): Promise<T>;
36
- $create(data: Partial<D>, params?: P): Promise<T>;
37
- $create(data: Partial<D>[], params?: P): Promise<T[]>;
38
- $create(data: Partial<D> | Partial<D>[], _params?: P): Promise<T | T[]>;
39
- $update(id: Id, data: D, params?: P): Promise<T>;
40
- $patch(id: null, data: Partial<D>, params?: P): Promise<T[]>;
41
- $patch(id: Id, data: Partial<D>, params?: P): Promise<T>;
42
- $patch(id: NullableId, data: Partial<D>, _params?: P): Promise<T | T[]>;
43
- $remove(id: null, params?: P): Promise<T[]>;
44
- $remove(id: Id, params?: P): Promise<T>;
45
- $remove(id: NullableId, _params?: P): Promise<T | T[]>;
33
+ }): Promise<Result[]>;
34
+ _find(_params?: ServiceParams): Promise<Paginated<Result> | Result[]>;
35
+ _get(id: Id, params?: ServiceParams): Promise<Result>;
36
+ _create(data: Partial<Data>, params?: ServiceParams): Promise<Result>;
37
+ _create(data: Partial<Data>[], params?: ServiceParams): Promise<Result[]>;
38
+ _create(data: Partial<Data> | Partial<Data>[], _params?: ServiceParams): Promise<Result | Result[]>;
39
+ _update(id: Id, data: Data, params?: ServiceParams): Promise<Result>;
40
+ _patch(id: null, data: PatchData, params?: ServiceParams): Promise<Result[]>;
41
+ _patch(id: Id, data: PatchData, params?: ServiceParams): Promise<Result>;
42
+ _patch(id: NullableId, data: PatchData, _params?: ServiceParams): Promise<Result | Result[]>;
43
+ _remove(id: null, params?: ServiceParams): Promise<Result[]>;
44
+ _remove(id: Id, params?: ServiceParams): Promise<Result>;
45
+ _remove(id: NullableId, _params?: ServiceParams): Promise<Result | Result[]>;
46
46
  }
47
- export declare class MemoryService<T = any, D = Partial<T>, P extends AdapterParams = AdapterParams> extends MemoryAdapter<T, D, P> implements ServiceMethods<T | Paginated<T>, D, P> {
48
- find(params?: P & {
47
+ export declare class MemoryService<Result = any, Data = Partial<Result>, ServiceParams extends AdapterParams = AdapterParams, PatchData = Partial<Data>> extends MemoryAdapter<Result, Data, ServiceParams, PatchData> {
48
+ find(params?: ServiceParams & {
49
49
  paginate?: PaginationOptions;
50
- }): Promise<Paginated<T>>;
51
- find(params?: P & {
50
+ }): Promise<Paginated<Result>>;
51
+ find(params?: ServiceParams & {
52
52
  paginate: false;
53
- }): Promise<T[]>;
54
- find(params?: P): Promise<Paginated<T> | T[]>;
55
- get(id: Id, params?: P): Promise<T>;
56
- create(data: D, params?: P): Promise<T>;
57
- create(data: D[], params?: P): Promise<T[]>;
58
- update(id: Id, data: D, params?: P): Promise<T>;
59
- patch(id: Id, data: Partial<D>, params?: P): Promise<T>;
60
- patch(id: null, data: Partial<D>, params?: P): Promise<T[]>;
61
- remove(id: Id, params?: P): Promise<T>;
62
- remove(id: null, params?: P): Promise<T[]>;
53
+ }): Promise<Result[]>;
54
+ find(params?: ServiceParams): Promise<Paginated<Result> | Result[]>;
55
+ get(id: Id, params?: ServiceParams): Promise<Result>;
56
+ create(data: Data, params?: ServiceParams): Promise<Result>;
57
+ create(data: Data[], params?: ServiceParams): Promise<Result[]>;
58
+ update(id: Id, data: Data, params?: ServiceParams): Promise<Result>;
59
+ patch(id: Id, data: PatchData, params?: ServiceParams): Promise<Result>;
60
+ patch(id: null, data: PatchData, params?: ServiceParams): Promise<Result[]>;
61
+ remove(id: Id, params?: ServiceParams): Promise<Result>;
62
+ remove(id: null, params?: ServiceParams): Promise<Result[]>;
63
63
  }
64
- export declare function memory<T = any, D = Partial<T>, P extends Params = Params>(options?: Partial<MemoryServiceOptions<T>>): MemoryService<T, D, P>;
64
+ export declare function memory<T = any, D = Partial<T>, P extends Params = Params>(options?: Partial<MemoryServiceOptions<T>>): MemoryService<T, D, P, Partial<D>>;
package/lib/index.js CHANGED
@@ -27,7 +27,7 @@ class MemoryAdapter extends adapter_commons_1.AdapterBase {
27
27
  }
28
28
  async getEntries(_params) {
29
29
  const params = _params || {};
30
- return this.$find({
30
+ return this._find({
31
31
  ...params,
32
32
  paginate: false
33
33
  });
@@ -39,7 +39,7 @@ class MemoryAdapter extends adapter_commons_1.AdapterBase {
39
39
  filters: { $skip, $sort, $limit, $select }
40
40
  };
41
41
  }
42
- async $find(params = {}) {
42
+ async _find(params = {}) {
43
43
  const { paginate } = this.getOptions(params);
44
44
  const { query, filters } = this.getQuery(params);
45
45
  let values = commons_1._.values(this.store);
@@ -82,7 +82,7 @@ class MemoryAdapter extends adapter_commons_1.AdapterBase {
82
82
  }
83
83
  return result;
84
84
  }
85
- async $get(id, params = {}) {
85
+ async _get(id, params = {}) {
86
86
  const { query } = this.getQuery(params);
87
87
  if (id in this.store) {
88
88
  const value = this.store[id];
@@ -92,25 +92,31 @@ class MemoryAdapter extends adapter_commons_1.AdapterBase {
92
92
  }
93
93
  throw new errors_1.NotFound(`No record found for id '${id}'`);
94
94
  }
95
- async $create(data, params = {}) {
95
+ async _create(data, params = {}) {
96
96
  if (Array.isArray(data)) {
97
- return Promise.all(data.map((current) => this.$create(current, params)));
97
+ return Promise.all(data.map((current) => this._create(current, params)));
98
98
  }
99
99
  const id = data[this.id] || this._uId++;
100
100
  const current = commons_1._.extend({}, data, { [this.id]: id });
101
101
  const result = (this.store[id] = current);
102
102
  return _select(result, params, this.id);
103
103
  }
104
- async $update(id, data, params = {}) {
105
- const oldEntry = await this.$get(id);
104
+ async _update(id, data, params = {}) {
105
+ if (id === null || Array.isArray(data)) {
106
+ throw new errors_1.BadRequest("You can not replace multiple instances. Did you mean 'patch'?");
107
+ }
108
+ const oldEntry = await this._get(id);
106
109
  // We don't want our id to change type if it can be coerced
107
110
  const oldId = oldEntry[this.id];
108
111
  // eslint-disable-next-line eqeqeq
109
112
  id = oldId == id ? oldId : id;
110
113
  this.store[id] = commons_1._.extend({}, data, { [this.id]: id });
111
- return this.$get(id, params);
114
+ return this._get(id, params);
112
115
  }
113
- async $patch(id, data, params = {}) {
116
+ async _patch(id, data, params = {}) {
117
+ if (id === null && !this.allowsMulti('patch', params)) {
118
+ throw new errors_1.MethodNotAllowed('Can not patch multiple entries');
119
+ }
114
120
  const { query } = this.getQuery(params);
115
121
  const patchEntry = (entry) => {
116
122
  const currentId = entry[this.id];
@@ -124,18 +130,21 @@ class MemoryAdapter extends adapter_commons_1.AdapterBase {
124
130
  });
125
131
  return entries.map(patchEntry);
126
132
  }
127
- return patchEntry(await this.$get(id, params)); // Will throw an error if not found
133
+ return patchEntry(await this._get(id, params)); // Will throw an error if not found
128
134
  }
129
- async $remove(id, params = {}) {
135
+ async _remove(id, params = {}) {
136
+ if (id === null && !this.allowsMulti('remove', params)) {
137
+ throw new errors_1.MethodNotAllowed('Can not remove multiple entries');
138
+ }
130
139
  const { query } = this.getQuery(params);
131
140
  if (id === null) {
132
141
  const entries = await this.getEntries({
133
142
  ...params,
134
143
  query
135
144
  });
136
- return Promise.all(entries.map((current) => this.$remove(current[this.id], params)));
145
+ return Promise.all(entries.map((current) => this._remove(current[this.id], params)));
137
146
  }
138
- const entry = await this.$get(id, params);
147
+ const entry = await this._get(id, params);
139
148
  delete this.store[id];
140
149
  return entry;
141
150
  }
@@ -143,22 +152,42 @@ class MemoryAdapter extends adapter_commons_1.AdapterBase {
143
152
  exports.MemoryAdapter = MemoryAdapter;
144
153
  class MemoryService extends MemoryAdapter {
145
154
  async find(params) {
146
- return this._find(params);
155
+ return this._find({
156
+ ...params,
157
+ query: await this.sanitizeQuery(params)
158
+ });
147
159
  }
148
160
  async get(id, params) {
149
- return this._get(id, params);
161
+ return this._get(id, {
162
+ ...params,
163
+ query: await this.sanitizeQuery(params)
164
+ });
150
165
  }
151
166
  async create(data, params) {
167
+ if (Array.isArray(data) && !this.allowsMulti('create', params)) {
168
+ throw new errors_1.MethodNotAllowed('Can not create multiple entries');
169
+ }
152
170
  return this._create(data, params);
153
171
  }
154
172
  async update(id, data, params) {
155
- return this._update(id, data, params);
173
+ return this._update(id, data, {
174
+ ...params,
175
+ query: await this.sanitizeQuery(params)
176
+ });
156
177
  }
157
178
  async patch(id, data, params) {
158
- return this._patch(id, data, params);
179
+ const { $limit, ...query } = await this.sanitizeQuery(params);
180
+ return this._patch(id, data, {
181
+ ...params,
182
+ query
183
+ });
159
184
  }
160
185
  async remove(id, params) {
161
- return this._remove(id, params);
186
+ const { $limit, ...query } = await this.sanitizeQuery(params);
187
+ return this._remove(id, {
188
+ ...params,
189
+ query
190
+ });
162
191
  }
163
192
  }
164
193
  exports.MemoryService = MemoryService;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@feathersjs/memory",
3
3
  "description": "An in memory service store",
4
- "version": "5.0.0-pre.33",
4
+ "version": "5.0.0-pre.35",
5
5
  "homepage": "https://github.com/feathersjs/feathers",
6
6
  "main": "lib/",
7
7
  "types": "lib/",
@@ -38,7 +38,7 @@
38
38
  ],
39
39
  "scripts": {
40
40
  "prepublish": "npm run compile",
41
- "pack": "npm pack --pack-destination ../cli/test/build",
41
+ "pack": "npm pack --pack-destination ../generators/test/build",
42
42
  "compile": "shx rm -rf lib/ && tsc && npm run pack",
43
43
  "test": "mocha --config ../../.mocharc.json --recursive test/**/*.test.ts"
44
44
  },
@@ -49,20 +49,20 @@
49
49
  "lib": "lib"
50
50
  },
51
51
  "dependencies": {
52
- "@feathersjs/adapter-commons": "^5.0.0-pre.33",
53
- "@feathersjs/commons": "^5.0.0-pre.33",
54
- "@feathersjs/errors": "^5.0.0-pre.33",
52
+ "@feathersjs/adapter-commons": "^5.0.0-pre.35",
53
+ "@feathersjs/commons": "^5.0.0-pre.35",
54
+ "@feathersjs/errors": "^5.0.0-pre.35",
55
55
  "sift": "^16.0.1"
56
56
  },
57
57
  "devDependencies": {
58
- "@feathersjs/adapter-tests": "^5.0.0-pre.33",
59
- "@feathersjs/feathers": "^5.0.0-pre.33",
60
- "@types/mocha": "^10.0.0",
61
- "@types/node": "^18.11.9",
62
- "mocha": "^10.1.0",
58
+ "@feathersjs/adapter-tests": "^5.0.0-pre.35",
59
+ "@feathersjs/feathers": "^5.0.0-pre.35",
60
+ "@types/mocha": "^10.0.1",
61
+ "@types/node": "^18.11.18",
62
+ "mocha": "^10.2.0",
63
63
  "shx": "^0.3.4",
64
64
  "ts-node": "^10.9.1",
65
- "typescript": "^4.8.4"
65
+ "typescript": "^4.9.4"
66
66
  },
67
- "gitHead": "89f516bcb1457e23a02c6212e9cd8bacc4d267d4"
67
+ "gitHead": "c641598d9a4de3ceda10f56cf2af288a4236b15e"
68
68
  }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { NotFound } from '@feathersjs/errors'
1
+ import { BadRequest, MethodNotAllowed, NotFound } from '@feathersjs/errors'
2
2
  import { _ } from '@feathersjs/commons'
3
3
  import {
4
4
  sorter,
@@ -9,7 +9,7 @@ import {
9
9
  AdapterParams
10
10
  } from '@feathersjs/adapter-commons'
11
11
  import sift from 'sift'
12
- import { NullableId, Id, Params, ServiceMethods, Paginated } from '@feathersjs/feathers'
12
+ import { NullableId, Id, Params, Paginated } from '@feathersjs/feathers'
13
13
 
14
14
  export interface MemoryServiceStore<T> {
15
15
  [key: string]: T
@@ -28,16 +28,16 @@ const _select = (data: any, params: any, ...args: any[]) => {
28
28
  return base(JSON.parse(JSON.stringify(data)))
29
29
  }
30
30
 
31
- export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> extends AdapterBase<
32
- T,
33
- D,
34
- P,
35
- MemoryServiceOptions<T>
36
- > {
37
- store: MemoryServiceStore<T>
31
+ export class MemoryAdapter<
32
+ Result = any,
33
+ Data = Partial<Result>,
34
+ ServiceParams extends Params = Params,
35
+ PatchData = Partial<Data>
36
+ > extends AdapterBase<Result, Data, PatchData, ServiceParams, MemoryServiceOptions<Result>> {
37
+ store: MemoryServiceStore<Result>
38
38
  _uId: number
39
39
 
40
- constructor(options: MemoryServiceOptions<T> = {}) {
40
+ constructor(options: MemoryServiceOptions<Result> = {}) {
41
41
  super({
42
42
  id: 'id',
43
43
  matcher: sift,
@@ -50,16 +50,16 @@ export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> e
50
50
  this.store = { ...this.options.store }
51
51
  }
52
52
 
53
- async getEntries(_params?: P) {
54
- const params = _params || ({} as P)
53
+ async getEntries(_params?: ServiceParams) {
54
+ const params = _params || ({} as ServiceParams)
55
55
 
56
- return this.$find({
56
+ return this._find({
57
57
  ...params,
58
58
  paginate: false
59
59
  })
60
60
  }
61
61
 
62
- getQuery(params: P) {
62
+ getQuery(params: ServiceParams) {
63
63
  const { $skip, $sort, $limit, $select, ...query } = params.query || {}
64
64
 
65
65
  return {
@@ -68,10 +68,10 @@ export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> e
68
68
  }
69
69
  }
70
70
 
71
- async $find(_params?: P & { paginate?: PaginationOptions }): Promise<Paginated<T>>
72
- async $find(_params?: P & { paginate: false }): Promise<T[]>
73
- async $find(_params?: P): Promise<Paginated<T> | T[]>
74
- async $find(params: P = {} as P): Promise<Paginated<T> | T[]> {
71
+ async _find(_params?: ServiceParams & { paginate?: PaginationOptions }): Promise<Paginated<Result>>
72
+ async _find(_params?: ServiceParams & { paginate: false }): Promise<Result[]>
73
+ async _find(_params?: ServiceParams): Promise<Paginated<Result> | Result[]>
74
+ async _find(params: ServiceParams = {} as ServiceParams): Promise<Paginated<Result> | Result[]> {
75
75
  const { paginate } = this.getOptions(params)
76
76
  const { query, filters } = this.getQuery(params)
77
77
 
@@ -113,7 +113,7 @@ export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> e
113
113
  values = matched
114
114
  }
115
115
 
116
- const result: Paginated<T> = {
116
+ const result: Paginated<Result> = {
117
117
  total: hasQuery ? values.length : total,
118
118
  limit: filters.$limit,
119
119
  skip: filters.$skip || 0,
@@ -127,7 +127,7 @@ export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> e
127
127
  return result
128
128
  }
129
129
 
130
- async $get(id: Id, params: P = {} as P): Promise<T> {
130
+ async _get(id: Id, params: ServiceParams = {} as ServiceParams): Promise<Result> {
131
131
  const { query } = this.getQuery(params)
132
132
 
133
133
  if (id in this.store) {
@@ -141,23 +141,30 @@ export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> e
141
141
  throw new NotFound(`No record found for id '${id}'`)
142
142
  }
143
143
 
144
- async $create(data: Partial<D>, params?: P): Promise<T>
145
- async $create(data: Partial<D>[], params?: P): Promise<T[]>
146
- async $create(data: Partial<D> | Partial<D>[], _params?: P): Promise<T | T[]>
147
- async $create(data: Partial<D> | Partial<D>[], params: P = {} as P): Promise<T | T[]> {
144
+ async _create(data: Partial<Data>, params?: ServiceParams): Promise<Result>
145
+ async _create(data: Partial<Data>[], params?: ServiceParams): Promise<Result[]>
146
+ async _create(data: Partial<Data> | Partial<Data>[], _params?: ServiceParams): Promise<Result | Result[]>
147
+ async _create(
148
+ data: Partial<Data> | Partial<Data>[],
149
+ params: ServiceParams = {} as ServiceParams
150
+ ): Promise<Result | Result[]> {
148
151
  if (Array.isArray(data)) {
149
- return Promise.all(data.map((current) => this.$create(current, params)))
152
+ return Promise.all(data.map((current) => this._create(current, params)))
150
153
  }
151
154
 
152
155
  const id = (data as any)[this.id] || this._uId++
153
156
  const current = _.extend({}, data, { [this.id]: id })
154
157
  const result = (this.store[id] = current)
155
158
 
156
- return _select(result, params, this.id) as T
159
+ return _select(result, params, this.id) as Result
157
160
  }
158
161
 
159
- async $update(id: Id, data: D, params: P = {} as P): Promise<T> {
160
- const oldEntry = await this.$get(id)
162
+ async _update(id: Id, data: Data, params: ServiceParams = {} as ServiceParams): Promise<Result> {
163
+ if (id === null || Array.isArray(data)) {
164
+ throw new BadRequest("You can not replace multiple instances. Did you mean 'patch'?")
165
+ }
166
+
167
+ const oldEntry = await this._get(id)
161
168
  // We don't want our id to change type if it can be coerced
162
169
  const oldId = (oldEntry as any)[this.id]
163
170
 
@@ -166,15 +173,23 @@ export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> e
166
173
 
167
174
  this.store[id] = _.extend({}, data, { [this.id]: id })
168
175
 
169
- return this.$get(id, params)
176
+ return this._get(id, params)
170
177
  }
171
178
 
172
- async $patch(id: null, data: Partial<D>, params?: P): Promise<T[]>
173
- async $patch(id: Id, data: Partial<D>, params?: P): Promise<T>
174
- async $patch(id: NullableId, data: Partial<D>, _params?: P): Promise<T | T[]>
175
- async $patch(id: NullableId, data: Partial<D>, params: P = {} as P): Promise<T | T[]> {
179
+ async _patch(id: null, data: PatchData, params?: ServiceParams): Promise<Result[]>
180
+ async _patch(id: Id, data: PatchData, params?: ServiceParams): Promise<Result>
181
+ async _patch(id: NullableId, data: PatchData, _params?: ServiceParams): Promise<Result | Result[]>
182
+ async _patch(
183
+ id: NullableId,
184
+ data: PatchData,
185
+ params: ServiceParams = {} as ServiceParams
186
+ ): Promise<Result | Result[]> {
187
+ if (id === null && !this.allowsMulti('patch', params)) {
188
+ throw new MethodNotAllowed('Can not patch multiple entries')
189
+ }
190
+
176
191
  const { query } = this.getQuery(params)
177
- const patchEntry = (entry: T) => {
192
+ const patchEntry = (entry: Result) => {
178
193
  const currentId = (entry as any)[this.id]
179
194
 
180
195
  this.store[currentId] = _.extend(this.store[currentId], _.omit(data, this.id))
@@ -191,13 +206,17 @@ export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> e
191
206
  return entries.map(patchEntry)
192
207
  }
193
208
 
194
- return patchEntry(await this.$get(id, params)) // Will throw an error if not found
209
+ return patchEntry(await this._get(id, params)) // Will throw an error if not found
195
210
  }
196
211
 
197
- async $remove(id: null, params?: P): Promise<T[]>
198
- async $remove(id: Id, params?: P): Promise<T>
199
- async $remove(id: NullableId, _params?: P): Promise<T | T[]>
200
- async $remove(id: NullableId, params: P = {} as P): Promise<T | T[]> {
212
+ async _remove(id: null, params?: ServiceParams): Promise<Result[]>
213
+ async _remove(id: Id, params?: ServiceParams): Promise<Result>
214
+ async _remove(id: NullableId, _params?: ServiceParams): Promise<Result | Result[]>
215
+ async _remove(id: NullableId, params: ServiceParams = {} as ServiceParams): Promise<Result | Result[]> {
216
+ if (id === null && !this.allowsMulti('remove', params)) {
217
+ throw new MethodNotAllowed('Can not remove multiple entries')
218
+ }
219
+
201
220
  const { query } = this.getQuery(params)
202
221
 
203
222
  if (id === null) {
@@ -206,10 +225,10 @@ export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> e
206
225
  query
207
226
  })
208
227
 
209
- return Promise.all(entries.map((current: any) => this.$remove(current[this.id] as Id, params)))
228
+ return Promise.all(entries.map((current: any) => this._remove(current[this.id] as Id, params)))
210
229
  }
211
230
 
212
- const entry = await this.$get(id, params)
231
+ const entry = await this._get(id, params)
213
232
 
214
233
  delete this.store[id]
215
234
 
@@ -217,41 +236,66 @@ export class MemoryAdapter<T = any, D = Partial<T>, P extends Params = Params> e
217
236
  }
218
237
  }
219
238
 
220
- export class MemoryService<T = any, D = Partial<T>, P extends AdapterParams = AdapterParams>
221
- extends MemoryAdapter<T, D, P>
222
- implements ServiceMethods<T | Paginated<T>, D, P>
223
- {
224
- async find(params?: P & { paginate?: PaginationOptions }): Promise<Paginated<T>>
225
- async find(params?: P & { paginate: false }): Promise<T[]>
226
- async find(params?: P): Promise<Paginated<T> | T[]>
227
- async find(params?: P): Promise<Paginated<T> | T[]> {
228
- return this._find(params) as any
239
+ export class MemoryService<
240
+ Result = any,
241
+ Data = Partial<Result>,
242
+ ServiceParams extends AdapterParams = AdapterParams,
243
+ PatchData = Partial<Data>
244
+ > extends MemoryAdapter<Result, Data, ServiceParams, PatchData> {
245
+ async find(params?: ServiceParams & { paginate?: PaginationOptions }): Promise<Paginated<Result>>
246
+ async find(params?: ServiceParams & { paginate: false }): Promise<Result[]>
247
+ async find(params?: ServiceParams): Promise<Paginated<Result> | Result[]>
248
+ async find(params?: ServiceParams): Promise<Paginated<Result> | Result[]> {
249
+ return this._find({
250
+ ...params,
251
+ query: await this.sanitizeQuery(params)
252
+ })
229
253
  }
230
254
 
231
- async get(id: Id, params?: P): Promise<T> {
232
- return this._get(id, params)
255
+ async get(id: Id, params?: ServiceParams): Promise<Result> {
256
+ return this._get(id, {
257
+ ...params,
258
+ query: await this.sanitizeQuery(params)
259
+ })
233
260
  }
234
261
 
235
- async create(data: D, params?: P): Promise<T>
236
- async create(data: D[], params?: P): Promise<T[]>
237
- async create(data: D | D[], params?: P): Promise<T | T[]> {
262
+ async create(data: Data, params?: ServiceParams): Promise<Result>
263
+ async create(data: Data[], params?: ServiceParams): Promise<Result[]>
264
+ async create(data: Data | Data[], params?: ServiceParams): Promise<Result | Result[]> {
265
+ if (Array.isArray(data) && !this.allowsMulti('create', params)) {
266
+ throw new MethodNotAllowed('Can not create multiple entries')
267
+ }
268
+
238
269
  return this._create(data, params)
239
270
  }
240
271
 
241
- async update(id: Id, data: D, params?: P): Promise<T> {
242
- return this._update(id, data, params)
272
+ async update(id: Id, data: Data, params?: ServiceParams): Promise<Result> {
273
+ return this._update(id, data, {
274
+ ...params,
275
+ query: await this.sanitizeQuery(params)
276
+ })
243
277
  }
244
278
 
245
- async patch(id: Id, data: Partial<D>, params?: P): Promise<T>
246
- async patch(id: null, data: Partial<D>, params?: P): Promise<T[]>
247
- async patch(id: NullableId, data: Partial<D>, params?: P): Promise<T | T[]> {
248
- return this._patch(id, data, params)
279
+ async patch(id: Id, data: PatchData, params?: ServiceParams): Promise<Result>
280
+ async patch(id: null, data: PatchData, params?: ServiceParams): Promise<Result[]>
281
+ async patch(id: NullableId, data: PatchData, params?: ServiceParams): Promise<Result | Result[]> {
282
+ const { $limit, ...query } = await this.sanitizeQuery(params)
283
+
284
+ return this._patch(id, data, {
285
+ ...params,
286
+ query
287
+ })
249
288
  }
250
289
 
251
- async remove(id: Id, params?: P): Promise<T>
252
- async remove(id: null, params?: P): Promise<T[]>
253
- async remove(id: NullableId, params?: P): Promise<T | T[]> {
254
- return this._remove(id, params)
290
+ async remove(id: Id, params?: ServiceParams): Promise<Result>
291
+ async remove(id: null, params?: ServiceParams): Promise<Result[]>
292
+ async remove(id: NullableId, params?: ServiceParams): Promise<Result | Result[]> {
293
+ const { $limit, ...query } = await this.sanitizeQuery(params)
294
+
295
+ return this._remove(id, {
296
+ ...params,
297
+ query
298
+ })
255
299
  }
256
300
  }
257
301