- Bun & TypeScript, with ESLint
- Automatic day setup
- Puzzle input automatically fetched
- Performance metrics
Download template (powered by unjs/giget
)
npx giget gh:matijaoe/advent-of-code advent-of-code-2023
Ensure bun
is installed:
bun -v
# if not installed, run this:
curl -fsSL https://bun.sh/install | bash
Install dependencies:
bun install
Set up a new day:
bun setup 1
Run day solutions:
bun day 1
Run day solutions in dev mode (without clearing console outputs):
bun day 1 --dev
For automatic puzzle input retrieval, define .env
file with session
cookie from adventofcode.com:
SESSION=
YEAR=2023
Generated day structure:
import { parseLines, readInput } from 'io'
const input = await readInput('day-01')
export const part1 = () => {
const lines = parseLines(input)
// your code goes here
return lines.length
}
Expected index.ts
solution structure (day 1 of 2022):
import { parseGroups, readInput } from 'io'
import { desc, sum } from 'utils'
const input = await readInput('day-01')
export const part1 = () => {
const lines = parseGroups(input, Number)
return lines.map(sum).sort(desc).at(0)
}
export const part2 = () => {
const lines = parseGroups(input, Number)
const top = lines.map(sum).sort(desc).slice(0, 3)
return sum(top)
}
bun day <day-num>
output:
π² Part One: 70698 (1.11 ms)
π Part Two: 140471 (383.5 Β΅s)
β / β
Day | Part 1 | Part 2 | Solution | Advent of Code link |
---|---|---|---|---|
01 | Link | Day 01 | ||
02 | Day 02 | |||
03 | Day 03 | |||
04 | Day 04 | |||
05 | Day 05 | |||
06 | Day 06 | |||
07 | Day 07 | |||
08 | Day 08 | |||
09 | Day 09 | |||
10 | Day 10 | |||
11 | Day 11 | |||
12 | Day 12 | |||
13 | Day 13 | |||
14 | Day 14 | |||
15 | Day 15 | |||
16 | Day 16 | |||
17 | Day 17 | |||
18 | Day 18 | |||
19 | Day 19 | |||
20 | Day 20 | |||
21 | Day 21 | |||
22 | Day 22 | |||
23 | Day 23 | |||
24 | Day 24 | |||
25 | Day 25 |