@shopware-ag/meteor-admin-sdk
Version:
The Meteor SDK for the Shopware Administration.
112 lines • 4.46 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "../_internals/utils", "../channel"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.request = exports.status = void 0;
const utils_1 = require("../_internals/utils");
const channel_1 = require("../channel");
class Consent {
static fromStatusResponse(response) {
return new Consent(response.name, response.status, response.updatedAt, response.acceptedRevision, response.latestRevision);
}
constructor(name, status, updatedAt, acceptedRevision, lastRevision) {
Object.defineProperty(this, "name", {
enumerable: true,
configurable: true,
writable: true,
value: name
});
Object.defineProperty(this, "status", {
enumerable: true,
configurable: true,
writable: true,
value: status
});
Object.defineProperty(this, "updatedAt", {
enumerable: true,
configurable: true,
writable: true,
value: updatedAt
});
Object.defineProperty(this, "acceptedRevision", {
enumerable: true,
configurable: true,
writable: true,
value: acceptedRevision
});
Object.defineProperty(this, "lastRevision", {
enumerable: true,
configurable: true,
writable: true,
value: lastRevision
});
}
get isAccepted() {
return this.status === 'accepted';
}
get isStale() {
if (!this.isAccepted) {
return false;
}
return this.lastRevision !== null && this.lastRevision !== this.acceptedRevision;
}
}
const status = (messageData) => __awaiter(void 0, void 0, void 0, function* () {
const sender = (0, channel_1.createSender)('consentStatus');
const response = yield sender(messageData);
return Consent.fromStatusResponse(response);
});
exports.status = status;
const request = (messageOptions) => {
/*
* Fake Promise.withResolvers because it is not available in our TS version
*/
let resolve;
let reject;
const requestPromise = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
const requestId = (0, utils_1.generateUniqueId)();
const unhandle = (0, channel_1.createHandler)('consentRequestResponse')((message) => {
if (message.name !== messageOptions.consent) {
return Promise.resolve();
}
if (message.requestId !== requestId) {
return Promise.resolve();
}
unhandle();
resolve(Consent.fromStatusResponse(message.consent));
return Promise.resolve();
});
(0, channel_1.createSender)('consentRequest', { requestId })(messageOptions).catch((reason) => {
unhandle();
reject(reason);
});
return {
requestPromise,
abort: (reason) => {
unhandle();
reject(reason);
},
};
};
exports.request = request;
});
//# sourceMappingURL=index.js.map