UNPKG

@altostra/core

Version:

Core library for shared types and logic

39 lines (38 loc) 2.15 kB
import type { EnvironmentVariableName } from "../../../../aws/CustomTypes/EnvironmentVariableName"; import type { Maybe } from "../../../../common/Maybe"; import type { Dict } from "../../../Common"; import type { ResourceByType, ResourceType } from "../../../Resources"; import type { BlueprintHelper } from "../../BlueprintHelper"; import type { ConnectionHelperByType } from "../../ConnectionHelper"; import type { Parameterized } from "../../Parameters"; import type { ResourceHelper } from "../../ResourceHelper"; export interface FunctionVariableBase { parameter?: string; } export interface FunctionExplicitVariable extends FunctionVariableBase { type: 'explicit'; overridesGlobal: boolean; value: string; } export interface FunctionImplicitVariable extends FunctionVariableBase { type: 'implicit'; resource: ResourceHelper; source: FunctionImplicitVariableSource; connection: AccessConnectionHelper; parameter?: never; } export interface FunctionGlobalVariable extends FunctionVariableBase { type: 'global'; value: string; } export declare type VariableType = 'explicit' | 'global' | 'implicit'; export declare type AccessConnectionHelper = ConnectionHelperByType<'connection.access.invocation' | 'connection.auth0.app-access' | 'connection.key-management.key-access' | 'connection.resource-access'>; export declare type FunctionImplicitVariableSource = 'auth0-integration' | 'db-secret-access' | 'resource-access' | 'serverless-cluster'; export declare type FunctionVariable = FunctionExplicitVariable | FunctionGlobalVariable | FunctionImplicitVariable; export declare const ENVVAR_SERVERLESS_CLUSTER = "SERVERLESS_CLUSTER"; export declare function getEnvironmentVarsUtility<T extends ResourceType>(blueprint: BlueprintHelper, resource: ResourceHelper<T>, envGetter: (resource: ResourceByType[T]) => Maybe<Dict<string, EnvironmentVariableName>>, parametrizedEnvGetter?: (resource: ResourceHelper<T>) => Maybe<Parameterized<Dict<string>>>): { getEnvironmentVariables(): Dict<FunctionVariable>; }; export interface ComputeResourceUtils { getEnvironmentVariables(): Dict<FunctionVariable>; }