UNPKG

@embroider/macros

Version:

Standardized build-time macros for ember apps.

36 lines (35 loc) 1.31 kB
import type { NodePath } from '@babel/traverse'; import type * as Babel from '@babel/core'; import type { types as t } from '@babel/core'; import type State from './state'; export interface ConfidentResult { confident: true; value: any; hasRuntimeImplementation: boolean; } export interface UnknownResult { confident: false; } export type EvaluateResult = ConfidentResult | UnknownResult; export interface EvaluationEnv { knownPaths?: Map<NodePath, EvaluateResult>; locals?: { [localVar: string]: any; }; state?: State; } export declare class Evaluator { private knownPaths; private locals; private state; constructor(env?: EvaluationEnv); evaluateMember(path: NodePath<t.MemberExpression | t.OptionalMemberExpression>, optionalChain: boolean): EvaluateResult; evaluateKey(path: NodePath): EvaluateResult; evaluate(path: NodePath): EvaluateResult; private realEvaluate; private maybeEvaluateRuntimeConfig; evaluateMacroCall(path: NodePath<t.CallExpression>): EvaluateResult; } export declare function assertNotArray<T>(input: T | T[]): T; export declare function assertArray<T>(input: T | T[]): T[]; export declare function buildLiterals(value: unknown | undefined, babelContext: typeof Babel): t.Identifier | t.ObjectExpression;