UNPKG

@shopware-ag/meteor-admin-sdk

Version:

The Meteor SDK for the Shopware Administration.

112 lines 4.46 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()); }); }; (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