UNPKG

@shopify/react-network

Version:

A collection of components that allow you to set common HTTP headers from within your React application.

41 lines (40 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var network_1 = require("@shopify/network"); var manager_1 = require("./manager"); exports.NetworkManager = manager_1.NetworkManager; exports.EFFECT_ID = manager_1.EFFECT_ID; var context_1 = require("./context"); exports.NetworkContext = context_1.NetworkContext; function applyToContext(ctx, manager) { var _a = manager.extract(), status = _a.status, csp = _a.csp, redirectUrl = _a.redirectUrl; var cspEntries = Object.entries(csp); if (cspEntries.length > 0) { var cspHeader = cspEntries .map(function (_a) { var _b = tslib_1.__read(_a, 2), key = _b[0], value = _b[1]; var printedValue; if (typeof value === 'boolean') { printedValue = ''; } else if (typeof value === 'string') { printedValue = value; } else { printedValue = value.join(' '); } return "" + key + (printedValue ? ' ' : '') + printedValue; }) .join('; '); ctx.set(network_1.Header.ContentSecurityPolicy, cspHeader); } if (redirectUrl) { ctx.redirect(redirectUrl); } if (status) { ctx.status = status; } return ctx; } exports.applyToContext = applyToContext;