@sastatesla/payment-gateway-sdk
Version:
A unified interface for integrating multiple payment providers (e.g., Razorpay, Cashfree) in your Node.js application.
33 lines • 1.6 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.cloudStorageConfigSchema = exports.s3ConfigSchema = exports.gcsConfigSchema = exports.allowedFileTypesSchema = exports.fileUploadOptionsSchema = void 0;
const joi_1 = __importDefault(require("joi"));
// File upload options schema
exports.fileUploadOptionsSchema = joi_1.default.object({
destination: joi_1.default.string().optional(),
metadata: joi_1.default.object().optional()
});
// Allowed file types array
exports.allowedFileTypesSchema = joi_1.default.array().items(joi_1.default.string().pattern(/^[-\w.]+\/[-\w.]+$/));
// GCS config schema
exports.gcsConfigSchema = joi_1.default.object({
bucketName: joi_1.default.string().required(),
credentials: joi_1.default.object().required()
});
// S3 config schema
exports.s3ConfigSchema = joi_1.default.object({
region: joi_1.default.string().required(),
bucketName: joi_1.default.string().required(),
accessKeyId: joi_1.default.string().required(),
secretAccessKey: joi_1.default.string().required()
});
// Main CloudStorage config
exports.cloudStorageConfigSchema = joi_1.default.object({
provider: joi_1.default.string().valid("gcs", "s3", "cloudinary").required(),
config: joi_1.default.alternatives().try(exports.gcsConfigSchema, exports.s3ConfigSchema).required(),
allowedFileTypes: exports.allowedFileTypesSchema.optional()
});
//# sourceMappingURL=schemaValidation.js.map