UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

73 lines 3.44 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.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