aboutsummaryrefslogtreecommitdiff
path: root/examples/macros/matchInFile.tsx
blob: bd1c92dead61edf158a928f991d615b22fc1a9e6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// macro code
export function matchInFile(callExpression: BunAST.CallExpression) {
  const [filePathNode, matcherNode] = callExpression.arguments;
  let filePath: string;
  filePath = filePathNode.get();

  let matcher: RegExp;
  matcher = matcherNode.get();
  const file: string = Bun.readFile(Bun.cwd + filePath);

  return (
    <array>
      {file
        .split("\n")
        .map((line) => line.match(matcher))
        .filter(Boolean)
        .reverse()
        .map((line) => (
          <string value={line[0]} />
        ))}
    </array>
  );
}