UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

69 lines 3.77 kB
"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