adaptive-expressions
Version:
Common Expression Language
30 lines (26 loc) • 956 B
text/typescript
/**
* @module adaptive-expressions
*/
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
import { Expression } from '../expression';
import { ObjectExpression } from '../expressionProperties';
type Input<T> = T | string | Expression;
/**
* `any` value to json [ObjectExpressionConverter](xref:adaptive-expressions.ObjectExpressionConverter) converter.
*
* @template T The type of the value.
*/
export class ObjectExpressionConverter<T extends object = {}> {
/**
* Converts value of type `T` into an [ObjectExpression](xref:adaptive-expressions.ObjectExpression).
*
* @param value Value of type `T` to convert.
* @returns The [ObjectExpression](xref:adaptive-expressions.ObjectExpression).
*/
convert(value: Input<T> | ObjectExpression<T>): ObjectExpression<T> {
return value instanceof ObjectExpression ? value : new ObjectExpression<T>(value);
}
}