UNPKG

@tomisakae/syosetu-api

Version:

Enterprise-grade Fastify TypeScript API for Syosetu.com data extraction using official API and web scraping. Run instantly with 'npx @tomisakae/syosetu-api'

36 lines 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.envSchema = void 0; const zod_1 = require("zod"); exports.envSchema = zod_1.z.object({ NODE_ENV: zod_1.z .enum(['development', 'production', 'test', 'staging']) .default('development'), PORT: zod_1.z.string().transform(Number).default('3000'), HOST: zod_1.z.string().default('0.0.0.0'), API_TIMEOUT: zod_1.z.string().transform(Number).default('30000'), MAX_CONCURRENT_REQUESTS: zod_1.z.string().transform(Number).default('5'), SCRAPER_RETRIES: zod_1.z.string().transform(Number).default('3'), SCRAPER_RETRY_DELAY: zod_1.z.string().transform(Number).default('1000'), CORS_ORIGIN: zod_1.z.string().default('*'), CORS_CREDENTIALS: zod_1.z .string() .transform(val => val === 'true') .default('true'), RATE_LIMIT_WINDOW_MS: zod_1.z.string().transform(Number).default('900000'), RATE_LIMIT_MAX: zod_1.z.string().transform(Number).default('100'), CONTENT_RATE_LIMIT_WINDOW_MS: zod_1.z.string().transform(Number).default('300000'), CONTENT_RATE_LIMIT_MAX: zod_1.z.string().transform(Number).default('20'), LOG_LEVEL: zod_1.z.string().default('info'), LOG_PRETTY_PRINT: zod_1.z .string() .transform(val => val === 'true') .default('true'), METADATA_CACHE_TTL: zod_1.z.string().transform(Number).default('600'), CONTENT_CACHE_TTL: zod_1.z.string().transform(Number).default('3600'), SYOSETU_API_BASE_URL: zod_1.z .string() .default('https://api.syosetu.com/novelapi/api/'), SYOSETU_NCODE_BASE_URL: zod_1.z.string().default('https://ncode.syosetu.com'), }); //# sourceMappingURL=env.schema.js.map