@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
73 lines • 3.44 kB
JavaScript
;
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.EdgeCacheParamsSchema = exports.SearchablePaginationParamsSchema = exports.StandardPaginationParamsSchema = exports.CommonPingResponseSchema = exports.CommonHealthCheckResponseSchema = void 0;
const zod_1 = require("zod");
const schemas_1 = require("./schemas");
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(),
});
// Edge caching parameters - used across all services
// Note: HTTP query parameters are always strings, but we also accept numbers for JavaScript usage
exports.EdgeCacheParamsSchema = zod_1.z.object({
edgeCache: zod_1.z
.union([
zod_1.z.literal(1),
zod_1.z.literal(2),
zod_1.z.literal(3),
zod_1.z.literal(4),
zod_1.z.literal(5),
zod_1.z.literal(8), // numbers
zod_1.z.literal('1'),
zod_1.z.literal('2'),
zod_1.z.literal('3'),
zod_1.z.literal('4'),
zod_1.z.literal('5'),
zod_1.z.literal('8'), // strings
])
.transform(val => (typeof val === 'string' ? parseInt(val) : val))
.optional(),
});
// 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