@eventualize/core 2.0.0 → 3.0.0
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/EvDbStream.test.js +10 -16
- package/dist/EvDbStream.test.js.map +1 -1
- package/dist/adapters/IEvDbStorageAdapter.d.ts +7 -0
- package/dist/adapters/IEvDbStorageAdapter.js +2 -0
- package/dist/adapters/IEvDbStorageAdapter.js.map +1 -0
- package/dist/codegen/generateStreamFactory.d.ts +18 -0
- package/dist/codegen/generateStreamFactory.js +97 -0
- package/dist/codegen/generateStreamFactory.js.map +1 -0
- package/dist/factories/EvDbStreamFactory.d.ts +51 -0
- package/dist/factories/EvDbStreamFactory.js +103 -0
- package/dist/factories/EvDbStreamFactory.js.map +1 -0
- package/dist/factories/EvDbStreamFactoryTypes.d.ts +20 -0
- package/dist/factories/EvDbStreamFactoryTypes.js +2 -0
- package/dist/factories/EvDbStreamFactoryTypes.js.map +1 -0
- package/dist/factories/EvDbViewFactory.d.ts +24 -0
- package/dist/{EvDbViewFactory.js → factories/EvDbViewFactory.js} +4 -4
- package/dist/factories/EvDbViewFactory.js.map +1 -0
- package/dist/factories/EvDbViewFactoryTypes.d.ts +24 -0
- package/dist/factories/EvDbViewFactoryTypes.js +2 -0
- package/dist/factories/EvDbViewFactoryTypes.js.map +1 -0
- package/dist/factories/IEvDbStreamFactory.d.ts +13 -0
- package/dist/factories/IEvDbStreamFactory.js +2 -0
- package/dist/factories/IEvDbStreamFactory.js.map +1 -0
- package/dist/factories/StreamFactoryBuilder.d.ts +35 -0
- package/dist/factories/StreamFactoryBuilder.js +67 -0
- package/dist/factories/StreamFactoryBuilder.js.map +1 -0
- package/dist/store/EvDbStream.d.ts +150 -0
- package/dist/store/EvDbStream.js +192 -0
- package/dist/store/EvDbStream.js.map +1 -0
- package/dist/stream/IEvDbStream.d.ts +0 -0
- package/dist/stream/IEvDbStream.js +2 -0
- package/dist/stream/IEvDbStream.js.map +1 -0
- package/dist/view/EvDbView.d.ts +19 -0
- package/dist/view/EvDbView.js +26 -0
- package/dist/view/EvDbView.js.map +1 -0
- package/dist/view/EvDbViewRaw.d.ts +22 -0
- package/dist/view/EvDbViewRaw.js +41 -0
- package/dist/view/EvDbViewRaw.js.map +1 -0
- package/package.json +2 -2
- package/dist/EvDbEventStore.d.ts +0 -123
- package/dist/EvDbEventStore.js +0 -182
- package/dist/EvDbEventStore.js.map +0 -1
- package/dist/EvDbStream.d.ts +0 -49
- package/dist/EvDbStream.js +0 -115
- package/dist/EvDbStream.js.map +0 -1
- package/dist/EvDbStreamFactory.d.ts +0 -97
- package/dist/EvDbStreamFactory.js +0 -155
- package/dist/EvDbStreamFactory.js.map +0 -1
- package/dist/EvDbView.d.ts +0 -34
- package/dist/EvDbView.js +0 -64
- package/dist/EvDbView.js.map +0 -1
- package/dist/EvDbViewFactory.d.ts +0 -45
- package/dist/EvDbViewFactory.js.map +0 -1
package/dist/EvDbView.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { EvDbStoredSnapshotData } from "@eventualize/types/EvDbStoredSnapshotData";
|
|
2
|
-
export class EvDbViewRaw {
|
|
3
|
-
constructor(_storageAdapter, address, snapshot) {
|
|
4
|
-
this._storageAdapter = _storageAdapter;
|
|
5
|
-
this.address = address;
|
|
6
|
-
const storeOffset = snapshot.offset ?? 0;
|
|
7
|
-
this._memoryOffset = storeOffset;
|
|
8
|
-
this._storeOffset = storeOffset;
|
|
9
|
-
this._storedAt = snapshot.storedAt ?? new Date();
|
|
10
|
-
}
|
|
11
|
-
get storedAt() { return this._storedAt; }
|
|
12
|
-
;
|
|
13
|
-
get storeOffset() { return this._storeOffset; }
|
|
14
|
-
;
|
|
15
|
-
get memoryOffset() { return this._memoryOffset; }
|
|
16
|
-
;
|
|
17
|
-
shouldStoreSnapshot(offsetGapFromLastSave, durationSinceLastSaveMs) {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
applyEvent(e) {
|
|
21
|
-
const offset = e.streamCursor.offset;
|
|
22
|
-
if (this.memoryOffset >= offset) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
this.onApplyEvent(e);
|
|
26
|
-
this._memoryOffset = offset;
|
|
27
|
-
}
|
|
28
|
-
async store() {
|
|
29
|
-
const eventsSinceLatestSnapshot = this.memoryOffset - this.storeOffset;
|
|
30
|
-
const secondsSinceLatestSnapshot = new Date().getTime() - this.storedAt.getTime();
|
|
31
|
-
if (!this.shouldStoreSnapshot(eventsSinceLatestSnapshot, secondsSinceLatestSnapshot)) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const snapshotData = this.getSnapshotData();
|
|
35
|
-
await this._storageAdapter.storeSnapshotAsync(snapshotData);
|
|
36
|
-
this._storeOffset = this._memoryOffset;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
export class EvDbView extends EvDbViewRaw {
|
|
40
|
-
getDefaultState() {
|
|
41
|
-
return this.defaultState;
|
|
42
|
-
}
|
|
43
|
-
;
|
|
44
|
-
get state() { return this._state; }
|
|
45
|
-
// public getState(): TState {
|
|
46
|
-
// return this._state;
|
|
47
|
-
// }
|
|
48
|
-
constructor(address, storageAdapter, snapshot, defaultState) {
|
|
49
|
-
super(storageAdapter, address, snapshot);
|
|
50
|
-
this.defaultState = defaultState;
|
|
51
|
-
this._state = this.getDefaultState();
|
|
52
|
-
if (snapshot.offset === 0)
|
|
53
|
-
this._state = this.getDefaultState();
|
|
54
|
-
else
|
|
55
|
-
this._state = snapshot.state;
|
|
56
|
-
}
|
|
57
|
-
getSnapshotData() {
|
|
58
|
-
return EvDbStoredSnapshotData.fromAddress(this.address, this.memoryOffset, this.storeOffset, this._state);
|
|
59
|
-
}
|
|
60
|
-
onApplyEvent(e) {
|
|
61
|
-
this._state = this.handleOnApply(this._state, e.payload, e);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=EvDbView.js.map
|
package/dist/EvDbView.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EvDbView.js","sourceRoot":"","sources":["../src/EvDbView.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { EvDbView } from './EvDbView.js';
|
|
2
|
-
import IEvDbEventPayload from "@eventualize/types/IEvDbEventPayload";
|
|
3
|
-
import IEvDbEventMetadata from '@eventualize/types/IEvDbEventMetadata';
|
|
4
|
-
import IEvDbStorageSnapshotAdapter from '@eventualize/types/IEvDbStorageSnapshotAdapter';
|
|
5
|
-
/**
|
|
6
|
-
* Handler function type for applying an event to state
|
|
7
|
-
*/
|
|
8
|
-
export type EvDbViewEventHandler<TState, TEvent extends IEvDbEventPayload> = (oldState: TState, event: TEvent, metadata: IEvDbEventMetadata) => TState;
|
|
9
|
-
/**
|
|
10
|
-
* Map of event handlers - one handler per event type in the union
|
|
11
|
-
* Key is the payloadType string, value is the handler function
|
|
12
|
-
*/
|
|
13
|
-
export type EvDbStreamEventHandlersMap<TState, TEvents extends IEvDbEventPayload> = {
|
|
14
|
-
[K in TEvents['payloadType']]: EvDbViewEventHandler<TState, Extract<TEvents, {
|
|
15
|
-
payloadType: K;
|
|
16
|
-
}>>;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Configuration for creating a view
|
|
20
|
-
*/
|
|
21
|
-
export interface ViewConfig<TState, TEvents extends IEvDbEventPayload> {
|
|
22
|
-
viewName: string;
|
|
23
|
-
streamType: string;
|
|
24
|
-
defaultState: TState;
|
|
25
|
-
handlers: Partial<EvDbStreamEventHandlersMap<TState, TEvents>>;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* View Factory - creates view instances with the handlers map
|
|
29
|
-
*/
|
|
30
|
-
export declare class ViewFactory<TState, TEvents extends IEvDbEventPayload> {
|
|
31
|
-
private readonly config;
|
|
32
|
-
constructor(config: ViewConfig<TState, TEvents>);
|
|
33
|
-
/**
|
|
34
|
-
* Creates a view instance
|
|
35
|
-
*/
|
|
36
|
-
create(streamId: string, storageAdapter: IEvDbStorageSnapshotAdapter): EvDbView<TState>;
|
|
37
|
-
/**
|
|
38
|
-
* Get a view instance from event store
|
|
39
|
-
*/
|
|
40
|
-
get(streamId: string, storageAdapter: IEvDbStorageSnapshotAdapter): Promise<EvDbView<TState>>;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Factory function to create a ViewFactory
|
|
44
|
-
*/
|
|
45
|
-
export declare function createViewFactory<TState, TEvents extends IEvDbEventPayload>(config: ViewConfig<TState, TEvents>): ViewFactory<TState, TEvents>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EvDbViewFactory.js","sourceRoot":"","sources":["../src/EvDbViewFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AA+BvF;;GAEG;AACH,MAAM,WAAuD,SAAQ,QAAgB;IAEjF,YACI,WAA4B,EAC5B,cAA2C,EAC3C,QAA0C,EAC1B,MAAmC;QAEnD,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAFlD,WAAM,GAAN,MAAM,CAA6B;QAGnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAGD;;OAEG;IACI,aAAa,CAAC,QAAgB,EAAE,KAAc,EAAE,QAA4B;QAC/E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAgD,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAElD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,yEAAyE;YACzE,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAY,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,YAA6B,MAAmC;QAAnC,WAAM,GAAN,MAAM,CAA6B;IAAI,CAAC;IAErE;;OAEG;IACI,MAAM,CACT,QAAgB,EAChB,cAA2C;QAE3C,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE7E,OAAO,IAAI,WAAW,CAClB,WAAW,EACX,cAAc,EACd,wBAAwB,CAAC,aAAa,EAAU,EAChD,IAAI,CAAC,MAAM,CACd,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,GAAG,CACZ,QAAgB,EAChB,cAA2C;QAE3C,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE7E,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAEnE,OAAO,IAAI,WAAW,CAClB,WAAW,EACX,cAAc,EACd,QAAQ,EACR,IAAI,CAAC,MAAM,CACd,CAAC;IACN,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC7B,MAAmC;IAEnC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
|