@vtex/api
Version:
VTEX I/O API client
43 lines (42 loc) • 2.38 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepareHandlerCtx = void 0;
const v4_1 = __importDefault(require("uuid/v4"));
const constants_1 = require("../../../../constants");
const UserLandTracer_1 = require("../../../../tracing/UserLandTracer");
const tenant_1 = require("../../../../utils/tenant");
const logger_1 = require("../../../logger");
const binding_1 = require("./../../../../utils/binding");
const getPlatform = (account) => {
return account.startsWith('gc-') ? 'gocommerce' : 'vtex';
};
const prepareHandlerCtx = (header, tracingContext) => {
var _a;
const partialContext = {
account: header[constants_1.ACCOUNT_HEADER],
authToken: header[constants_1.CREDENTIAL_HEADER],
binding: header[constants_1.BINDING_HEADER] ? (0, binding_1.parseBindingHeaderValue)(header[constants_1.BINDING_HEADER]) : undefined,
host: header[constants_1.FORWARDED_HOST_HEADER],
locale: header[constants_1.LOCALE_HEADER],
operationId: header[constants_1.OPERATION_ID_HEADER] || (0, v4_1.default)(),
platform: header[constants_1.PLATFORM_HEADER] || getPlatform(header[constants_1.ACCOUNT_HEADER]),
product: header[constants_1.PRODUCT_HEADER],
production: ((_a = header[constants_1.WORKSPACE_IS_PRODUCTION_HEADER]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true' || false,
region: constants_1.REGION,
requestId: header[constants_1.REQUEST_ID_HEADER],
segmentToken: header[constants_1.SEGMENT_HEADER],
sessionToken: header[constants_1.SESSION_HEADER],
tenant: header[constants_1.TENANT_HEADER] ? (0, tenant_1.parseTenantHeaderValue)(header[constants_1.TENANT_HEADER]) : undefined,
tracer: new UserLandTracer_1.UserLandTracer(tracingContext === null || tracingContext === void 0 ? void 0 : tracingContext.tracer, tracingContext === null || tracingContext === void 0 ? void 0 : tracingContext.currentSpan),
userAgent: process.env.VTEX_APP_ID || '',
workspace: header[constants_1.WORKSPACE_HEADER],
};
return {
...partialContext,
logger: new logger_1.Logger(partialContext),
};
};
exports.prepareHandlerCtx = prepareHandlerCtx;