const numberTable: Record<string, string> = {
    "one": "1",
    "two": "2",
    "three": "3",
    "four": "4",
    "five": "5",
    "six": "6",
    "seven": "7",
    "eight": "8",
    "nine": "9"
}
const matchBackTable: Record<string, number> = {
    // `eight` is started with spell e. `oneight` is one, eight.
    "one": 1,
    "two": 1,
    "three": 1,
    "four": 0,
    "five": 1,
}
function findFirstNumber(line: string) {
    for (let i = 0; i < line.length; i++) {
        const front = line.slice(i);

    }
}

function transformLine(line: string) {
    // find first number
    const re = /[0-9]+/;
    const firstNumber = line.match(re)?.[0];
    console.log(line);
    console.log(firstNumber);
    return parseInt(firstNumber || "");
    
    const numbersExp = line.matchAll(re);
    const numbers = [...numbersExp].map(n => {
        if (n[0] in numberTable) {
            return numberTable[n[0]];
        }
        return n[0];
    });
    console.log(line)
    console.log(numbers);
    return parseInt(numbers[0] + numbers[numbers.length - 1]);
}

transformLine("eightwothree")

// const input = await Deno.readTextFile("input.txt");
// const lines = input.split("\n");
// const numbers = lines.map(transformLine);
// console.log(numbers.reduce((a, b) => a + b));