cloud-presign
Version:
A unified presigned URL generator for multiple cloud platforms
29 lines (28 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validatePresignParams = validatePresignParams;
const types_1 = require("../types");
/**
* Validates parameters for generating presigned URL
* @param params - Parameters to validate
* @throws Error if validation fails
*/
function validatePresignParams(params) {
// Validate key
if (!params.key) {
throw new Error('Key/path is required');
}
// Validate HTTP method
if (params.method && !Object.values(types_1.HttpMethod).includes(params.method)) {
throw new Error(`Invalid HTTP method: ${params.method}`);
}
// Validate content type for uploads
if ((params.method === types_1.HttpMethod.PUT || params.method === types_1.HttpMethod.POST) &&
params.contentType === '') {
throw new Error('Content type is required for upload operations');
}
// Validate metadata
if (params.metadata && typeof params.metadata !== 'object') {
throw new Error('Metadata must be an object');
}
}