@vtex/api
Version:
VTEX I/O API client
43 lines (42 loc) • 2.45 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.HeaderKeys.ACCOUNT],
authToken: header[constants_1.HeaderKeys.CREDENTIAL],
binding: header[constants_1.HeaderKeys.BINDING] ? (0, binding_1.parseBindingHeaderValue)(header[constants_1.HeaderKeys.BINDING]) : undefined,
host: header[constants_1.HeaderKeys.FORWARDED_HOST],
locale: header[constants_1.HeaderKeys.LOCALE],
operationId: header[constants_1.HeaderKeys.OPERATION_ID] || (0, v4_1.default)(),
platform: header[constants_1.HeaderKeys.PLATFORM] || getPlatform(header[constants_1.HeaderKeys.ACCOUNT]),
product: header[constants_1.HeaderKeys.PRODUCT],
production: ((_a = header[constants_1.HeaderKeys.WORKSPACE_IS_PRODUCTION]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true' || false,
region: constants_1.REGION,
requestId: header[constants_1.HeaderKeys.REQUEST_ID],
segmentToken: header[constants_1.HeaderKeys.SEGMENT],
sessionToken: header[constants_1.HeaderKeys.SESSION],
tenant: header[constants_1.HeaderKeys.TENANT] ? (0, tenant_1.parseTenantHeaderValue)(header[constants_1.HeaderKeys.TENANT]) : 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.HeaderKeys.WORKSPACE],
};
return {
...partialContext,
logger: new logger_1.Logger(partialContext),
};
};
exports.prepareHandlerCtx = prepareHandlerCtx;