@aws-cdk/core
Version:
AWS Cloud Development Kit Core Library
108 lines (107 loc) • 2.44 kB
TypeScript
import { IResolvable, IResolveContext } from './resolvable';
/**
* Interface for lazy string producers.
*/
export interface IStringProducer {
/**
* Produce the string value.
*/
produce(context: IResolveContext): string | undefined;
}
/**
* Interface for lazy list producers.
*/
export interface IListProducer {
/**
* Produce the list value.
*/
produce(context: IResolveContext): string[] | undefined;
}
/**
* Interface for lazy number producers.
*/
export interface INumberProducer {
/**
* Produce the number value.
*/
produce(context: IResolveContext): number | undefined;
}
/**
* Interface for lazy untyped value producers.
*/
export interface IAnyProducer {
/**
* Produce the value.
*/
produce(context: IResolveContext): any;
}
/**
* Options for creating a lazy string token.
*/
export interface LazyStringValueOptions {
/**
* Use the given name as a display hint.
*
* @default - No hint
*/
readonly displayHint?: string;
}
/**
* Options for creating a lazy list token.
*/
export interface LazyListValueOptions {
/**
* Use the given name as a display hint.
*
* @default - No hint
*/
readonly displayHint?: string;
/**
* If the produced list is empty, return 'undefined' instead.
*
* @default false
*/
readonly omitEmpty?: boolean;
}
/**
* Options for creating lazy untyped tokens.
*/
export interface LazyAnyValueOptions {
/**
* Use the given name as a display hint.
*
* @default - No hint
*/
readonly displayHint?: string;
/**
* If the produced value is an array and it is empty, return 'undefined' instead.
*
* @default false
*/
readonly omitEmptyArray?: boolean;
}
/**
* Lazily produce a value.
*
* Can be used to return a string, list or numeric value whose actual value
* will only be calculated later, during synthesis.
*/
export declare class Lazy {
/**
*
*/
static stringValue(producer: IStringProducer, options?: LazyStringValueOptions): string;
/**
*
*/
static numberValue(producer: INumberProducer): number;
/**
*
*/
static listValue(producer: IListProducer, options?: LazyListValueOptions): string[];
/**
*
*/
static anyValue(producer: IAnyProducer, options?: LazyAnyValueOptions): IResolvable;
private constructor();
}