@ddd-ts/store-inmemory 0.0.3-32 → 0.0.3-34
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/dist/store/in-memory.store.d.ts +2 -2
- package/dist/store/in-memory.store.d.ts.map +1 -1
- package/dist/store/in-memory.store.js +9 -8
- package/dist/store/in-memory.store.js.map +1 -1
- package/package.json +2 -2
- package/dist/in-memory.transaction-performer.d.ts +0 -10
- package/dist/in-memory.transaction-performer.d.ts.map +0 -1
- package/dist/in-memory.transaction-performer.js +0 -17
- package/dist/in-memory.transaction-performer.js.map +0 -1
- package/dist/store/in-memory.transaction.d.ts +0 -31
- package/dist/store/in-memory.transaction.d.ts.map +0 -1
- package/dist/store/in-memory.transaction.js +0 -10
- package/dist/store/in-memory.transaction.js.map +0 -1
|
@@ -11,13 +11,13 @@ export declare class InMemoryStore<M extends Model> implements Store<M> {
|
|
|
11
11
|
readonly database: InMemoryDatabase;
|
|
12
12
|
readonly serializer: ISerializer<M>;
|
|
13
13
|
constructor(collection: string, database: InMemoryDatabase, serializer: ISerializer<M>);
|
|
14
|
-
private
|
|
14
|
+
private serializeId;
|
|
15
15
|
protected filter(predicate: (model: M) => boolean, trx?: InMemoryTransactionId): Promise<M[]>;
|
|
16
16
|
clear(): void;
|
|
17
17
|
save(model: M, trx?: InMemoryTransaction): Promise<void>;
|
|
18
18
|
load(id: M['id'], trx?: InMemoryTransaction): Promise<M | undefined>;
|
|
19
19
|
loadAll(): Promise<M[]>;
|
|
20
|
-
loadMany(ids: M[
|
|
20
|
+
loadMany(ids: M['id'][], trx?: InMemoryTransaction): Promise<M[]>;
|
|
21
21
|
delete(id: M['id']): Promise<void>;
|
|
22
22
|
streamAll(): AsyncIterable<M>;
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.store.d.ts","sourceRoot":"","sources":["../../src/store/in-memory.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,KAAK,CACxC,YAAW,KAAK,CAAC,CAAC,CAAC;aAGD,UAAU,EAAE,MAAM;aAClB,QAAQ,EAAE,gBAAgB;aAC1B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;gBAF1B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAG5C,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"in-memory.store.d.ts","sourceRoot":"","sources":["../../src/store/in-memory.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,KAAK,CACxC,YAAW,KAAK,CAAC,CAAC,CAAC;aAGD,UAAU,EAAE,MAAM;aAClB,QAAQ,EAAE,gBAAgB;aAC1B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;gBAF1B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAG5C,OAAO,CAAC,WAAW;cASH,MAAM,CACpB,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAChC,GAAG,CAAC,EAAE,qBAAqB,GAC1B,OAAO,CAAC,CAAC,EAAE,CAAC;IAUf,KAAK;IAIC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAc1E,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAOjB,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAKjE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC;CAKtC"}
|
|
@@ -14,13 +14,13 @@ class InMemoryStore {
|
|
|
14
14
|
this.database = database;
|
|
15
15
|
this.serializer = serializer;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
if (Object.getOwnPropertyNames(
|
|
19
|
-
if ('serialize' in
|
|
20
|
-
return
|
|
17
|
+
serializeId(id) {
|
|
18
|
+
if (Object.getOwnPropertyNames(id).includes('serialize')) {
|
|
19
|
+
if ('serialize' in id) {
|
|
20
|
+
return id.serialize();
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
return
|
|
23
|
+
return id.toString();
|
|
24
24
|
}
|
|
25
25
|
async filter(predicate, trx) {
|
|
26
26
|
const serialized = await this.database.loadAll(this.collection, trx);
|
|
@@ -31,7 +31,7 @@ class InMemoryStore {
|
|
|
31
31
|
this.database.clear(this.collection);
|
|
32
32
|
}
|
|
33
33
|
async save(model, trx) {
|
|
34
|
-
await this.database.save(this.collection, this.
|
|
34
|
+
await this.database.save(this.collection, this.serializeId(model.id), await this.serializer.serialize(model), trx?.transaction);
|
|
35
35
|
}
|
|
36
36
|
async load(id, trx) {
|
|
37
37
|
const serialized = await this.database.load(this.collection, id.toString(), trx?.transaction);
|
|
@@ -44,8 +44,9 @@ class InMemoryStore {
|
|
|
44
44
|
const serialized = this.database.loadAll(this.collection);
|
|
45
45
|
return Promise.all(serialized.map((s) => this.serializer.deserialize(s)));
|
|
46
46
|
}
|
|
47
|
-
loadMany(ids) {
|
|
48
|
-
|
|
47
|
+
async loadMany(ids, trx) {
|
|
48
|
+
const result = await Promise.all(ids.map(id => this.load(id, trx)));
|
|
49
|
+
return result.filter(m => m !== undefined);
|
|
49
50
|
}
|
|
50
51
|
async delete(id) {
|
|
51
52
|
this.database.delete(this.collection, id.toString());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.store.js","sourceRoot":"","sources":["../../src/store/in-memory.store.ts"],"names":[],"mappings":";;;AAIA;;;GAGG;AACH,MAAa,aAAa;IAIN;IACA;IACA;IAHlB,YACkB,UAAkB,EAClB,QAA0B,EAC1B,UAA0B;QAF1B,eAAU,GAAV,UAAU,CAAQ;QAClB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,eAAU,GAAV,UAAU,CAAgB;IACxC,CAAC;IAEG,
|
|
1
|
+
{"version":3,"file":"in-memory.store.js","sourceRoot":"","sources":["../../src/store/in-memory.store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ddd-ts/store-inmemory",
|
|
3
|
-
"version": "0.0.3-
|
|
3
|
+
"version": "0.0.3-34",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "builder"
|
|
9
9
|
},
|
|
10
|
-
"
|
|
10
|
+
"dependencies": {
|
|
11
11
|
"@ddd-ts/model": "*",
|
|
12
12
|
"@ddd-ts/serialization": "*"
|
|
13
13
|
},
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { TransactionPerformer } from "@ddd-ts/model";
|
|
2
|
-
import { InMemoryDatabase } from "./store/in-memory.database";
|
|
3
|
-
import { InMemoryTransaction } from "./store/in-memory.transaction";
|
|
4
|
-
export declare class InMemoryTransactionPerformer extends TransactionPerformer<InMemoryTransaction> {
|
|
5
|
-
constructor(db: InMemoryDatabase);
|
|
6
|
-
}
|
|
7
|
-
export declare class FakeInMemoryTransactionPerformer extends TransactionPerformer<null> {
|
|
8
|
-
constructor();
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=in-memory.transaction-performer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.transaction-performer.d.ts","sourceRoot":"","sources":["../src/in-memory.transaction-performer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,qBAAa,4BAA6B,SAAQ,oBAAoB,CAAC,mBAAmB,CAAC;gBAC7E,EAAE,EAAE,gBAAgB;CAGjC;AAED,qBAAa,gCAAiC,SAAQ,oBAAoB,CAAC,IAAI,CAAC;;CAI/E"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FakeInMemoryTransactionPerformer = exports.InMemoryTransactionPerformer = void 0;
|
|
4
|
-
const model_1 = require("@ddd-ts/model");
|
|
5
|
-
class InMemoryTransactionPerformer extends model_1.TransactionPerformer {
|
|
6
|
-
constructor(db) {
|
|
7
|
-
super((effect) => db.transactionally(effect));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.InMemoryTransactionPerformer = InMemoryTransactionPerformer;
|
|
11
|
-
class FakeInMemoryTransactionPerformer extends model_1.TransactionPerformer {
|
|
12
|
-
constructor() {
|
|
13
|
-
super((effect) => effect(null));
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.FakeInMemoryTransactionPerformer = FakeInMemoryTransactionPerformer;
|
|
17
|
-
//# sourceMappingURL=in-memory.transaction-performer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.transaction-performer.js","sourceRoot":"","sources":["../src/in-memory.transaction-performer.ts"],"names":[],"mappings":";;;AAAA,yCAAqD;AAIrD,MAAa,4BAA6B,SAAQ,4BAAyC;IACzF,YAAY,EAAoB;QAC9B,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;CACF;AAJD,oEAIC;AAED,MAAa,gCAAiC,SAAQ,4BAA0B;IAC9E;QACE,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;CACF;AAJD,4EAIC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Storage } from "./in-memory.storage";
|
|
2
|
-
interface LoadOperation {
|
|
3
|
-
type: "load";
|
|
4
|
-
id: string;
|
|
5
|
-
collection: string;
|
|
6
|
-
}
|
|
7
|
-
export interface LoadAllOperation {
|
|
8
|
-
type: "loadMany";
|
|
9
|
-
collection: string;
|
|
10
|
-
ids: string[];
|
|
11
|
-
}
|
|
12
|
-
export interface WriteOperation {
|
|
13
|
-
type: "write";
|
|
14
|
-
collection: string;
|
|
15
|
-
id: string;
|
|
16
|
-
data: any;
|
|
17
|
-
}
|
|
18
|
-
export interface DeleteOperation {
|
|
19
|
-
type: "delete";
|
|
20
|
-
collection: string;
|
|
21
|
-
id: string;
|
|
22
|
-
}
|
|
23
|
-
export interface InMemoryTransaction {
|
|
24
|
-
storageAtInitialization: Storage;
|
|
25
|
-
operations: (LoadOperation | LoadAllOperation | WriteOperation | DeleteOperation)[];
|
|
26
|
-
}
|
|
27
|
-
export declare class WriteCollisionDetected extends Error {
|
|
28
|
-
constructor(id: string);
|
|
29
|
-
}
|
|
30
|
-
export {};
|
|
31
|
-
//# sourceMappingURL=in-memory.transaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.transaction.d.ts","sourceRoot":"","sources":["../../src/store/in-memory.transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,EAAE,OAAO,CAAC;IACjC,UAAU,EAAE,CACR,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,eAAe,CAClB,EAAE,CAAC;CACL;AAED,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,EAAE,EAAE,MAAM;CAGvB"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WriteCollisionDetected = void 0;
|
|
4
|
-
class WriteCollisionDetected extends Error {
|
|
5
|
-
constructor(id) {
|
|
6
|
-
super(`Write collision detected for key "${id}"`);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
exports.WriteCollisionDetected = WriteCollisionDetected;
|
|
10
|
-
//# sourceMappingURL=in-memory.transaction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.transaction.js","sourceRoot":"","sources":["../../src/store/in-memory.transaction.ts"],"names":[],"mappings":";;;AAqCA,MAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,EAAU;QACpB,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;CACF;AAJD,wDAIC"}
|