npm package diff
Package: @forge/cache
Versions: 1.0.3-next.0 - 1.0.3-next.0-experimental-ab129b0
File: package/out/kvs/transaction-api.js
Index: package/out/kvs/transaction-api.js
===================================================================
--- package/out/kvs/transaction-api.js
+++ package/out/kvs/transaction-api.js
@@ -0,0 +1,66 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.TransactionBuilderImpl = void 0;
+const transaction_request_builder_1 = require("./utils/transaction-request-builder");
+class TransactionBuilderImpl {
+ storageApi;
+ sets;
+ deletes;
+ checks;
+ constructor(storageApi, sets = [], deletes = [], checks = []) {
+ this.storageApi = storageApi;
+ this.sets = sets;
+ this.deletes = deletes;
+ this.checks = checks;
+ }
+ set(key, value, entity) {
+ const transactSet = {
+ key,
+ value
+ };
+ if (entity) {
+ transactSet.entity = {
+ entityName: entity.entityName,
+ conditions: entity.conditions
+ };
+ }
+ this.sets.push(transactSet);
+ return this;
+ }
+ delete(key, entity) {
+ const transactDelete = {
+ key
+ };
+ if (entity) {
+ transactDelete.entity = {
+ entityName: entity.entityName,
+ conditions: entity.conditions
+ };
+ }
+ this.deletes.push(transactDelete);
+ return this;
+ }
+ check(key, { entityName, conditions }) {
+ const transactCheck = {
+ key,
+ entity: {
+ entityName,
+ conditions
+ }
+ };
+ this.checks.push(transactCheck);
+ return this;
+ }
+ async execute() {
+ const undefineEmptyArray = (arr) => {
+ return arr.length === 0 ? undefined : arr;
+ };
+ const request = {
+ set: undefineEmptyArray(this.sets.map(transaction_request_builder_1.buildRequestSet)),
+ delete: undefineEmptyArray(this.deletes.map(transaction_request_builder_1.buildRequestDeletes)),
+ check: undefineEmptyArray(this.checks.map(transaction_request_builder_1.buildRequestChecks))
+ };
+ await this.storageApi.transact(request);
+ }
+}
+exports.TransactionBuilderImpl = TransactionBuilderImpl;