@shopware-ag/meteor-admin-sdk
Version:
The Meteor SDK for the Shopware Administration.
97 lines • 3.51 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());
});
};
import { generateUniqueId } from '../_internals/utils';
import { createHandler, createSender } from '../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;
}
}
export const status = (messageData) => __awaiter(void 0, void 0, void 0, function* () {
const sender = createSender('consentStatus');
const response = yield sender(messageData);
return Consent.fromStatusResponse(response);
});
export 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 = generateUniqueId();
const unhandle = 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();
});
createSender('consentRequest', { requestId })(messageOptions).catch((reason) => {
unhandle();
reject(reason);
});
return {
requestPromise,
abort: (reason) => {
unhandle();
reject(reason);
},
};
};
//# sourceMappingURL=index.js.map