How to use @ddes/core - 6 common examples

To help you get started, we’ve selected a few @ddes/core examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github Skalar / ddes / tests / support / commitYielder.ts View on Github external
await new Promise(resolve => setTimeout(resolve, options.delay!))
  }
  for (const commit of commitPartials) {
    const {
      aggregateVersion = 1,
      aggregateType = defaults.aggregateType,
      aggregateKey = defaults.aggregateKey,
      timestamp,
      events,
    } = commit

    if (!aggregateType || !aggregateKey || !events) {
      throw new Error(`Missing commit data ${inspect(commit)}`)
    }

    yield new Commit({
      aggregateType,
      aggregateKey,
      aggregateVersion,
      timestamp,
      events: events.map((event: object) => ({version: 1, ...event})),
    })
  }

  if (options.neverEnding) {
    await new Promise(resolve => {
      //
    })
  }
}
export default commitYielder
github Skalar / ddes / packages / @ddes / aws-store / lib / AwsEventStore.ts View on Github external
public async commit(commit: Commit) {
    try {
      await this.dynamodb
        .putItem({
          TableName: this.tableName,
          Item: await utils.marshallCommit(commit),
          ConditionExpression: 'attribute_not_exists(v)',
          ReturnValues: 'NONE',
        })
        .promise()
    } catch (error) {
      if (error.code === 'ConditionalCheckFailedException') {
        throw new VersionConflictError(
          `${commit.aggregateType}[${
            commit.aggregateKey
          }] already has a version ${commit.aggregateVersion} commit`
        )
      }

      throw error
    }
  }
github Skalar / ddes / packages / @ddes / aws-store / lib / AwsSnapshotStore.ts View on Github external
if (!snapshotJSON) {
        return null
      }

      const {
        version,
        state,
        timestamp: timestampString,
        compatibilityChecksum,
      } = JSON.parse(snapshotJSON as string)

      return {
        version,
        state,
        timestamp: coreutils.toTimestamp(timestampString),
        compatibilityChecksum,
      }
    } catch (error) {
      if (error.code !== 'NoSuchKey') {
        throw error
      }

      return null
    }
  }
github Skalar / ddes / packages / @ddes / firestore / lib / FirestoreSnapshotStore.ts View on Github external
const data = snapshot.data()

      if (!data) {
        return null
      }

      const {
        version,
        state,
        timestamp: timestampString,
        compatibilityChecksum,
      } = JSON.parse((await zipper.unzip(data.data)) as string)
      return {
        version,
        state,
        timestamp: utils.toTimestamp(timestampString),
        compatibilityChecksum,
      }
    } catch (e) {
      return null
    }
  }
  public deleteSnapshots(): Promise {
github Skalar / ddes / packages / @ddes / store-transformations / lib / CommitTransformation.ts View on Github external
!outputCommits.find(outputCommit =>
              Commit.hasSameKey(outputCommit, commit)
            )
github Skalar / ddes / packages / @ddes / event-streaming / lib / EventStreamer.ts View on Github external
}
  ) {
    const {
      authenticateClient: verifyClient,
      port = 80,
      chronologicalGroups = ['default'],
      ...storePollerParams
    } = params

    this.wss = new WebSocketServer({verifyClient, port})
    this.wss.on('connection', this.onClientConnected.bind(this))
    this.chronologicalGroups = chronologicalGroups

    for (const chronologicalGroup of chronologicalGroups) {
      this.storePollers.push(
        new StorePoller({
          ...storePollerParams,
          processCommit: this.processCommit.bind(this),
        })
      )
    }

    this.debug = debug('DDES.EventStreamer.Server')
  }

@ddes/core

Event Sourcing in TypeScript

MIT
Latest version published 3 months ago

Package Health Score

68 / 100
Full package analysis