ddd-es-node
Advanced tools
Comparing version 0.0.17 to 0.0.18
@@ -1,7 +0,3 @@ | ||
import { Clock } from './core/clock'; | ||
import { freezeUUID, unfreezeUUID } from './core/entity'; | ||
export { Entity, EntityRepository, EntityEvent, EventBus, EventBusSubscription, EventDispatcher, EventHandler, EventProcessor, EventStore, BaseEntityRepository, uuid } from './core/entity'; | ||
export { freezeUUID, unfreezeUUID }; | ||
export { Clock }; | ||
export { eventBus, entityRepository, eventStore } from './runtime/es'; | ||
export * from './core'; | ||
export { eventBus, entityRepository, eventStore } from './runtime'; | ||
export declare const testMode: (value: boolean) => void; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const clock_1 = require("./core/clock"); | ||
exports.Clock = clock_1.Clock; | ||
const entity_1 = require("./core/entity"); | ||
exports.freezeUUID = entity_1.freezeUUID; | ||
exports.unfreezeUUID = entity_1.unfreezeUUID; | ||
var entity_2 = require("./core/entity"); | ||
exports.Entity = entity_2.Entity; | ||
exports.EntityEvent = entity_2.EntityEvent; | ||
exports.EventProcessor = entity_2.EventProcessor; | ||
exports.BaseEntityRepository = entity_2.BaseEntityRepository; | ||
exports.uuid = entity_2.uuid; | ||
var es_1 = require("./runtime/es"); | ||
exports.eventBus = es_1.eventBus; | ||
exports.entityRepository = es_1.entityRepository; | ||
exports.eventStore = es_1.eventStore; | ||
const tslib_1 = require("tslib"); | ||
const core_1 = require("./core"); | ||
tslib_1.__exportStar(require("./core"), exports); | ||
var runtime_1 = require("./runtime"); | ||
exports.eventBus = runtime_1.eventBus; | ||
exports.entityRepository = runtime_1.entityRepository; | ||
exports.eventStore = runtime_1.eventStore; | ||
exports.testMode = (value) => { | ||
if (value === undefined ? true : value) { | ||
clock_1.Clock.freeze(); | ||
entity_1.freezeUUID(); | ||
core_1.Clock.freeze(); | ||
core_1.EventUUID.freezeUUID(); | ||
} | ||
else { | ||
clock_1.Clock.unfreeze(); | ||
entity_1.unfreezeUUID(); | ||
core_1.Clock.unfreeze(); | ||
core_1.EventUUID.unfreezeUUID(); | ||
} | ||
}; | ||
//# sourceMappingURL=index.js.map |
@@ -1,11 +0,2 @@ | ||
import { EntityRepository, EntityEvent, EventStore, EventBus, EventBusSubscription } from '../core/entity'; | ||
export declare class LocalEventBus implements EventBus { | ||
private eventStore; | ||
private emitter; | ||
constructor(eventStore: EventStore); | ||
subscribe(listener: (event: EntityEvent, isReplaying?: boolean) => void, options?: { | ||
[key: string]: string | boolean; | ||
}): EventBusSubscription; | ||
emit(event: EntityEvent): void; | ||
} | ||
import { EntityRepository, EntityEvent, EventStore, EventBus } from '../core'; | ||
export declare class EventStoreLibEventStore implements EventStore { | ||
@@ -12,0 +3,0 @@ replay(id: string, handler: (event: EntityEvent, isReplaying?: boolean) => void, done?: () => void): void; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const entity_1 = require("../core/entity"); | ||
const core_1 = require("../core"); | ||
const local_event_bus_1 = require("./local-event-bus"); | ||
const eventstore = require("eventstore"); | ||
const events = require("events"); | ||
const type_deserializer_1 = require("./type_deserializer"); | ||
class LocalEventBusSubscription { | ||
constructor(emitter, listener) { | ||
this.emitter = emitter; | ||
this.listener = listener; | ||
} | ||
unsubscribe() { | ||
this.emitter.removeListener('event', this.listener); | ||
} | ||
} | ||
class LocalEventBus { | ||
constructor(eventStore) { | ||
this.emitter = new events.EventEmitter(); | ||
this.eventStore = eventStore; | ||
} | ||
subscribe(listener, options) { | ||
if (options && options['replay']) { | ||
this.eventStore.replayAll(listener); | ||
} | ||
const emitterListener = (event) => { | ||
listener(event, false); | ||
}; | ||
this.emitter.on('event', emitterListener); | ||
return new LocalEventBusSubscription(this.emitter, emitterListener); | ||
} | ||
emit(event) { | ||
this.emitter.emit('event', event); | ||
} | ||
} | ||
exports.LocalEventBus = LocalEventBus; | ||
const type_deserializer_1 = require("./type-deserializer"); | ||
const USE_DYNAMO_DB = !(/false/i.test((process.env.USE_DYNAMO_DB || 'false'))); | ||
@@ -138,3 +109,3 @@ let esConfig = {}; | ||
exports.eventStore = new EventStoreLibEventStore(); | ||
exports.eventBus = new LocalEventBus(exports.eventStore); | ||
exports.eventBus = new local_event_bus_1.LocalEventBus(exports.eventStore); | ||
function eventDispatcher(streamId, events) { | ||
@@ -174,3 +145,3 @@ return new Promise((resolve) => { | ||
} | ||
exports.entityRepository = new entity_1.BaseEntityRepository(eventDispatcher, exports.eventStore); | ||
exports.entityRepository = new core_1.BaseEntityRepository(eventDispatcher, exports.eventStore); | ||
//# sourceMappingURL=es.js.map |
@@ -5,18 +5,17 @@ module.exports = { | ||
transform: { | ||
'^.+\\.js$': '<rootDir>/node_modules/babel-jest', | ||
'.(ts|tsx)': '<rootDir>/preprocessor.js' | ||
"^.+\\.js$": '<rootDir>/node_modules/babel-jest', | ||
"^.+\\.ts$": '<rootDir>/node_modules/ts-jest' | ||
}, | ||
moduleFileExtensions: [ | ||
'ts', | ||
'tsx', | ||
'js', | ||
'jsx', | ||
'node' | ||
], | ||
testRegex: '/spec/.*\\.(ts|js)x?$', | ||
testRegex: '.*\\.test\\.js$', | ||
mapCoverage: true, | ||
coverageDirectory: 'coverage', | ||
collectCoverageFrom: [ | ||
'src/**/*.{ts,tsx,js,jsx}', | ||
'src/**/*.{ts,js}', | ||
'!src/**/*.d.ts' | ||
] | ||
}; |
{ | ||
"name": "ddd-es-node", | ||
"version": "0.0.17", | ||
"version": "0.0.18", | ||
"description": "ddd-es-node", | ||
@@ -16,3 +16,3 @@ "main": "./dist/src/index.js", | ||
"lint": "tslint -t stylish --type-check --exclude '**/*.js' --project 'tsconfig.json'", | ||
"pretest": "npm run lint", | ||
"pretest": "npm run lint && eslint .", | ||
"test": "npm run test-only", | ||
@@ -30,3 +30,2 @@ "test-only": "jest --coverage", | ||
"devDependencies": { | ||
"@types/jest": "~20.0.4", | ||
"@types/node": "^8.0.17", | ||
@@ -39,4 +38,5 @@ "@types/uuid": "^3.4.0", | ||
"eslint-plugin-jest": "^20.0.3", | ||
"jest": "~20.0.0", | ||
"jest": "^20.0.4", | ||
"rimraf": "~2.6.1", | ||
"ts-jest": "^22.4.6", | ||
"tslint": "~5.5.0", | ||
@@ -43,0 +43,0 @@ "tslint-microsoft-contrib": "~5.0.1", |
@@ -1,38 +0,10 @@ | ||
import { | ||
Clock | ||
} from './core/clock'; | ||
import { Clock, EventUUID } from './core'; | ||
import { | ||
freezeUUID, | ||
unfreezeUUID | ||
} from './core/entity'; | ||
export * from './core'; | ||
export { | ||
Entity, | ||
EntityRepository, | ||
EntityEvent, | ||
EventBus, | ||
EventBusSubscription, | ||
EventDispatcher, | ||
EventHandler, | ||
EventProcessor, | ||
EventStore, | ||
BaseEntityRepository, | ||
uuid | ||
} from './core/entity'; | ||
export { | ||
freezeUUID, | ||
unfreezeUUID | ||
}; | ||
export { | ||
Clock | ||
}; | ||
export { | ||
eventBus, | ||
entityRepository, | ||
eventStore | ||
} from './runtime/es'; | ||
} from './runtime'; | ||
@@ -42,7 +14,7 @@ export const testMode = (value : boolean) => { | ||
Clock.freeze(); | ||
freezeUUID(); | ||
EventUUID.freezeUUID(); | ||
} else { | ||
Clock.unfreeze(); | ||
unfreezeUUID(); | ||
EventUUID.unfreezeUUID(); | ||
} | ||
}; |
@@ -6,8 +6,7 @@ import { | ||
EventStore, | ||
EventBus, | ||
EventBusSubscription | ||
} from '../core/entity'; | ||
EventBus | ||
} from '../core'; | ||
import { LocalEventBus } from './local-event-bus'; | ||
import * as eventstore from 'eventstore'; | ||
import * as events from 'events'; | ||
import { resolveInstanceFromJson } from './type_deserializer'; | ||
import { resolveInstanceFromJson } from './type-deserializer'; | ||
@@ -20,3 +19,3 @@ module EventStoreLib { | ||
}; | ||
export type EventStoreTypeFactory = (options?: Object) => EventStoreType; | ||
export type EventStoreTypeFactory = (options? : Object) => EventStoreType; | ||
export type Stream = { addEvent : Function, addEvents : Function, commit : Function, events : Event[], eventsToDispatch : Event[] }; | ||
@@ -27,50 +26,12 @@ export type EventPayload = { streamId : string, name : string }; | ||
class LocalEventBusSubscription implements EventBusSubscription { | ||
private emitter : events.EventEmitter; | ||
private listener : (event : EntityEvent) => void; | ||
constructor(emitter : events.EventEmitter, listener : (event : EntityEvent) => void) { | ||
this.emitter = emitter; | ||
this.listener = listener; | ||
} | ||
public unsubscribe() : void { | ||
this.emitter.removeListener('event', this.listener); | ||
} | ||
} | ||
export class LocalEventBus implements EventBus { | ||
private eventStore : EventStore; | ||
private emitter : events.EventEmitter = new events.EventEmitter(); | ||
constructor(eventStore : EventStore) { | ||
this.eventStore = eventStore; | ||
} | ||
public subscribe(listener : (event : EntityEvent, isReplaying? : boolean) => void, | ||
options? : { [key:string]: string | boolean }) : EventBusSubscription { | ||
if(options && options['replay']) { | ||
this.eventStore.replayAll(listener); | ||
} | ||
const emitterListener : (event : EntityEvent, isReplaying? : boolean) => void = (event : EntityEvent) : void => { | ||
listener(event, false); | ||
}; | ||
this.emitter.on('event', emitterListener); | ||
return new LocalEventBusSubscription(this.emitter, emitterListener); | ||
} | ||
public emit(event : EntityEvent) : void { | ||
this.emitter.emit('event', event); | ||
} | ||
} | ||
const USE_DYNAMO_DB : boolean = !(/false/i.test((process.env.USE_DYNAMO_DB || 'false'))); | ||
let esConfig : Object = {}; | ||
if(USE_DYNAMO_DB) { | ||
if (USE_DYNAMO_DB) { | ||
esConfig = { | ||
type:'dynamodb', | ||
type: 'dynamodb', | ||
useUndispatchedEventsTable: false | ||
}; | ||
} | ||
if(process.env.RAW_ES_CONFIG) { | ||
if (process.env.RAW_ES_CONFIG) { | ||
esConfig = <Object> JSON.parse(`${process.env.RAW_ES_CONFIG}`); | ||
@@ -88,3 +49,3 @@ } | ||
es.init((err : Error) => { | ||
if(err) { | ||
if (err) { | ||
getEsRej(err); | ||
@@ -97,6 +58,6 @@ } else { | ||
const hydrateEventStream = (events : EventStoreLib.Event[]) => { | ||
return Promise.all((events||[]).map((event : EventStoreLib.Event) => { | ||
return Promise.all((events || []).map((event : EventStoreLib.Event) => { | ||
return new Promise((resolve : Function) => { | ||
event.payload.streamId = event.streamId || event.aggregateId; | ||
if(esConfig.hasOwnProperty('type')) { | ||
if (esConfig.hasOwnProperty('type')) { | ||
// ensure types are restored after deserialization | ||
@@ -158,3 +119,3 @@ (<Promise<EventStoreLib.EventPayload>> resolveInstanceFromJson(event.payload)) | ||
}); | ||
if(done) { | ||
if (done) { | ||
done(); | ||
@@ -187,3 +148,3 @@ } | ||
stream.commit((err : Error, stream : EventStoreLib.Stream) => { | ||
if(err) { | ||
if (err) { | ||
console.log(err); | ||
@@ -190,0 +151,0 @@ resolve(); |
@@ -6,4 +6,3 @@ { | ||
"moduleResolution": "node", | ||
"allowSyntheticDefaultImports": true, | ||
"jsx": "preserve", | ||
"allowSyntheticDefaultImports": false, | ||
"allowJs": false, | ||
@@ -10,0 +9,0 @@ "importHelpers": true, |
@@ -7,8 +7,4 @@ { | ||
"outDir": "dist", | ||
"removeComments": true, | ||
"jsx": "react" | ||
}, | ||
"include": [ | ||
"src/**/*" | ||
] | ||
"removeComments": true | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
94803
88
1919
8
1