UNPKG

@forestadmin/forest-cloud

Version:

Utility to bootstrap and publish forest admin cloud projects customization

71 lines 5.21 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const apollo_cache_inmemory_1 = require("apollo-cache-inmemory"); const apollo_client_1 = require("apollo-client"); const apollo_link_ws_1 = require("apollo-link-ws"); const graphql_tag_1 = __importDefault(require("graphql-tag")); const subscriptions_transport_ws_1 = require("subscriptions-transport-ws"); const ws_1 = __importDefault(require("ws")); const errors_1 = require("../errors"); const CUSTOMIZATION_FAILED_SUBSCRIPTION = (0, graphql_tag_1.default) ` subscription FullHostedCustomizationFailed($publishId: String!) { fullHostedCustomizationFailed(publishId: $publishId) { error } } `; const CUSTOMIZATION_DEPLOYED_SUBSCRIPTION = (0, graphql_tag_1.default) ` subscription FullHostedCustomizationDeployed($publishId: String!) { fullHostedCustomizationDeployed(publishId: $publishId) { timestamp } } `; class EventSubscriber { constructor(subscriptionUrl, bearerToken) { this.subscriptionClient = new subscriptions_transport_ws_1.SubscriptionClient(subscriptionUrl, { connectionParams: { authToken: bearerToken, }, }, ws_1.default); const wsLink = new apollo_link_ws_1.WebSocketLink(this.subscriptionClient); this.client = new apollo_client_1.ApolloClient({ link: wsLink, cache: new apollo_cache_inmemory_1.InMemoryCache(), }); } async subscribeToCodeCustomization(subscriptionId) { return new Promise((resolve, reject) => { this.failureSubscription = this.client .subscribe({ query: CUSTOMIZATION_FAILED_SUBSCRIPTION, variables: { publishId: subscriptionId }, }) .subscribe(({ data }) => resolve(data.fullHostedCustomizationFailed), error => reject(error)); this.deployedSubscription = this.client .subscribe({ query: CUSTOMIZATION_DEPLOYED_SUBSCRIPTION, variables: { publishId: subscriptionId }, }) .subscribe(({ data }) => resolve(data.fullHostedCustomizationDeployed), error => reject(error)); }).catch(error => { throw new errors_1.BusinessError(`Error while listening to code customization events: ${error.message}`); }); } destroy() { try { this.failureSubscription?.unsubscribe(); this.deployedSubscription?.unsubscribe(); this.client.stop(); this.subscriptionClient.close(); } catch (e) { /* do nothing */ } } } exports.default = EventSubscriber; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3Vic2NyaWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9ldmVudC1zdWJzY3JpYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUVBQTZFO0FBQzdFLGlEQUE2QztBQUM3QyxtREFBK0M7QUFDL0MsOERBQThCO0FBQzlCLDJFQUFnRTtBQUNoRSw0Q0FBMkI7QUFFM0Isc0NBQTBDO0FBRTFDLE1BQU0saUNBQWlDLEdBQUcsSUFBQSxxQkFBRyxFQUFBOzs7Ozs7Q0FNNUMsQ0FBQztBQUVGLE1BQU0sbUNBQW1DLEdBQUcsSUFBQSxxQkFBRyxFQUFBOzs7Ozs7Q0FNOUMsQ0FBQztBQUVGLE1BQXFCLGVBQWU7SUFPbEMsWUFBWSxlQUF1QixFQUFFLFdBQW1CO1FBQ3RELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLCtDQUFrQixDQUM5QyxlQUFlLEVBQ2Y7WUFDRSxnQkFBZ0IsRUFBRTtnQkFDaEIsU0FBUyxFQUFFLFdBQVc7YUFDdkI7U0FDRixFQUNELFlBQVMsQ0FDVixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSw4QkFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSw0QkFBWSxDQUFDO1lBQzdCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLElBQUkscUNBQWEsRUFBRTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLDRCQUE0QixDQUFDLGNBQXNCO1FBQ3ZELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNO2lCQUNuQyxTQUFTLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLGlDQUFpQztnQkFDeEMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTthQUN6QyxDQUFDO2lCQUNELFNBQVMsQ0FDUixDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsRUFDekQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQ3ZCLENBQUM7WUFFSixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE1BQU07aUJBQ3BDLFNBQVMsQ0FBQztnQkFDVCxLQUFLLEVBQUUsbUNBQW1DO2dCQUMxQyxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2FBQ3pDLENBQUM7aUJBQ0QsU0FBUyxDQUNSLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxFQUMzRCxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FDdkIsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE1BQU0sSUFBSSxzQkFBYSxDQUNyQix1REFBd0QsS0FBZSxDQUFDLE9BQU8sRUFBRSxDQUNsRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUk7WUFDRixJQUFJLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2pDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixnQkFBZ0I7U0FDakI7SUFDSCxDQUFDO0NBQ0Y7QUEvREQsa0NBK0RDIn0=