@feathersjs/memory 5.0.9 → 5.0.11
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 +11 -0
- package/lib/index.js +25 -15
- package/lib/index.js.map +1 -1
- package/package.json +9 -9
- package/src/index.ts +32 -16
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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.11](https://github.com/feathersjs/feathers/compare/v5.0.10...v5.0.11) (2023-10-11)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **knex:** Update all dependencies and Knex peer ([#3308](https://github.com/feathersjs/feathers/issues/3308)) ([d2f9860](https://github.com/feathersjs/feathers/commit/d2f986036c4741cce2339d8abbcc6b2eb037a12a))
|
|
11
|
+
- **memory:** Ensure correct pagination totals ([#3307](https://github.com/feathersjs/feathers/issues/3307)) ([c59e1b8](https://github.com/feathersjs/feathers/commit/c59e1b80cb43571077b035ab2bf0b44f9daa5ab8))
|
|
12
|
+
|
|
13
|
+
## [5.0.10](https://github.com/feathersjs/feathers/compare/v5.0.9...v5.0.10) (2023-10-03)
|
|
14
|
+
|
|
15
|
+
**Note:** Version bump only for package @feathersjs/memory
|
|
16
|
+
|
|
6
17
|
## [5.0.9](https://github.com/feathersjs/feathers/compare/v5.0.8...v5.0.9) (2023-09-27)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @feathersjs/memory
|
package/lib/index.js
CHANGED
|
@@ -43,7 +43,6 @@ class MemoryAdapter extends adapter_commons_1.AdapterBase {
|
|
|
43
43
|
const { paginate } = this.getOptions(params);
|
|
44
44
|
const { query, filters } = this.getQuery(params);
|
|
45
45
|
let values = commons_1._.values(this.store);
|
|
46
|
-
const total = values.length;
|
|
47
46
|
const hasSkip = filters.$skip !== undefined;
|
|
48
47
|
const hasSort = filters.$sort !== undefined;
|
|
49
48
|
const hasLimit = filters.$limit !== undefined;
|
|
@@ -51,10 +50,33 @@ class MemoryAdapter extends adapter_commons_1.AdapterBase {
|
|
|
51
50
|
if (hasSort) {
|
|
52
51
|
values.sort(this.options.sorter(filters.$sort));
|
|
53
52
|
}
|
|
53
|
+
if (paginate) {
|
|
54
|
+
if (hasQuery) {
|
|
55
|
+
values = values.filter(this.options.matcher(query));
|
|
56
|
+
}
|
|
57
|
+
const total = values.length;
|
|
58
|
+
if (hasSkip) {
|
|
59
|
+
values = values.slice(filters.$skip);
|
|
60
|
+
}
|
|
61
|
+
if (hasLimit) {
|
|
62
|
+
values = values.slice(0, filters.$limit);
|
|
63
|
+
}
|
|
64
|
+
const result = {
|
|
65
|
+
total,
|
|
66
|
+
limit: filters.$limit,
|
|
67
|
+
skip: filters.$skip || 0,
|
|
68
|
+
data: values.map((value) => _select(value, params, this.id))
|
|
69
|
+
};
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
/* Without pagination, we don't have to match every result and gain considerable performance improvements with a breaking for loop. */
|
|
54
73
|
if (hasQuery || hasLimit || hasSkip) {
|
|
55
74
|
let skipped = 0;
|
|
56
75
|
const matcher = this.options.matcher(query);
|
|
57
76
|
const matched = [];
|
|
77
|
+
if (hasLimit && filters.$limit === 0) {
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
58
80
|
for (let index = 0, length = values.length; index < length; index++) {
|
|
59
81
|
const value = values[index];
|
|
60
82
|
if (hasQuery && !matcher(value, index, values)) {
|
|
@@ -69,21 +91,9 @@ class MemoryAdapter extends adapter_commons_1.AdapterBase {
|
|
|
69
91
|
break;
|
|
70
92
|
}
|
|
71
93
|
}
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
values = values.map((value) => _select(value, params, this.id));
|
|
76
|
-
}
|
|
77
|
-
const result = {
|
|
78
|
-
total: hasQuery ? values.length : total,
|
|
79
|
-
limit: filters.$limit,
|
|
80
|
-
skip: filters.$skip || 0,
|
|
81
|
-
data: filters.$limit === 0 ? [] : values
|
|
82
|
-
};
|
|
83
|
-
if (!paginate) {
|
|
84
|
-
return result.data;
|
|
94
|
+
return matched;
|
|
85
95
|
}
|
|
86
|
-
return
|
|
96
|
+
return values.map((value) => _select(value, params, this.id));
|
|
87
97
|
}
|
|
88
98
|
async _get(id, params = {}) {
|
|
89
99
|
const { query } = this.getQuery(params);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA2E;AAC3E,iDAAuC;AACvC,iEAOoC;AACpC,gDAAuB;AAcvB,MAAM,OAAO,GAAG,CAAC,IAAS,EAAE,MAAW,EAAE,GAAG,IAAc,EAAE,EAAE;IAC5D,MAAM,IAAI,GAAG,IAAA,wBAAM,EAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;IAEpC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAa,aAKX,SAAQ,6BAAiF;IAIzF,YAAY,UAAwC,EAAE;QACpD,KAAK,CAAC;YACJ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,cAAI;YACb,MAAM,EAAN,wBAAM;YACN,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,CAAC;YACV,GAAG,OAAO;SACX,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;QAChC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAuB;QACtC,MAAM,MAAM,GAAG,OAAO,IAAK,EAAoB,CAAA;QAE/C,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,GAAG,MAAM;YACT,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ,CAAC,MAAqB;QAC5B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAA;QAEtE,OAAO;YACL,KAAK;YACL,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;SAC3C,CAAA;IACH,CAAC;IAKD,KAAK,CAAC,KAAK,CAAC,SAAwB,EAAmB;QACrD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEhD,IAAI,MAAM,GAAG,WAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,
|
|
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.
|
|
4
|
+
"version": "5.0.11",
|
|
5
5
|
"homepage": "https://github.com/feathersjs/feathers",
|
|
6
6
|
"main": "lib/",
|
|
7
7
|
"types": "lib/",
|
|
@@ -49,20 +49,20 @@
|
|
|
49
49
|
"lib": "lib"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@feathersjs/adapter-commons": "^5.0.
|
|
53
|
-
"@feathersjs/commons": "^5.0.
|
|
54
|
-
"@feathersjs/errors": "^5.0.
|
|
52
|
+
"@feathersjs/adapter-commons": "^5.0.11",
|
|
53
|
+
"@feathersjs/commons": "^5.0.11",
|
|
54
|
+
"@feathersjs/errors": "^5.0.11",
|
|
55
55
|
"sift": "^17.0.1"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@feathersjs/adapter-tests": "^5.0.
|
|
59
|
-
"@feathersjs/feathers": "^5.0.
|
|
60
|
-
"@types/mocha": "^10.0.
|
|
61
|
-
"@types/node": "^20.
|
|
58
|
+
"@feathersjs/adapter-tests": "^5.0.11",
|
|
59
|
+
"@feathersjs/feathers": "^5.0.11",
|
|
60
|
+
"@types/mocha": "^10.0.2",
|
|
61
|
+
"@types/node": "^20.8.4",
|
|
62
62
|
"mocha": "^10.2.0",
|
|
63
63
|
"shx": "^0.3.4",
|
|
64
64
|
"ts-node": "^10.9.1",
|
|
65
65
|
"typescript": "^5.2.2"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "91294817845178ff0e9d4709127cb3e46d3562be"
|
|
68
68
|
}
|
package/src/index.ts
CHANGED
|
@@ -76,7 +76,6 @@ export class MemoryAdapter<
|
|
|
76
76
|
const { query, filters } = this.getQuery(params)
|
|
77
77
|
|
|
78
78
|
let values = _.values(this.store)
|
|
79
|
-
const total = values.length
|
|
80
79
|
const hasSkip = filters.$skip !== undefined
|
|
81
80
|
const hasSort = filters.$sort !== undefined
|
|
82
81
|
const hasLimit = filters.$limit !== undefined
|
|
@@ -86,11 +85,41 @@ export class MemoryAdapter<
|
|
|
86
85
|
values.sort(this.options.sorter(filters.$sort))
|
|
87
86
|
}
|
|
88
87
|
|
|
88
|
+
if (paginate) {
|
|
89
|
+
if (hasQuery) {
|
|
90
|
+
values = values.filter(this.options.matcher(query))
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const total = values.length
|
|
94
|
+
|
|
95
|
+
if (hasSkip) {
|
|
96
|
+
values = values.slice(filters.$skip)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (hasLimit) {
|
|
100
|
+
values = values.slice(0, filters.$limit)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const result: Paginated<Result> = {
|
|
104
|
+
total,
|
|
105
|
+
limit: filters.$limit,
|
|
106
|
+
skip: filters.$skip || 0,
|
|
107
|
+
data: values.map((value) => _select(value, params, this.id))
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return result
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* Without pagination, we don't have to match every result and gain considerable performance improvements with a breaking for loop. */
|
|
89
114
|
if (hasQuery || hasLimit || hasSkip) {
|
|
90
115
|
let skipped = 0
|
|
91
116
|
const matcher = this.options.matcher(query)
|
|
92
117
|
const matched = []
|
|
93
118
|
|
|
119
|
+
if (hasLimit && filters.$limit === 0) {
|
|
120
|
+
return []
|
|
121
|
+
}
|
|
122
|
+
|
|
94
123
|
for (let index = 0, length = values.length; index < length; index++) {
|
|
95
124
|
const value = values[index]
|
|
96
125
|
|
|
@@ -110,23 +139,10 @@ export class MemoryAdapter<
|
|
|
110
139
|
}
|
|
111
140
|
}
|
|
112
141
|
|
|
113
|
-
|
|
114
|
-
} else {
|
|
115
|
-
values = values.map((value) => _select(value, params, this.id))
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const result: Paginated<Result> = {
|
|
119
|
-
total: hasQuery ? values.length : total,
|
|
120
|
-
limit: filters.$limit,
|
|
121
|
-
skip: filters.$skip || 0,
|
|
122
|
-
data: filters.$limit === 0 ? [] : values
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
if (!paginate) {
|
|
126
|
-
return result.data
|
|
142
|
+
return matched
|
|
127
143
|
}
|
|
128
144
|
|
|
129
|
-
return
|
|
145
|
+
return values.map((value) => _select(value, params, this.id))
|
|
130
146
|
}
|
|
131
147
|
|
|
132
148
|
async _get(id: Id, params: ServiceParams = {} as ServiceParams): Promise<Result> {
|