UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

156 lines (155 loc) • 13.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _extractTranslations = require("../translations/extractTranslations"); const _mimeTypeValidator = require("./mimeTypeValidator"); const labels = (0, _extractTranslations.extractTranslations)([ 'upload:width', 'upload:height', 'upload:fileSize', 'upload:fileName', 'upload:sizes' ]); const getBaseUploadFields = ({ collection, config })=>{ const uploadOptions = typeof collection.upload === 'object' ? collection.upload : {}; const mimeType = { name: 'mimeType', admin: { hidden: true, readOnly: true }, label: 'MIME Type', type: 'text' }; const url = { name: 'url', admin: { hidden: true, readOnly: true }, label: 'URL', type: 'text' }; const width = { name: 'width', admin: { hidden: true, readOnly: true }, label: labels['upload:width'], type: 'number' }; const height = { name: 'height', admin: { hidden: true, readOnly: true }, label: labels['upload:height'], type: 'number' }; const filesize = { name: 'filesize', admin: { hidden: true, readOnly: true }, label: labels['upload:fileSize'], type: 'number' }; const filename = { name: 'filename', admin: { disableBulkEdit: true, hidden: true, readOnly: true }, index: true, label: labels['upload:fileName'], type: 'text', unique: true }; let uploadFields = [ { ...url, hooks: { afterRead: [ ({ data })=>{ if (data?.filename) { if (uploadOptions.staticURL.startsWith('/')) { return `${config.serverURL}${uploadOptions.staticURL}/${data.filename}`; } return `${uploadOptions.staticURL}/${data.filename}`; } return undefined; } ] } }, filename, mimeType, filesize, width, height ]; if (uploadOptions.mimeTypes) { mimeType.validate = (0, _mimeTypeValidator.mimeTypeValidator)(uploadOptions.mimeTypes); } if (uploadOptions.imageSizes) { uploadFields = uploadFields.concat([ { name: 'sizes', admin: { hidden: true }, fields: uploadOptions.imageSizes.map((size)=>({ name: size.name, admin: { hidden: true }, fields: [ { ...url, hooks: { afterRead: [ ({ data })=>{ const sizeFilename = data?.sizes?.[size.name]?.filename; if (sizeFilename) { if (uploadOptions.staticURL.startsWith('/')) { return `${config.serverURL}${uploadOptions.staticURL}/${sizeFilename}`; } return `${uploadOptions.staticURL}/${sizeFilename}`; } return null; } ] } }, width, height, mimeType, filesize, { ...filename, unique: false } ], label: size.name, type: 'group' })), label: labels['upload:Sizes'], type: 'group' } ]); } return uploadFields; }; const _default = getBaseUploadFields; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEJhc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgSW5jb21pbmdVcGxvYWRUeXBlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgZXh0cmFjdFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL3RyYW5zbGF0aW9ucy9leHRyYWN0VHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgbWltZVR5cGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbWVUeXBlVmFsaWRhdG9yJ1xuXG5jb25zdCBsYWJlbHMgPSBleHRyYWN0VHJhbnNsYXRpb25zKFtcbiAgJ3VwbG9hZDp3aWR0aCcsXG4gICd1cGxvYWQ6aGVpZ2h0JyxcbiAgJ3VwbG9hZDpmaWxlU2l6ZScsXG4gICd1cGxvYWQ6ZmlsZU5hbWUnLFxuICAndXBsb2FkOnNpemVzJyxcbl0pXG5cbnR5cGUgT3B0aW9ucyA9IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBjb25maWc6IENvbmZpZ1xufVxuXG5jb25zdCBnZXRCYXNlVXBsb2FkRmllbGRzID0gKHsgY29sbGVjdGlvbiwgY29uZmlnIH06IE9wdGlvbnMpOiBGaWVsZFtdID0+IHtcbiAgY29uc3QgdXBsb2FkT3B0aW9uczogSW5jb21pbmdVcGxvYWRUeXBlID1cbiAgICB0eXBlb2YgY29sbGVjdGlvbi51cGxvYWQgPT09ICdvYmplY3QnID8gY29sbGVjdGlvbi51cGxvYWQgOiB7fVxuXG4gIGNvbnN0IG1pbWVUeXBlOiBGaWVsZCA9IHtcbiAgICBuYW1lOiAnbWltZVR5cGUnLFxuICAgIGFkbWluOiB7XG4gICAgICBoaWRkZW46IHRydWUsXG4gICAgICByZWFkT25seTogdHJ1ZSxcbiAgICB9LFxuICAgIGxhYmVsOiAnTUlNRSBUeXBlJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gIH1cblxuICBjb25zdCB1cmw6IEZpZWxkID0ge1xuICAgIG5hbWU6ICd1cmwnLFxuICAgIGFkbWluOiB7XG4gICAgICBoaWRkZW46IHRydWUsXG4gICAgICByZWFkT25seTogdHJ1ZSxcbiAgICB9LFxuICAgIGxhYmVsOiAnVVJMJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gIH1cblxuICBjb25zdCB3aWR0aDogRmllbGQgPSB7XG4gICAgbmFtZTogJ3dpZHRoJyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6d2lkdGgnXSxcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgfVxuXG4gIGNvbnN0IGhlaWdodDogRmllbGQgPSB7XG4gICAgbmFtZTogJ2hlaWdodCcsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmhlaWdodCddLFxuICAgIHR5cGU6ICdudW1iZXInLFxuICB9XG5cbiAgY29uc3QgZmlsZXNpemU6IEZpZWxkID0ge1xuICAgIG5hbWU6ICdmaWxlc2l6ZScsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVTaXplJ10sXG4gICAgdHlwZTogJ251bWJlcicsXG4gIH1cblxuICBjb25zdCBmaWxlbmFtZTogRmllbGQgPSB7XG4gICAgbmFtZTogJ2ZpbGVuYW1lJyxcbiAgICBhZG1pbjoge1xuICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBpbmRleDogdHJ1ZSxcbiAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6ZmlsZU5hbWUnXSxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgdW5pcXVlOiB0cnVlLFxuICB9XG5cbiAgbGV0IHVwbG9hZEZpZWxkczogRmllbGRbXSA9IFtcbiAgICB7XG4gICAgICAuLi51cmwsXG4gICAgICBob29rczoge1xuICAgICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgICAoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhPy5maWxlbmFtZSkge1xuICAgICAgICAgICAgICBpZiAodXBsb2FkT3B0aW9ucy5zdGF0aWNVUkwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbmZpZy5zZXJ2ZXJVUkx9JHt1cGxvYWRPcHRpb25zLnN0YXRpY1VSTH0vJHtkYXRhLmZpbGVuYW1lfWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gYCR7dXBsb2FkT3B0aW9ucy5zdGF0aWNVUkx9LyR7ZGF0YS5maWxlbmFtZX1gXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZpbGVuYW1lLFxuICAgIG1pbWVUeXBlLFxuICAgIGZpbGVzaXplLFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgXVxuXG4gIGlmICh1cGxvYWRPcHRpb25zLm1pbWVUeXBlcykge1xuICAgIG1pbWVUeXBlLnZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IodXBsb2FkT3B0aW9ucy5taW1lVHlwZXMpXG4gIH1cblxuICBpZiAodXBsb2FkT3B0aW9ucy5pbWFnZVNpemVzKSB7XG4gICAgdXBsb2FkRmllbGRzID0gdXBsb2FkRmllbGRzLmNvbmNhdChbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaXplcycsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBmaWVsZHM6IHVwbG9hZE9wdGlvbnMuaW1hZ2VTaXplcy5tYXAoKHNpemUpID0+ICh7XG4gICAgICAgICAgbmFtZTogc2l6ZS5uYW1lLFxuICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4udXJsLFxuICAgICAgICAgICAgICBob29rczoge1xuICAgICAgICAgICAgICAgIGFmdGVyUmVhZDogW1xuICAgICAgICAgICAgICAgICAgKHsgZGF0YSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVGaWxlbmFtZSA9IGRhdGE/LnNpemVzPy5bc2l6ZS5uYW1lXT8uZmlsZW5hbWVcblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZUZpbGVuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHVwbG9hZE9wdGlvbnMuc3RhdGljVVJMLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbmZpZy5zZXJ2ZXJVUkx9JHt1cGxvYWRPcHRpb25zLnN0YXRpY1VSTH0vJHtzaXplRmlsZW5hbWV9YFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7dXBsb2FkT3B0aW9ucy5zdGF0aWNVUkx9LyR7c2l6ZUZpbGVuYW1lfWBcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICBtaW1lVHlwZSxcbiAgICAgICAgICAgIGZpbGVzaXplLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5maWxlbmFtZSxcbiAgICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBsYWJlbDogc2l6ZS5uYW1lLFxuICAgICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICAgIH0pKSxcbiAgICAgICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOlNpemVzJ10sXG4gICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICB9LFxuICAgIF0pXG4gIH1cbiAgcmV0dXJuIHVwbG9hZEZpZWxkc1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRCYXNlVXBsb2FkRmllbGRzXG4iXSwibmFtZXMiOlsibGFiZWxzIiwiZXh0cmFjdFRyYW5zbGF0aW9ucyIsImdldEJhc2VVcGxvYWRGaWVsZHMiLCJjb2xsZWN0aW9uIiwiY29uZmlnIiwidXBsb2FkT3B0aW9ucyIsInVwbG9hZCIsIm1pbWVUeXBlIiwibmFtZSIsImFkbWluIiwiaGlkZGVuIiwicmVhZE9ubHkiLCJsYWJlbCIsInR5cGUiLCJ1cmwiLCJ3aWR0aCIsImhlaWdodCIsImZpbGVzaXplIiwiZmlsZW5hbWUiLCJkaXNhYmxlQnVsa0VkaXQiLCJpbmRleCIsInVuaXF1ZSIsInVwbG9hZEZpZWxkcyIsImhvb2tzIiwiYWZ0ZXJSZWFkIiwiZGF0YSIsInN0YXRpY1VSTCIsInN0YXJ0c1dpdGgiLCJzZXJ2ZXJVUkwiLCJ1bmRlZmluZWQiLCJtaW1lVHlwZXMiLCJ2YWxpZGF0ZSIsIm1pbWVUeXBlVmFsaWRhdG9yIiwiaW1hZ2VTaXplcyIsImNvbmNhdCIsImZpZWxkcyIsIm1hcCIsInNpemUiLCJzaXplRmlsZW5hbWUiLCJzaXplcyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF5S0E7Oztl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