UNPKG

vercel-php

Version:
58 lines (57 loc) 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformToAwsResponse = exports.transformFromAwsRequest = exports.normalizeEvent = exports.isDev = exports.getPhpDir = exports.getUserDir = void 0; const path_1 = require("path"); const getUserDir = () => (0, path_1.join)(process.env.LAMBDA_TASK_ROOT || '/', 'user'); exports.getUserDir = getUserDir; const getPhpDir = () => (0, path_1.join)(process.env.LAMBDA_TASK_ROOT || '/', 'php'); exports.getPhpDir = getPhpDir; const isDev = () => process.env.NOW_PHP_DEV === '1'; exports.isDev = isDev; function normalizeEvent(event) { if (event.Action === 'Invoke') { const invokeEvent = JSON.parse(event.body); const { method, path, host, headers = {}, encoding, } = invokeEvent; let { body } = invokeEvent; if (body) { if (encoding === 'base64') { body = Buffer.from(body, encoding); } else if (encoding === undefined) { body = Buffer.from(body); } else { throw new Error(`Unsupported encoding: ${encoding}`); } } return { method, path, host, headers, body, }; } const { httpMethod: method, path, host, headers = {}, body, } = event; return { method, path, host, headers, body, }; } exports.normalizeEvent = normalizeEvent; async function transformFromAwsRequest({ method, path, host, headers, body, }) { if (!process.env.NOW_ENTRYPOINT) { console.error('Missing ENV NOW_ENTRYPOINT'); } const entrypoint = (0, path_1.join)((0, exports.getUserDir)(), process.env.NOW_ENTRYPOINT || 'index.php'); const uri = host + path; return { entrypoint, uri, path, host, method, headers, body }; } exports.transformFromAwsRequest = transformFromAwsRequest; function transformToAwsResponse({ statusCode, headers, body }) { return { statusCode, headers, body: body.toString('base64'), encoding: 'base64' }; } exports.transformToAwsResponse = transformToAwsResponse;