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