turborepo-remote-cache
Version:
Turborepo remote cache server
71 lines • 7.38 kB
JavaScript
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',
};
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' })),
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: 104857600 })),
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()),
}, {
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;
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDaEQsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdEMsTUFBTSxTQUFTLEdBQUc7SUFDaEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFBO0FBR1YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsS0FBSyxFQUFFLE9BQU87SUFDZCxFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1Isb0JBQW9CLEVBQUUsc0JBQXNCO0lBQzVDLGtCQUFrQixFQUFFLG9CQUFvQjtJQUN4QyxLQUFLLEVBQUUsT0FBTztDQUNOLENBQUE7QUFJVixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUN4QjtJQUNFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FDeEQ7SUFDRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDNUQsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hDLFFB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