UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

81 lines (80 loc) 5.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "getExternalFile", { enumerable: true, get: function() { return getExternalFile; } }); const _errors = require("../errors"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const getExternalFile = async ({ data, req })=>{ const { filename, url } = data; if (typeof url === 'string') { let fileURL = url; if (!url.startsWith('http')) { const baseUrl = req.get('origin') || `${req.protocol}://${req.get('host')}`; fileURL = `${baseUrl}${url}`; } const { default: fetch } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("node-fetch"))); const res = await fetch(fileURL, { credentials: 'include', headers: { ...req.headers }, method: 'GET' }); if (!res.ok) throw new _errors.APIError(`Failed to fetch file from ${fileURL}`, res.status); const data = await res.buffer(); return { name: filename, data, mimetype: res.headers.get('content-type') || undefined, size: Number(res.headers.get('content-length')) || 0 }; } throw new _errors.APIError('Invalid file url', 400); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEV4dGVybmFsRmlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJ1xuXG5pbXBvcnQgdHlwZSB7IEZpbGUsIEZpbGVEYXRhIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgQVBJRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnXG5cbnR5cGUgQXJncyA9IHtcbiAgZGF0YTogRmlsZURhdGFcbiAgcmVxOiBSZXF1ZXN0XG59XG5leHBvcnQgY29uc3QgZ2V0RXh0ZXJuYWxGaWxlID0gYXN5bmMgKHsgZGF0YSwgcmVxIH06IEFyZ3MpOiBQcm9taXNlPEZpbGU+ID0+IHtcbiAgY29uc3QgeyBmaWxlbmFtZSwgdXJsIH0gPSBkYXRhXG5cbiAgaWYgKHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnKSB7XG4gICAgbGV0IGZpbGVVUkwgPSB1cmxcbiAgICBpZiAoIXVybC5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgIGNvbnN0IGJhc2VVcmwgPSByZXEuZ2V0KCdvcmlnaW4nKSB8fCBgJHtyZXEucHJvdG9jb2x9Oi8vJHtyZXEuZ2V0KCdob3N0Jyl9YFxuICAgICAgZmlsZVVSTCA9IGAke2Jhc2VVcmx9JHt1cmx9YFxuICAgIH1cblxuICAgIGNvbnN0IHsgZGVmYXVsdDogZmV0Y2ggfSA9IChhd2FpdCBpbXBvcnQoJ25vZGUtZmV0Y2gnKSkgYXMgYW55XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChmaWxlVVJMLCB7XG4gICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi5yZXEuaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pXG5cbiAgICBpZiAoIXJlcy5vaykgdGhyb3cgbmV3IEFQSUVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggZmlsZSBmcm9tICR7ZmlsZVVSTH1gLCByZXMuc3RhdHVzKVxuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5idWZmZXIoKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGZpbGVuYW1lLFxuICAgICAgZGF0YSxcbiAgICAgIG1pbWV0eXBlOiByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpIHx8IHVuZGVmaW5lZCxcbiAgICAgIHNpemU6IE51bWJlcihyZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtbGVuZ3RoJykpIHx8IDAsXG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEFQSUVycm9yKCdJbnZhbGlkIGZpbGUgdXJsJywgNDAwKVxufVxuIl0sIm5hbWVzIjpbImdldEV4dGVybmFsRmlsZSIsImRhdGEiLCJyZXEiLCJmaWxlbmFtZSIsInVybCIsImZpbGVVUkwiLCJzdGFydHNXaXRoIiwiYmFzZVVybCIsImdldCIsInByb3RvY29sIiwiZGVmYXVsdCIsImZldGNoIiwicmVzIiwiY3JlZGVudGlhbHMiLCJoZWFkZXJzIiwibWV0aG9kIiwib2siLCJBUElFcnJvciIsInN0YXR1cyIsImJ1ZmZlciIsIm5hbWUiLCJtaW1ldHlwZSIsInVuZGVmaW5lZCIsInNpemUiLCJOdW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7K0JBVWFBOzs7ZUFBQUE7Ozt3QkFOWTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWxCLE1BQU1BLGtCQUFrQixPQUFPLEVBQUVDLElBQUksRUFBRUMsR0FBRyxFQUFRO0lBQ3ZELE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxHQUFHLEVBQUUsR0FBR0g7SUFFMUIsSUFBSSxPQUFPRyxRQUFRLFVBQVU7UUFDM0IsSUFBSUMsVUFBVUQ7UUFDZCxJQUFJLENBQUNBLElBQUlFLFVBQVUsQ0FBQyxTQUFTO1lBQzNCLE1BQU1DLFVBQVVMLElBQUlNLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRU4sSUFBSU8sUUFBUSxDQUFDLEdBQUcsRUFBRVAsSUFBSU0sR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUMzRUgsVUFBVSxDQUFDLEVBQUVFLFFBQVEsRUFBRUgsSUFBSSxDQUFDO1FBQzlCO1FBRUEsTUFBTSxFQUFFTSxTQUFTQyxLQUFLLEVBQUUsR0FBSSxNQUFNLG1FQUFBLFFBQU87UUFFekMsTUFBTUMsTUFBTSxNQUFNRCxNQUFNTixTQUFTO1lBQy9CUSxhQUFhO1lBQ2JDLFNBQVM7Z0JBQ1AsR0FBR1osSUFBSVksT0FBTztZQUNoQjtZQUNBQyxRQUFRO1FBQ1Y7UUFFQSxJQUFJLENBQUNILElBQUlJLEVBQUUsRUFBRSxNQUFNLElBQUlDLGdCQUFRLENBQUMsQ0FBQywwQkFBMEIsRUFBRVosUUFBUSxDQUFDLEVBQUVPLElBQUlNLE1BQU07UUFFbEYsTUFBTWpCLE9BQU8sTUFBTVcsSUFBSU8sTUFBTTtRQUU3QixPQUFPO1lBQ0xDLE1BQU1qQjtZQUNORjtZQUNBb0IsVUFBVVQsSUFBSUUsT0FBTyxDQUFDTixHQUFHLENBQUMsbUJBQW1CYztZQUM3Q0MsTUFBTUMsT0FBT1osSUFBSUUsT0FBTyxDQUFDTixHQUFHLENBQUMsc0JBQXNCO1FBQ3JEO0lBQ0Y7SUFFQSxNQUFNLElBQUlTLGdCQUFRLENBQUMsb0JBQW9CO0FBQ3pDIn0=