How to use the resolve-storage-base.ConcurrentError function in resolve-storage-base

To help you get started, we’ve selected a few resolve-storage-base 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 reimagined / resolve / packages / storage-adapters / resolve-storage-lite / src / storage.js View on Github external
db.findOne({ aggregateId, aggregateVersion }, (err, doc) => {
            if (doc !== null) {
              return reject(
                new ConcurrentError(
                  // eslint-disable-next-line max-len
                  `Can not save the event because aggregate '${aggregateId}' is not actual at the moment. Please retry later.`
                )
              )
            }
            db.insert(event, error => (error ? reject(error) : resolve()))
          })
        })
github reimagined / resolve / packages / adapters / storage-adapters / resolve-storage-lite / src / storage.js View on Github external
error => {
          if (!error) {
            resolve()
          } else if (error.errorType === 'uniqueViolated') {
            reject(
              new ConcurrentError(
                // eslint-disable-next-line max-len
                `Can not save the event because aggregate '${
                  event.aggregateId
                }' is not actual at the moment. Please retry later.`
              )
            )
          } else {
            reject(error)
          }
        }
      )
github reimagined / resolve / packages / adapters / storage-adapters / resolve-storage-postgresql-serverless / src / save-event.js View on Github external
${serializedEvent},
        ${byteLength}
      )`
      )

      break
    } catch (error) {
      const errorMessage =
        error != null && error.message != null ? error.message : ''

      if (errorMessage.indexOf('subquery used as an expression') > -1) {
        throw new Error('Event store is frozen')
      } else if (errorMessage.indexOf('duplicate key') < 0) {
        throw error
      } else if (errorMessage.indexOf('aggregateIdAndVersion') > -1) {
        throw new ConcurrentError(event.aggregateId)
      }

      await new Promise(resolve => setTimeout(resolve, fullJitter(retry)))
    }
  }
}

resolve-storage-base

A base for reSolve storage adapters

MIT
Latest version published 4 years ago

Package Health Score

54 / 100
Full package analysis