aboutsummaryrefslogtreecommitdiff
path: root/examples/macros/mystery-box.ts
blob: 6583c986895d94518a71472f35314826a65bfb72 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export function mysteryBox(callExpression) {
  console.log(callExpression.log);
  // get arguments
  const [countNode] = callExpression.arguments;
  const countString: string = countNode.get();
  const count: number = parseInt(countString, 10);

  // validate
  if (!(count >= 1 && count <= 1000))
    return new Error(
      `Argument ${countString} is expected to be between 1 and 1000`,
    );

  // return a value
  return (Math.random() * count) | 0;
}