UNPKG

turborepo-remote-cache

Version:
85 lines 9.02 kB
import { Type } from '@sinclair/typebox'; import Ajv from 'ajv'; import { envSchema } from 'env-schema'; const NODE_ENVS = { PRODUCTION: 'production', DEVELOPMENT: 'development', TEST: 'test', }; export const STORAGE_PROVIDERS = { LOCAL: 'local', S3: 'S3', s3: 's3', GOOGLE_CLOUD_STORAGE: 'google-cloud-storage', AZURE_BLOB_STORAGE: 'azure-blob-storage', MINIO: 'minio', }; export const BODY_LIMIT_DEFAULT = 104857600; const schema = Type.Object({ NODE_ENV: Type.Optional(Type.Enum(NODE_ENVS, { default: NODE_ENVS.PRODUCTION })), AUTH_MODE: Type.Optional(Type.Enum({ static: 'static', jwt: 'jwt', none: 'none' })), HOST: Type.String({ default: '0.0.0.0' }), JWT_AUDIENCE: Type.Optional(Type.String({ separator: ',' })), JWT_ISSUER: Type.Optional(Type.String()), JWKS_URL: Type.Optional(Type.String()), JWT_READ_SCOPES: Type.Optional(Type.String({ separator: ',' })), JWT_WRITE_SCOPES: Type.Optional(Type.String({ separator: ',' })), TURBO_TOKEN: Type.Optional(Type.String({ separator: ',' })), PORT: Type.Number({ default: 3000 }), LOG_LEVEL: Type.Optional(Type.String({ default: 'info' })), ENABLE_STATUS_LOG: Type.Optional(Type.Boolean({ default: true })), LOG_MODE: Type.Optional(Type.String({ default: 'stdout' })), LOG_FILE: Type.Optional(Type.String({ default: 'server.log' })), STORAGE_PROVIDER: Type.Optional(Type.Enum(STORAGE_PROVIDERS, { default: STORAGE_PROVIDERS.LOCAL })), BODY_LIMIT: Type.Optional(Type.Number({ default: BODY_LIMIT_DEFAULT })), STORAGE_PATH: Type.Optional(Type.String()), STORAGE_PATH_USE_TMP_FOLDER: Type.Optional(Type.Boolean({ default: true })), HTTP2: Type.Optional(Type.Boolean({ default: false })), S3_ACCESS_KEY: Type.Optional(Type.String()), S3_SECRET_KEY: Type.Optional(Type.String()), S3_REGION: Type.Optional(Type.String()), S3_ENDPOINT: Type.Optional(Type.String()), S3_MAX_SOCKETS: Type.Optional(Type.Number({ default: 50 })), GCS_PROJECT_ID: Type.Optional(Type.String()), GCS_CLIENT_EMAIL: Type.Optional(Type.String()), GCS_PRIVATE_KEY: Type.Optional(Type.String()), ABS_CONNECTION_STRING: Type.Optional(Type.String()), SSL_KEY_PATH: Type.Optional(Type.String()), SSL_CERT_PATH: Type.Optional(Type.String()), TURBO_REMOTE_CACHE_SIGNATURE_KEY: Type.Optional(Type.String()), READ_ONLY: Type.Optional(Type.Boolean({ default: false })), TURBO_CACHE_READ_URL: Type.Optional(Type.String({ pattern: '^https?:\\/\\/.+$' })), }, { additionalProperties: false, }); let _env; export function load(overrides) { _env = envSchema({ ajv: new Ajv.default({ removeAdditional: true, useDefaults: true, coerceTypes: true, keywords: ['kind', 'RegExp', 'modifier', envSchema.keywords.separator], }), data: overrides, dotenv: process.env.NODE_ENV === NODE_ENVS.DEVELOPMENT ? true : false, schema, }); return _env; } _env = load(); export const env = { get() { return _env; }, }; export function resolveBodyLimit(input) { if (typeof input === 'number' && Number.isFinite(input) && input > 0) { return { value: Math.floor(input) }; } return { value: BODY_LIMIT_DEFAULT, warning: `BODY_LIMIT value ${String(input)} is not a positive finite number; falling back to default ${BODY_LIMIT_DEFAULT}`, }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDaEQsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdEMsTUFBTSxTQUFTLEdBQUc7SUFDaEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFBO0FBR1YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsS0FBSyxFQUFFLE9BQU87SUFDZCxFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1Isb0JBQW9CLEVBQUUsc0JBQXNCO0lBQzVDLGtCQUFrQixFQUFFLG9CQUFvQjtJQUN4QyxLQUFLLEVBQUUsT0FBTztDQUNOLENBQUE7QUFNVixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQUE7QUFFM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FDeEI7SUFDRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQ3hEO0lBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQzFEO0lBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDekMsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFR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