UNPKG

@launchql/env

Version:

LaunchQL environment configuration with GraphQL/Graphile support

40 lines (39 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getGraphQLEnvVars = void 0; /** * Parse GraphQL-related environment variables. * These are the env vars that LaunchQL packages need but pgpm doesn't. */ const parseEnvBoolean = (val) => { if (val === undefined) return undefined; return ['true', '1', 'yes'].includes(val.toLowerCase()); }; const getGraphQLEnvVars = () => { const { GRAPHILE_SCHEMA, FEATURES_SIMPLE_INFLECTION, FEATURES_OPPOSITE_BASE_NAMES, FEATURES_POSTGIS, API_ENABLE_META, API_IS_PUBLIC, API_EXPOSED_SCHEMAS, API_META_SCHEMAS, API_ANON_ROLE, API_ROLE_NAME, API_DEFAULT_DATABASE_ID, } = process.env; return { graphile: { ...(GRAPHILE_SCHEMA && { schema: GRAPHILE_SCHEMA.includes(',') ? GRAPHILE_SCHEMA.split(',').map(s => s.trim()) : GRAPHILE_SCHEMA }), }, features: { ...(FEATURES_SIMPLE_INFLECTION && { simpleInflection: parseEnvBoolean(FEATURES_SIMPLE_INFLECTION) }), ...(FEATURES_OPPOSITE_BASE_NAMES && { oppositeBaseNames: parseEnvBoolean(FEATURES_OPPOSITE_BASE_NAMES) }), ...(FEATURES_POSTGIS && { postgis: parseEnvBoolean(FEATURES_POSTGIS) }), }, api: { ...(API_ENABLE_META && { enableMetaApi: parseEnvBoolean(API_ENABLE_META) }), ...(API_IS_PUBLIC && { isPublic: parseEnvBoolean(API_IS_PUBLIC) }), ...(API_EXPOSED_SCHEMAS && { exposedSchemas: API_EXPOSED_SCHEMAS.split(',').map(s => s.trim()) }), ...(API_META_SCHEMAS && { metaSchemas: API_META_SCHEMAS.split(',').map(s => s.trim()) }), ...(API_ANON_ROLE && { anonRole: API_ANON_ROLE }), ...(API_ROLE_NAME && { roleName: API_ROLE_NAME }), ...(API_DEFAULT_DATABASE_ID && { defaultDatabaseId: API_DEFAULT_DATABASE_ID }), }, }; }; exports.getGraphQLEnvVars = getGraphQLEnvVars;