aboutsummaryrefslogtreecommitdiff
path: root/examples/macros/mystery-box.ts
blob: c686f82c39bd4e771c0c8f419ad496bd767f3d90 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
}