All files / complex-js/compiler compile.ts

0% Statements 0/9
0% Branches 0/2
0% Functions 0/3
0% Lines 0/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                                       
import { IComplex, IComplexConstructor } from '../internal/complex';
import { Reviver } from './expressions';
import generate from './generate';
 
export default function compile<T extends IComplex, U extends any[]>(
  Complex: IComplexConstructor<T>,
  text: string,
  reviver?: Reviver<T, U>
): (...args: U) => T {
  const variable = generate(Complex, text);
 
  if (reviver) {
    return (...args): T => variable(reviver(...args));
  }
 
  const z = variable({});
 
  return () => z;
}