payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
41 lines (40 loc) • 3.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _filetype = require("file-type");
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const mimeTypeEstimate = {
svg: 'image/svg+xml'
};
const getFileByPath = async (filePath)=>{
if (typeof filePath === 'string') {
const data = _fs.default.readFileSync(filePath);
const mimetype = (0, _filetype.fromFile)(filePath);
const { size } = _fs.default.statSync(filePath);
const name = _path.default.basename(filePath);
const ext = _path.default.extname(filePath).slice(1);
const mime = (await mimetype)?.mime || mimeTypeEstimate[ext];
return {
name,
data,
mimetype: mime,
size
};
}
return undefined;
};
const _default = getFileByPath;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEZpbGVCeVBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbUZpbGUgfSBmcm9tICdmaWxlLXR5cGUnXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgdHlwZSB7IEZpbGUgfSBmcm9tICcuL3R5cGVzJ1xuXG5jb25zdCBtaW1lVHlwZUVzdGltYXRlID0ge1xuICBzdmc6ICdpbWFnZS9zdmcreG1sJyxcbn1cblxuY29uc3QgZ2V0RmlsZUJ5UGF0aCA9IGFzeW5jIChmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxGaWxlPiA9PiB7XG4gIGlmICh0eXBlb2YgZmlsZVBhdGggPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aClcbiAgICBjb25zdCBtaW1ldHlwZSA9IGZyb21GaWxlKGZpbGVQYXRoKVxuICAgIGNvbnN0IHsgc2l6ZSB9ID0gZnMuc3RhdFN5bmMoZmlsZVBhdGgpXG5cbiAgICBjb25zdCBuYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlUGF0aClcbiAgICBjb25zdCBleHQgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpLnNsaWNlKDEpXG5cbiAgICBjb25zdCBtaW1lID0gKGF3YWl0IG1pbWV0eXBlKT8ubWltZSB8fCBtaW1lVHlwZUVzdGltYXRlW2V4dF1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZGF0YSxcbiAgICAgIG1pbWV0eXBlOiBtaW1lLFxuICAgICAgc2l6ZSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldEZpbGVCeVBhdGhcbiJdLCJuYW1lcyI6WyJtaW1lVHlwZUVzdGltYXRlIiwic3ZnIiwiZ2V0RmlsZUJ5UGF0aCIsImZpbGVQYXRoIiwiZGF0YSIsImZzIiwicmVhZEZpbGVTeW5jIiwibWltZXR5cGUiLCJmcm9tRmlsZSIsInNpemUiLCJzdGF0U3luYyIsIm5hbWUiLCJwYXRoIiwiYmFzZW5hbWUiLCJleHQiLCJleHRuYW1lIiwic2xpY2UiLCJtaW1lIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiOzs7OytCQWdDQTs7O2VBQUE7OzswQkFoQ3lCOzJEQUNWOzZEQUNFOzs7Ozs7QUFJakIsTUFBTUEsbUJBQW1CO0lBQ3ZCQyxLQUFLO0FBQ1A7QUFFQSxNQUFNQyxnQkFBZ0IsT0FBT0M7SUFDM0IsSUFBSSxPQUFPQSxhQUFhLFVBQVU7UUFDaEMsTUFBTUMsT0FBT0MsV0FBRSxDQUFDQyxZQUFZLENBQUNIO1FBQzdCLE1BQU1JLFdBQVdDLElBQUFBLGtCQUFRLEVBQUNMO1FBQzFCLE1BQU0sRUFBRU0sSUFBSSxFQUFFLEdBQUdKLFdBQUUsQ0FBQ0ssUUFBUSxDQUFDUDtRQUU3QixNQUFNUSxPQUFPQyxhQUFJLENBQUNDLFFBQVEsQ0FBQ1Y7UUFDM0IsTUFBTVcsTUFBTUYsYUFBSSxDQUFDRyxPQUFPLENBQUNaLFVBQVVhLEtBQUssQ0FBQztRQUV6QyxNQUFNQyxPQUFPLEFBQUMsQ0FBQSxNQUFNVixRQUFPLEdBQUlVLFFBQVFqQixnQkFBZ0IsQ0FBQ2MsSUFBSTtRQUU1RCxPQUFPO1lBQ0xIO1lBQ0FQO1lBQ0FHLFVBQVVVO1lBQ1ZSO1FBQ0Y7SUFDRjtJQUVBLE9BQU9TO0FBQ1Q7TUFFQSxXQUFlaEIifQ==