UNPKG

@shopware-ag/meteor-admin-sdk

Version:

The Meteor SDK for the Shopware Administration.

97 lines 3.51 kB
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