transactionComplete()

in src/TransactionLockHelper.ts [141:171]


  transactionComplete(token: TransactionToken) {
    const pendingTransIndex = findIndex(
      this._pendingTransactions,
      (trans) => trans.token === token
    );
    if (pendingTransIndex !== -1) {
      const pendingTrans = this._pendingTransactions[pendingTransIndex];
      if (pendingTrans.completionDefer) {
        pendingTrans.hadSuccess = true;

        const toResolve = pendingTrans.completionDefer;
        this._pendingTransactions.splice(pendingTransIndex, 1);
        pendingTrans.completionDefer = undefined;
        toResolve.resolve(void 0);
      } else {
        throw new Error(
          "Completing a transaction that has already been completed. Stores: " +
            token.storeNames.join(",") +
            ", HadSuccess: " +
            pendingTrans.hadSuccess
        );
      }
    } else {
      throw new Error(
        "Completing a transaction that is no longer tracked. Stores: " +
          token.storeNames.join(",")
      );
    }

    this._cleanTransaction(token);
  }