payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
81 lines (80 loc) • 5.85 kB
JavaScript
;
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=