@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
69 lines • 3.77 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.UuidSchema = exports.StringIdSchema = exports.NumericIdSchema = exports.StatusFieldsSchema = exports.TimestampFieldsSchema = exports.ErrorResponseSchema = exports.NumberResponseSchema = exports.StringResponseSchema = exports.BooleanResponseSchema = exports.CachingParamsSchema = exports.CacheControlParamsSchema = exports.RedisCacheParamsSchema = exports.LocalCacheParamsSchema = exports.EdgeCacheParamsSchema = exports.SearchablePaginationParamsSchema = exports.StandardPaginationParamsSchema = exports.CommonPingResponseSchema = exports.CommonHealthCheckResponseSchema = void 0;
const zod_1 = require("zod");
const schemas_1 = require("./schemas");
Object.defineProperty(exports, "EdgeCacheParamsSchema", { enumerable: true, get: function () { return schemas_1.EdgeCacheParamsSchema; } });
const schema_utils_1 = require("./schema-utils");
/**
* Common schemas shared across all microservices
*
* This module contains frequently used schemas to reduce duplication
* and ensure consistency across all API clients.
*/
// Health check schemas - standardized across all services
exports.CommonHealthCheckResponseSchema = (0, schemas_1.BaseResponseSchema)(schemas_1.HealthCheckDataSchema);
exports.CommonPingResponseSchema = (0, schemas_1.BaseResponseSchema)(schemas_1.PingDataSchema);
// Common pagination patterns
// Note: HTTP query parameters are always strings, so we use coercion for numbers
exports.StandardPaginationParamsSchema = zod_1.z.object({
limit: zod_1.z.coerce.number().min(1).max(1000).optional().default(10),
offset: zod_1.z.coerce.number().min(0).optional().default(0),
orderBy: zod_1.z.string().optional(),
});
exports.SearchablePaginationParamsSchema = exports.StandardPaginationParamsSchema.extend({
q: zod_1.z.string().optional(),
});
// Local cache for immediate deduplication of calls (memory-only)
exports.LocalCacheParamsSchema = zod_1.z.object({
localCache: zod_1.z.union([zod_1.z.number().min(0), zod_1.z.boolean()]).optional(),
});
// Redis cache for structured caching shared among server instances
exports.RedisCacheParamsSchema = zod_1.z.object({
redisCache: zod_1.z.union([zod_1.z.number().min(0), zod_1.z.boolean()]).optional(),
});
// Cache control parameters
exports.CacheControlParamsSchema = zod_1.z.object({
invalidateCache: zod_1.z.boolean().optional(),
});
// Combined caching parameters schema
exports.CachingParamsSchema = schemas_1.EdgeCacheParamsSchema.merge(exports.LocalCacheParamsSchema)
.merge(exports.RedisCacheParamsSchema)
.merge(exports.CacheControlParamsSchema);
// Common response patterns
exports.BooleanResponseSchema = (0, schemas_1.BaseResponseSchema)(zod_1.z.boolean());
exports.StringResponseSchema = (0, schemas_1.BaseResponseSchema)(zod_1.z.string());
exports.NumberResponseSchema = (0, schemas_1.BaseResponseSchema)(zod_1.z.number());
// Common error response schema
exports.ErrorResponseSchema = zod_1.z.object({
status: zod_1.z.number(),
message: zod_1.z.string(),
code: zod_1.z.string().optional(),
details: zod_1.z.unknown().optional(),
timestamp: zod_1.z.string().optional(),
});
// Common field patterns
exports.TimestampFieldsSchema = zod_1.z.object({
dateCreated: (0, schema_utils_1.mysqlDatetimeSchema)().optional(),
dateLastModified: (0, schema_utils_1.mysqlDatetimeSchema)().optional(),
});
exports.StatusFieldsSchema = zod_1.z.object({
statusCd: zod_1.z.number(),
createCd: zod_1.z.string(),
updateCd: zod_1.z.string(),
});
// ID patterns
exports.NumericIdSchema = zod_1.z.number().min(1);
exports.StringIdSchema = zod_1.z.string().min(1);
exports.UuidSchema = zod_1.z.string().uuid();
//# sourceMappingURL=common-schemas.js.map