UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

70 lines 3.05 kB
import { z } from 'zod'; import { BaseResponseSchema, EdgeCacheParamsSchema, HealthCheckDataSchema, PingDataSchema, } from './schemas'; import { mysqlDatetimeSchema } from './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 export const CommonHealthCheckResponseSchema = BaseResponseSchema(HealthCheckDataSchema); export const CommonPingResponseSchema = BaseResponseSchema(PingDataSchema); // Common pagination patterns // Note: HTTP query parameters are always strings, so we use coercion for numbers export const StandardPaginationParamsSchema = z.object({ limit: z.coerce.number().min(1).max(1000).optional().default(10), offset: z.coerce.number().min(0).optional().default(0), orderBy: z.string().optional(), }); export const SearchablePaginationParamsSchema = StandardPaginationParamsSchema.extend({ q: z.string().optional(), }); // Multi-layer caching parameters - used across all services // Note: HTTP query parameters are always strings, but we also accept numbers for JavaScript usage // EdgeCacheParamsSchema imported from ./schemas to avoid duplication // Re-export for backward compatibility export { EdgeCacheParamsSchema }; // Local cache for immediate deduplication of calls (memory-only) export const LocalCacheParamsSchema = z.object({ localCache: z.union([z.number().min(0), z.boolean()]).optional(), }); // Redis cache for structured caching shared among server instances export const RedisCacheParamsSchema = z.object({ redisCache: z.union([z.number().min(0), z.boolean()]).optional(), }); // Cache control parameters export const CacheControlParamsSchema = z.object({ invalidateCache: z.boolean().optional(), }); // Combined caching parameters schema export const CachingParamsSchema = EdgeCacheParamsSchema.merge(LocalCacheParamsSchema) .merge(RedisCacheParamsSchema) .merge(CacheControlParamsSchema); // Common response patterns export const BooleanResponseSchema = BaseResponseSchema(z.boolean()); export const StringResponseSchema = BaseResponseSchema(z.string()); export const NumberResponseSchema = BaseResponseSchema(z.number()); // Common error response schema export const ErrorResponseSchema = z.object({ status: z.number(), message: z.string(), code: z.string().optional(), details: z.unknown().optional(), timestamp: z.string().optional(), }); // Common field patterns export const TimestampFieldsSchema = z.object({ dateCreated: mysqlDatetimeSchema().optional(), dateLastModified: mysqlDatetimeSchema().optional(), }); export const StatusFieldsSchema = z.object({ statusCd: z.number(), createCd: z.string(), updateCd: z.string(), }); // ID patterns export const NumericIdSchema = z.number().min(1); export const StringIdSchema = z.string().min(1); export const UuidSchema = z.string().uuid(); //# sourceMappingURL=common-schemas.js.map